DataAdapter und DataBinding am Grid

10/03/2008 - 19:27 von Mihai Grosu | Report spam
Hallo zusammen

Ich blick irgendwie die Logik des DataAdapters nicht. Möchte folgendes tun:
Habe eine DB (natürlich mit Tabellen). Diese werden in einer Liste angezeigt
und rechts habe ich ein Grid.
Ziel: Wenn ich auf einen "Tabellen-Namen" klicke, soll im Grid der Inhalt
der Tabelle angezeigt werden...
DAS kriege ich auch hin.. ABER... Ich möchte natürlich, dass Änderungen im
Grid "automatisch" auch in die Tabelle geschrieben werden...

Hier weiß ich nicht, wie ich den DataAdapter verwenden soll/kann...

da = new SqlDataAdapter("Select * FROM " + TableName, "Server=" +
"Server\\Instanz" + ";Initial Catalog=" + "myDB" + ";User ID=" + "User" +
";Password=" + "PassWD");


SqlCommandBuilder builder = new SqlCommandBuilder(da);

da.Fill(ds, e.Node.Text);

gridView2.Columns.Clear();

TableGrid.DataSource = null ;
TableGrid.DataSource = ds.Tables[TableName] ;

TableGrid.RefreshDataSource();
TableGrid.Refresh();


Wie geht's hie weiter?

Danke
Gruß
 

Lesen sie die antworten

#1 Peter Götz
10/03/2008 - 20:13 | Warnen spam
Hallo Mihai,

Ich blick irgendwie die Logik des DataAdapters nicht.
Möchte folgendes tun:
Habe eine DB (natürlich mit Tabellen). Diese werden
in einer Liste angezeigt



Was genau (Control) ist diese Liste?

und rechts habe ich ein Grid.



Welche Art von Grid?
DataGrid oder DataGridView?

Ziel: Wenn ich auf einen "Tabellen-Namen" klicke,



Dann musst Du für Deinen DataAdapter einen zu diesem
Tabellennamen passenden Select-Command erstellen und
anschliessend die DataAdapter.Fill-Methode ausführen.

soll im Grid der Inhalt der Tabelle angezeigt werden...



Mit DataAdapter.Fill füllst Du eine vorher instanzierte
DataTable (DT). Zu dieser erstellst Du eine DataView (DV)

DV = new DataView(DT)

und diese weist Du dem DataGrid oder DataGridView
als DataSource zu.

DataGrid.DataSource = DV
oder
DataGridView.DataSource = DV


DAS kriege ich auch hin.. ABER... Ich möchte natürlich,
dass Änderungen im Grid "automatisch" auch in die
Tabelle geschrieben werden...



"Automatisch" nicht so ganz.
Du musst halt zum Speichern geànderter Daten ein
DataAdapter.Update ausführen, nachdem Du vorher
einen entsprechenden UpdateCommand für Deinen
DataAdapter erstellt hast oder einen solchen
Updatecommand von einem CommandBuilder erstellen
lassen hast.


Hier weiß ich nicht, wie ich den DataAdapter verwenden
soll/kann...



Du solltest evtl. erst mal die Zusammenhànge zwischen
DataSet, DataTable, DataView und BindingManagerBase/
CurrencyManager verstanden haben.

Schau Dir dazu evtl. mal die Beispiele zum DataGrid bzw.
zum DataGridView unter

www.gssg.de -> Visual Basic -> VB.net

an.

Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

Ähnliche fragen