verwendetes Datenbanksystem: SQL Server Compact 3.5
Visual Studio 2008
Für meine Mobile Anwendung würde ich gerne die Daten der Datenbank in einer Combobox mittels DataSet anzeigen. Leider klappt es nicht, was hab ich übersehen:
SqlCeConnection con = new SqlCeConnection();
con.ConnectionString = constring;
SqlCeCommand cmd = new SqlCeCommand();
cmd.CommandText = "SELECT * FROM veg_daten";
cmd.Connection = con;
SqlCeDataAdapter da = new SqlCeDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
this.comboBox1.DataSource = ds;
this.comboBox1.DisplayMember = "gel_id";
this.comboBox1.ValueMember = "artname";
LG, Frikazoid.
Weise der DataSource eine DataTable zu und dem Display- und ValueMember die gewünschten Spalten in der DataTable.
heute code ich, morgen debug ich und übermorgen cast ich die königin auf int
Hallo nochmal.
Wenn ich
this.comboBox1.DataSource = ds.Tables[0];
verwende dann wird es richtig angezeigt!
Verwende ich
this.comboBox1.DataSource = ds.Tables["veg_daten"];
geht es nicht.
Weiß Jemand warum?
LG
Dann wird es die DataTable "veg_daten" nicht geben.
heute code ich, morgen debug ich und übermorgen cast ich die königin auf int
Hallo,
du musst zwischen den Namen in der Datenbank und den Namen im Programm (hier: DataSet) unterscheiden. Mit deinem allgemeinen Fill-Befehl arbeitest du so, siehe :rtfm: DbDataAdapter.Fill-Methode (DataSet):
Fügt dem DataSet unter Verwendung des DataSet-Namens Zeilen hinzu bzw. aktualisiert diese, um eine Übereinstimmung mit den Zeilen in der Datenquelle zu erzielen, und erstellt eine DataTable mit der Bezeichnung "Table".
Aber es gibt soviele Varianten für Fill; schau einfach selbst in :rtfm: nach.
Gruß Jürgen
@unclesam:
Die Tabelle "veg_daten" gibt es schon, allerdings nicht unter diesem Namen! Alle Tabellen in einem DataSet werden intern mit Table1, Table2...TableN 'durchnummeriert', wenn man nicht händisch den Tabellen einen aussagekräftigen Namen verpasst.
[EDIT] uups, da war juetho etwas schneller...
Hi zusammen,
du müsstest an der dem Fill wie du ihn jetzt hast (da.Fill(ds); ) einfach den Tabellen Namen zuordnen.
Sieht dann so aus.
da.Fill(ds,"deinTabellenName");
Danach kannst dann auf die Tabelle richtig zugreifen.
Gruß
DonInkus