Laden...

dataset in combobox

Erstellt von frikazoid vor 14 Jahren Letzter Beitrag vor 14 Jahren 908 Views
F
frikazoid Themenstarter:in
16 Beiträge seit 2009
vor 14 Jahren
dataset in combobox

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.

U
237 Beiträge seit 2007
vor 14 Jahren

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

F
frikazoid Themenstarter:in
16 Beiträge seit 2009
vor 14 Jahren

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

U
237 Beiträge seit 2007
vor 14 Jahren

Dann wird es die DataTable "veg_daten" nicht geben.

heute code ich, morgen debug ich und übermorgen cast ich die königin auf int

J
3.331 Beiträge seit 2006
vor 14 Jahren

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

R
158 Beiträge seit 2007
vor 14 Jahren

@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...

F
frikazoid Themenstarter:in
16 Beiträge seit 2009
vor 14 Jahren

Vielen Dank! Jetzt wird mir die Sache schon klarer!

LG, Friakzoid

D
2 Beiträge seit 2009
vor 14 Jahren

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