Autor Beitrag
JT1971
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 40



BeitragVerfasst: So 28.06.09 19:02 
Moin 8)

Bastel gerade mal wieder an meinem kleinen Tool.
Blicke noch nicht ganz durch - hab im Galileo Open Book schon gelesen user defined image

Ich habe eine Datenbank mit mehreren Tabellen, die ich nun einlesen möchte.

Also erstelle ich ein Dataset

ausblenden C#-Quelltext
1:
DataSet DS = new DataSet();					


Einlesen soll dann über DataAdapter erfolgen

ausblenden C#-Quelltext
1:
2:
SqlCeDataAdapter XY = new SqlCeDataAdapter(
    "SELECT * FROM List", conn);


Wobei dann List der Name einer der Tabellen ist.
Dann fülle ich mit

XY.Fill(DS, "XList");

das DataSet.


Um das DataSet zu füllen, muß ich dann für jede Tabelle ein Adapter erstellen?
Oder muß ich ein DataTable für jede Tabelle extra erstellen?
Oder geht das in einem Schwung (alle Tabellen der Datenbank)?

Verbinden tue ich das ganze ja mit

ausblenden C#-Quelltext
1:
2:
   DGV.DataSource = DS;
   DGV.DataMember = DS.Tables["List"];


Aber in der Zeile DataMember krieg ich immer die Fehlermeldung

"Eine implizite Konvertierung "System.Data.DataTable" in "string" ist nicht möglich." user defined image

Was mache ich falsch?
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: So 28.06.09 19:14 
user profile iconJT1971 hat folgendes geschrieben Zum zitierten Posting springen:
Dann fülle ich über
XY.Fill(DS, "XList");
das DataSet.

Nimm der Einfachheit halber denselben Namen für die DataTable, nämlich "List" statt "XList".

user profile iconJT1971 hat folgendes geschrieben Zum zitierten Posting springen:
Um das DataSet zu füllen, muß ich dann für jede Tabelle ein Adapter erstellen?

Ja.

user profile iconJT1971 hat folgendes geschrieben Zum zitierten Posting springen:
Oder muß ich ein DataTable für jede Tabelle extra erstellen?

Das geschieht dadurch automatisch, dass im Fill-Befehl der Name der DataTable (= Name der DB-Tabelle) angegeben wird.

user profile iconJT1971 hat folgendes geschrieben Zum zitierten Posting springen:
Oder geht das in einem Schwung (alle Tabellen der Datenbank)?

Nein.

user profile iconJT1971 hat folgendes geschrieben Zum zitierten Posting springen:
Verbinden tue ich das ganze ja mit ...
Aber in der Zeile DataMember krieg ich immer die Fehlermeldung
"Eine implizite Konvertierung "System.Data.DataTable" in "string" ist nicht möglich."
Was mache ich falsch?

Bei DataMember muss eben ein String zugewiesen werden, keine DataTable. Das ist ganz einfach der Name der DataTable (bitte auch die Reihenfolge beachten, die ist sinnvoller):
ausblenden C#-Quelltext
1:
2:
   DGV.DataMember = "List";
   DGV.DataSource = DS;

Gruß Jürgen
JT1971 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 40



BeitragVerfasst: So 28.06.09 22:37 
user profile iconJüTho hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconJT1971 hat folgendes geschrieben Zum zitierten Posting springen:
Dann fülle ich über
XY.Fill(DS, "XList");
das DataSet.

Nimm der Einfachheit halber denselben Namen für die DataTable, nämlich "List" statt "XList".

:oops: Ist klar

user profile iconJT1971 hat folgendes geschrieben Zum zitierten Posting springen:
Um das DataSet zu füllen, muß ich dann für jede Tabelle ein Adapter erstellen?

Ja.

Okay

user profile iconJT1971 hat folgendes geschrieben Zum zitierten Posting springen:
Oder muß ich ein DataTable für jede Tabelle extra erstellen?

Das geschieht dadurch automatisch, dass im Fill-Befehl der Name der DataTable (= Name der DB-Tabelle) angegeben wird.

Dann schaue ich mir das nochmal an

user profile iconJT1971 hat folgendes geschrieben Zum zitierten Posting springen:
Oder geht das in einem Schwung (alle Tabellen der Datenbank)?

Nein.

Och :wink:

user profile iconJT1971 hat folgendes geschrieben Zum zitierten Posting springen:
Verbinden tue ich das ganze ja mit ...
Aber in der Zeile DataMember krieg ich immer die Fehlermeldung
"Eine implizite Konvertierung "System.Data.DataTable" in "string" ist nicht möglich."
Was mache ich falsch?

Bei DataMember muss eben ein String zugewiesen werden, keine DataTable. Das ist ganz einfach der Name der DataTable (bitte auch die Reihenfolge beachten, die ist sinnvoller):
ausblenden C#-Quelltext
1:
2:
   DGV.DataMember = "List";
   DGV.DataSource = DS;


:zustimm: Okay

Gruß Jürgen


Danke für die schnelle ausführliche Hilfe.
Werde ich mich unter der Woche mit beschäftigen 8)