Freigeben über


DataRelation-Klasse

Stellt eine Parent/Child-Beziehung zwischen zwei DataTable-Objekten dar.

Namespace: System.Data
Assembly: System.Data (in system.data.dll)

Syntax

'Declaration
Public Class DataRelation
'Usage
Dim instance As DataRelation
public class DataRelation
public ref class DataRelation
public class DataRelation
public class DataRelation

Hinweise

Mithilfe einer DataRelation werden zwei DataTable-Objekte über DataColumn-Objekte miteinander verknüpft. In einer Customer/Orders-Beziehung ist z. B. die Tabelle Customers das übergeordnete Element und die Tabelle Orders das untergeordnete Element der Beziehung. Dies ist vergleichbar mit einer Primärschlüssel/Fremdschlüssel-Beziehung. Weitere Informationen finden Sie unter Navigieren in einer Beziehung zwischen Tabellen.

Beziehungen werden zwischen einander entsprechenden Spalten in der übergeordneten und der untergeordneten Tabelle erstellt. Das heißt, dass der DataType-Wert für beide Spalten identisch sein muss.

In Beziehungen können auch verschiedene Änderungen von der übergeordneten DataRow an die untergeordneten Zeilen weitergegeben werden. Um das Ändern von Werten in untergeordneten Zeilen zu steuern, fügen Sie der ConstraintCollection des DataTable-Objekts eine ForeignKeyConstraint hinzu. Die ConstraintCollection bestimmt, welche Aktion ausgeführt wird, wenn ein Wert in einer übergeordneten Tabelle gelöscht oder aktualisiert wird.

Beim Erstellen einer DataRelation wird zunächst überprüft, ob die Beziehung eingerichtet werden kann. Nachdem die Beziehung der DataRelationCollection hinzugefügt wurde, wird sie beibehalten, indem alle Änderungen für unzulässig erklärt werden, die sie ungültig machen würden. Nachdem eine DataRelation erstellt und bevor diese der DataRelationCollection hinzugefügt wurde, können zusätzliche Änderungen an den übergeordneten oder untergeordneten Zeilen vorgenommen werden. Eine Ausnahme wird ausgelöst, wenn dies zu einer nicht mehr gültigen Beziehung führt.

DataRelation-Objekte sind in einer DataRelationCollection enthalten, auf die Sie über die Relations-Eigenschaft des DataSet und über die ChildRelations-Eigenschaft und die ParentRelations-Eigenschaft der DataTable zugreifen können.

Beispiel

Im folgenden Beispiel wird eine neue DataRelation erstellt und der DataRelationCollection eines DataSet hinzugefügt.

Private Sub CreateRelation()
    ' Get the DataColumn objects from two DataTable objects 
    ' in a DataSet. Code to get the DataSet not shown here.
    Dim parentColumn As DataColumn = _
        DataSet1.Tables("Customers").Columns("CustID")
    Dim childColumn As DataColumn = DataSet1.Tables( _
        "Orders").Columns("CustID")

    ' Create DataRelation.
    Dim relCustOrder As DataRelation
    relCustOrder = New DataRelation( _
        "CustomersOrders", parentColumn, childColumn)

    ' Add the relation to the DataSet.
    DataSet1.Relations.Add(relCustOrder)
End Sub
private void CreateRelation() 
{
    // Get the DataColumn objects from two DataTable objects 
    // in a DataSet. Code to get the DataSet not shown here.
    DataColumn parentColumn = 
        DataSet1.Tables["Customers"].Columns["CustID"];
    DataColumn childColumn = 
        DataSet1.Tables["Orders"].Columns["CustID"];
    // Create DataRelation.
    DataRelation relCustOrder;
    relCustOrder = new DataRelation("CustomersOrders", 
        parentColumn, childColumn);
    // Add the relation to the DataSet.
    DataSet1.Relations.Add(relCustOrder);
}

Vererbungshierarchie

System.Object
  System.Data.DataRelation

Threadsicherheit

Dieser Typ ist bei Multithread-Lesevorgängen sicher. Sie müssen alle Schreibvorgänge synchronisieren.

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

DataRelation-Member
System.Data-Namespace
ChildRelations
DataColumn-Klasse
DataSet
ForeignKeyConstraint
DataRelationCollection
UniqueConstraint
ParentRelations