Freigeben über


ForeignKeyConstraint-Klasse

Stellt eine Aktionsbeschränkung dar, die für eine Gruppe von Spalten in einer Primärschlüssel/Fremdschlüssel-Beziehung erzwungen wird, wenn ein Wert oder eine Spalte gelöscht oder aktualisiert wird.

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

Syntax

'Declaration
Public Class ForeignKeyConstraint
    Inherits Constraint
'Usage
Dim instance As ForeignKeyConstraint
public class ForeignKeyConstraint : Constraint
public ref class ForeignKeyConstraint : public Constraint
public class ForeignKeyConstraint extends Constraint
public class ForeignKeyConstraint extends Constraint

Hinweise

Eine ForeignKeyConstraint schränkt die Aktion ein, die beim Löschen oder Aktualisieren eines Werts in einer oder mehreren Spalten ausgeführt wird. Eine solche Einschränkung ist für die Verwendung mit Primärschlüsselspalten vorgesehen. In einer Beziehung zwischen einer übergeordneten und einer untergeordneten Tabelle kann sich das Löschen eines Werts aus der übergeordneten Tabelle auf eine der folgenden Arten auf die untergeordneten Zeilen auswirken.

  • Die untergeordneten Zeilen können ebenfalls gelöscht werden (eine Kettenaktion).

  • Die Werte in der untergeordneten Spalte bzw. den untergeordneten Spalten können auf NULL-Werte festgelegt werden.

  • Die Werte in der untergeordneten Spalte bzw. den untergeordneten Spalten können auf Standardwerte festgelegt werden.

  • Eine Ausnahme kann ausgelöst werden.

ForeignKeyConstraint-Objekte sind in der ConstraintCollection einer DataTable enthalten, auf die über die Constraints-Eigenschaft zugegriffen wird.

Einschränkungen werden nur dann erzwungen, wenn die EnforceConstraints-Eigenschaft auf true festgelegt ist.

Die AcceptRejectRule wird immer dann erzwungen, wenn die AcceptChanges-Methode eines DataTable-Objekts aufgerufen wird.

Beispiel

Im folgenden Beispiel wird eine ForeignKeyConstraint erstellt, es werden einige ihrer Eigenschaften festgelegt, und sie wird einer ConstraintCollection eines DataTable-Objekts hinzugefügt.

' The next line goes into the Declarations section of the module:
' SuppliersProducts is a class derived from DataSet.
Private suppliersProducts As SuppliersProducts

Private Sub CreateConstraint()
    ' Declare parent column and child column variables.
    Dim parentColumn As DataColumn
    Dim childColumn As DataColumn
    Dim fkeyConstraint As ForeignKeyConstraint

    ' Set parent and child column variables.
    parentColumn = suppliersProducts.Tables("Suppliers").Columns("SupplierID")
    childColumn = suppliersProducts.Tables("Products").Columns("SupplierID")
    fkeyConstraint = New ForeignKeyConstraint( _
        "SupplierFKConstraint", parentColumn, childColumn)

    ' Set null values when a value is deleted.
    fkeyConstraint.DeleteRule = Rule.SetNull
    fkeyConstraint.UpdateRule = Rule.Cascade
    fkeyConstraint.AcceptRejectRule = AcceptRejectRule.Cascade

    ' Add the constraint, and set EnforceConstraints to true.
    suppliersProducts.Tables("Products").Constraints.Add(fkeyConstraint)
    suppliersProducts.EnforceConstraints = True
End Sub

Vererbungshierarchie

System.Object
   System.Data.Constraint
    System.Data.ForeignKeyConstraint

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

ForeignKeyConstraint-Member
System.Data-Namespace
AcceptRejectRule-Enumeration
DataTable-Klasse
ConstraintCollection-Klasse
Rule