Ergenis von zwei SELECT-Abfragen in einem DatagridView

30/03/2008 - 00:05 von Hartmut Callies | Report spam
Hallo,
ich will eine Abfrage über zwei Tabellen in einem DataGridView anzeigen,
àndern und speichern.
Von Tabelle Kunden.LandID existiert eine Beziehung zu Land.LandID.
Was nicht funktioniert, ist das Anzeigen des Ergebnisses aus den verknüpften
Tabellen in einem DataGridView.

Ich nehme zwei DataAdapter mit jeweils einem SelectCommand zu einer
Tabelle und erstelle die Relation. Jedoch wie kann ich das Ergebnis aus
beiden Tabellen in einem DatagridView anzeigen?
strSQL = "SELECT * FROM Kunden"
mSqlDAcustomer = New SqlDataAdapter(strSQL, clsSDB.GetDataBaseConnection)

strSQL = "SELECT * FROM Land"
mSqlDAland = New SqlDataAdapter(strSQL, clsSDB.GetDataBaseConnection)

mDataSet = New DataSet
mSqlDAcustomer.Fill(mDataSet, "Kunden")
mSqlDAland.Fill(mDataSet, "Land")

objDataColumnParent = mDataSet.Tables("Land").Columns("LandID")
objDataColumnChild = mDataSet.Tables("Kunden").Columns("LandID")
objDataRelation = New DataRelation("Land_Kunden", objDataColumnParent,
objDataColumnChild)
mDataSet.Relations.Add(objDataRelation)

'hier müsste das Ergebnis aus beiden verknüpften Tabellen stehen
mDataView = New DataView(mDataSet.Tables("Kunden"))
dgvCustomer.DataSource = mDataView


Hartmut Callies
 

Lesen sie die antworten

#1 Peter Götz
30/03/2008 - 15:36 | Warnen spam
Hallo Hartmut,

ich will eine Abfrage über zwei Tabellen in einem
DataGridView anzeigen, àndern und speichern.
Von Tabelle Kunden.LandID existiert eine Beziehung
zu Land.LandID.
Was nicht funktioniert, ist das Anzeigen des
Ergebnisses aus den verknüpften
Tabellen in einem DataGridView.

Ich nehme zwei DataAdapter mit jeweils einem
SelectCommand zu einer Tabelle und erstelle die
Relation.
Jedoch wie kann ich das Ergebnis aus
beiden Tabellen in einem DatagridView anzeigen?



Was willst Du denn dabei anzeigen.
Ich rate mal, dass es sich bei den Daten in den beiden
Tabellen um Master-/Detail-Daten handelt.
Solche hierarchisch geordneten Daten kannst Du nicht
in einem DataGrid anzeigen. Dazu braucht es dann
wenn schon zwei dieser Grids. Das erste zeigt
dabei z.B. alle Master-Datensàtze an und mit jedem
Datensatzwechsel im Masterdatenbestand werden im
zweiten Grid die Detaildatensàtze zum jeweiligen
Masterdatensatz angezeigt.

Beispiele hierzu findest Du unter

www.gssg.de -> Visual Basic -> VB.net
-> DataGridView Relation
-> DataGridView Relation 3
-> DataGridView Master/Slave

strSQL = "SELECT * FROM Kunden"
mSqlDAcustomer = New SqlDataAdapter(strSQL,
clsSDB.GetDataBaseConnection)

strSQL = "SELECT * FROM Land"
mSqlDAland = New SqlDataAdapter(strSQL, clsSDB.GetDataBaseConnection)

mDataSet = New DataSet
mSqlDAcustomer.Fill(mDataSet, "Kunden")
mSqlDAland.Fill(mDataSet, "Land")

objDataColumnParent = mDataSet.Tables("Land").Columns("LandID")
objDataColumnChild = mDataSet.Tables("Kunden").Columns("LandID")
objDataRelation = New DataRelation("Land_Kunden", objDataColumnParent,
objDataColumnChild)
mDataSet.Relations.Add(objDataRelation)

'hier müsste das Ergebnis aus beiden verknüpften Tabellen stehen
mDataView = New DataView(mDataSet.Tables("Kunden"))



Mit vorstehender Zeile hast Du eine DataView zu
Deiner DataTable 'Kunden' erstellt

dgvCustomer.DataSource = mDataView



... und diese DataView (mDataView) übergibst Du
nun Deinem dgvCustomer als DataSource. Das Grid
wird also bestenfalls den Inhalt der DataTable 'Kunden'
anzeigen.
Eine Darstellung hierarchischer Daten ist mit dem
DataGridView so einfach nicht möglich. Wenn Du eine
solche in einem Grid haben willst, musst Du dazu das
àltere DataGrid verwenden. Wobei die Handhabung
der Master-/Detaildarstellung im DataGrid nicht gerade
sehr benutzerfreundlich ist.

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

Ähnliche fragen