Mehrere Datenspalten als Datenquelle verwenden

Written on January 21, 2004

Angenommen in einer Datenbank stehen Vorname und Nachname in zwei getrennten Datenbankfeldern einer Tabelle - der Normalfall also ;-) - und wir möchten diese beiden Spalten als Datenquelle für z.B. eine DropDownList verwenden, haben wir ein kleines Problem: die DropDownList kennt nur ein DataTextField bzw. nur ein DataValueField.

Die Lösung ist relativ simple, wenn man z.B. ein DataSet verwendet.

Wir fügen einfach in die Tabelle unseres DataSets eine weitere Spalten, in der wir die addierten Strings von Vorname und Nachname ablegen.
Diese Spalte verwenden wir dann als Datenfeld unserer DropDownList.

In C# ausgedrückt, sieht dies wie folgt aus (das Befüllen des DataSets erspare ich mir hier ;-)):

DataColumn dtcFullName = new DataColumn();
dtcFullName.ColumnName = "FullName";
dtcFullName.DataType = System.Type.GetType("System.String");
dtcFullName.Expression = "FirstName + ' ' + LastName";
myDataSet.Tables[0].Columns.Add(dtcFullName);

ddlCustomers.DataSource = myDataSet.Tables[0].DefaultView;
ddlCustomers.DataTextField = "FullName";
ddlCustomers.DataValueField = "CustomerID";
ddlCustomers.DataBind();