Gewusst wie: Erstellen von Master/Detail-Listen mit dem DataGrid-Steuerelement in Windows Forms

Tipp

Obwohl das DataGridView-Steuerelement das DataGrid-Steuerelement ersetzt und funktionell erweitert, wird das DataGrid-Steuerelement sowohl aus Gründen der Abwärtskompatibilität als auch, falls gewünscht, für die zukünftige Verwendung beibehalten. Weitere Informationen finden Sie unter Unterschiede zwischen dem DataGridView-Steuerelement und dem DataGrid-Steuerelement in Windows Forms.

Wenn das DataSet mehrere verwandte Tabellen enthält, können Sie die Daten mit zwei DataGrid-Steuerelementen im Master/Detail-Format anzeigen. Ein DataGrid wird als Masterraster, das andere als Detailraster festgelegt. Wenn Sie einen Eintrag in der Masterliste auswählen, werden auch alle zugehörigen Einträge in der Detailliste angezeigt. Wenn DataSet beispielsweise die Tabelle Customers enthält, der eine Tabelle Orders zugeordnet ist, können Sie die Tabelle Customers als Masterraster und die Tabelle Orders als Detailraster festlegen. Wenn ein Kunde aus dem Masterraster ausgewählt wurde, werden alle diesem Kunden zugeordneten Bestellungen in der Tabelle Bestellungen im Detailraster angezeigt.

So richten Sie programmgesteuert eine Master/Detail-Beziehung ein

  1. Erstellen Sie zwei neue DataGrid-Steuerelemente, und legen Sie deren Eigenschaften fest.

  2. Fügen Sie dem Dataset Tabellen hinzu.

  3. Deklarieren Sie zur Darstellung der gewünschten Beziehung eine Variable des Typs DataRelation.

  4. Instanziieren Sie die Beziehung, indem Sie einen Namen für die Beziehung eingeben und die Tabelle, die Spalte sowie das Element festlegen, die bzw. das beide Tabellen verbindet.

  5. Fügen Sie die Beziehung zur Relations-Auflistung des DataSet-Objekts hinzu.

  6. Binden Sie mithilfe der SetDataBinding-Methode des DataGrid jedes der Raster an das DataSet.

    Im folgenden Beispiel wird gezeigt, wie in einem zuvor generierten DataSet (ds) zwischen den Tabellen Customers und Orders eine Master/Detail-Beziehung festgelegt wird.

    Dim myDataRelation As DataRelation
    myDataRelation = New DataRelation _
       ("CustOrd", ds.Tables("Customers").Columns("CustomerID"), _
       ds.Tables("Orders").Columns("CustomerID"))
    ' Add the relation to the DataSet.
    ds.Relations.Add(myDataRelation)
    GridOrders.SetDataBinding(ds, "Customers")
    GridDetails.SetDataBinding(ds, "Customers.CustOrd")
    
    DataRelation myDataRelation;
    myDataRelation = new DataRelation("CustOrd", ds.Tables["Customers"].Columns["CustomerID"], ds.Tables["Orders"].Columns["CustomerID"]);
    // Add the relation to the DataSet.
    ds.Relations.Add(myDataRelation);
    GridOrders.SetDataBinding(ds,"Customers");
    GridDetails.SetDataBinding(ds,"Customers.CustOrd");
    
    DataRelation^ myDataRelation;
    myDataRelation = gcnew DataRelation("CustOrd",
       ds->Tables["Customers"]->Columns["CustomerID"],
       ds->Tables["Orders"]->Columns["CustomerID"]);
    // Add the relation to the DataSet.
    ds->Relations->Add(myDataRelation);
    GridOrders->SetDataBinding(ds, "Customers");
    GridDetails->SetDataBinding(ds, "Customers.CustOrd");
    

Siehe auch

Aufgaben

Gewusst wie: Binden des DataGrid-Steuerelements in Windows Forms an eine Datenquelle

Referenz

Übersicht über das DataGrid-Steuerelement (Windows Forms)

Weitere Ressourcen

DataGrid-Steuerelement (Windows Forms)