Freigeben über


Hinzufügen einer Beziehung zwischen Tabellen

In einem DataSet mit mehreren DataTable-Objekten können Sie mit Hilfe von DataRelation-Objekten eine Beziehung zwischen zwei Tabellen herstellen, um sich zwischen den Tabellen bewegen und untergeordnete oder übergeordnete Zeilen aus einer verknüpften Tabelle zurückgeben zu können.

Die zum Erstellen einer DataRelation erforderlichen Argumente sind ein Name für die zu erstellende DataRelation und ein Array aus einem oder mehreren DataColumn-Verweisen auf die Spalten, die als übergeordnete und untergeordnete Spalten in der Beziehung vorliegen. Nach der Erstellung einer DataRelation können Sie sich damit zwischen den Tabellen bewegen und Werte abrufen.

Wenn Sie eine DataRelation zu einem DataSet hinzufügen, wird standardmäßig eine UniqueConstraint zur übergeordneten Tabelle und eine ForeignKeyConstraint zur untergeordneten Tabelle hinzugefügt. Weitere Informationen zu diesen Standardeinschränkungen finden Sie unter Hinzufügen von Einschränkungen zu einer Tabelle.

Das folgende Codebeispiel erstellt eine DataRelation unter Verwendung zweier DataTable-Objekte in einem DataSet. Jede DataTable enthält eine Spalte mit dem Namen CustID, die als Link zwischen den beiden DataTable-Objekten dient. Im Beispiel wird eine einzige DataRelation zur Relations-Auflistung für das DataSet hinzugefügt. Durch das erste Argument im Beispiel wird der Name der zu erstellenden DataRelation festgelegt. Das zweite Argument legt die übergeordnete DataColumn und das dritte Argument die untergeordnete DataColumn fest.

custDS.Relations.Add("CustOrders", _
                     custDS.Tables("Customers").Columns("CustID"), _
                     custDS.Tables("Orders").Columns("CustID"))
[C#]
custDS.Relations.Add("CustOrders",
                     custDS.Tables["Customers"].Columns["CustID"],
                     custDS.Tables["Orders"].Columns["CustID"]);

Eine DataRelation besitzt außerdem eine Nested-Eigenschaft. Wenn für diese Eigenschaft True festgelegt ist, werden die Zeilen der untergeordneten Tabelle innerhalb der verknüpften Zeile der übergeordneten Tabelle geschachtelt, wenn sie mit WriteXml als XML-Elemente geschrieben werden. Weitere Informationen finden Sie unter XML und das DataSet.

Siehe auch

Erstellen und Verwenden von DataSets | DataColumn-Klasse | DataRelation-Klasse | DataRelationCollection-Klasse | DataSet-Klasse | DataTable-Klasse