Monat als Monatsname aus DB

11/02/2008 - 19:25 von Brian Schmalisch | Report spam
Hallo,

ich möchte in einer DropDownListe die Monatsnamen anzeigen. Dazu habe ich
ein string-Array angelegt, aus welchem die Monatsnamen ausgelesen werden
sollen. Wie kann ich das Umsetzen? Die Monate aus der DB lese ich so aus:

string[] monate = new string[]{
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
};

string MySQL1 = "Select Month(EventDateTime) as Month from events where
PID=\'" +
ddlPlayer.SelectedValue + "\' and Year(EventDateTime)=\'" + ddlYear.Text +
"\' group by Month order by Month desc";

OdbcConnection conn = new OdbcConnection();
conn.ConnectionString =
ConfigurationManager.ConnectionStrings["CS"].ConnectionString;

conn.Open();
OdbcConnection MyConn = new OdbcConnection(conn.ConnectionString);
DataSet ds = new DataSet();
OdbcDataAdapter Cmd = new OdbcDataAdapter(MySQL1, MyConn);
Cmd.Fill(ds, "Month");
ddlMonth.DataSource = ds.Tables["Month"].DefaultView;
ddlMonth.DataValueField = "Month";
ddlMonth.DataBind();
conn.Close();

Wie bekomme ich es hin, dass ich zum Schluss nur die Monatsnamen habe? Es
ist jedoch wichtig, dass die Monate als Zahlen auch erhalten bleiben für
weitere Abfragen, welche die Zahl aus der dropDownListe brauchen.

Brian
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
11/02/2008 - 20:40 | Warnen spam
Hallo Brian,

"Brian Schmalisch" schrieb:

ich möchte in einer DropDownListe die Monatsnamen anzeigen. Dazu habe ich ein string-Array angelegt, aus welchem die Monatsnamen
ausgelesen werden sollen.



Warum ein String Array? Nimm doch irgendwas, was beide Werte (1, Januar, 2,
Februar, ...) aufnimmmt und binde das an die DDL.

Dim MyList As SortedList = New SortedList( 12 )
MyList.Add( 1, "January" )
MyList.Add( 2, "February" )
MyList.Add( 3, "March" )
...

<DropDownList>.DataSource = MyList
<DropDownList>.DataValueField = "Key"
<DropDownList>.DataTextField = "Value"

If Not Page.IsPostBack Then
<DropDownList>.DataBind()
End If

Das kannst Du natürlich auch nehmen, um die Monatsnamen aus dem numerischen
Wert, den Du aus der Datenbank erhàltst, zu ermitteln.

...

<DropDownList>.DataSource = <DeineDatenQuelle>
<DropDownList>.DataValueField = "<...>"
<DropDownList>.DataTextField = "<...>"

If Not Page.IsPostBack Then
<DropDownList>.DataBind()
End If

...

Protected Sub <DropDownList>_DataBound( ... ) Handles <DropDownList>.DataBound
For Each Item As ListItem In <DropDownList>.Items
Item.Text = MyList.Item( CType( Item.Value, Int32 ) )
Next
End Sub

Tschau, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

Ähnliche fragen