Freigeben über


ForeignKeyConstraint Klasse

Definition

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.

public ref class ForeignKeyConstraint : System::Data::Constraint
public class ForeignKeyConstraint : System.Data.Constraint
[System.Serializable]
public class ForeignKeyConstraint : System.Data.Constraint
type ForeignKeyConstraint = class
    inherit Constraint
[<System.Serializable>]
type ForeignKeyConstraint = class
    inherit Constraint
Public Class ForeignKeyConstraint
Inherits Constraint
Vererbung
ForeignKeyConstraint
Attribute

Beispiele

Im folgenden Beispiel wird ein ForeignKeyConstrainterstellt, legt einige seiner Eigenschaften fest und fügt sie dem eines DataTable - ConstraintCollectionObjekts hinzu.

' 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

Hinweise

Ein ForeignKeyConstraint schränkt die Aktion ein, die ausgeführt wird, wenn ein Wert in einer Spalte (oder Spalten) entweder gelöscht oder aktualisiert wird. Eine solche Einschränkung ist für die Verwendung mit Primärschlüsselspalten vorgesehen. In einer über-/untergeordneten Beziehung zwischen zwei Tabellen 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 auch gelöscht werden (eine kaskadierende Aktion).

  • Die Werte in der untergeordneten Spalte (oder Spalten) können auf NULL-Werte festgelegt werden.

  • Die Werte in der untergeordneten Spalte (oder Spalten) können auf Standardwerte festgelegt werden.

  • Eine Ausnahme kann generiert werden.

ForeignKeyConstraint -Objekte sind in einer ConstraintCollectionDataTableenthalten, auf die über die Constraints -Eigenschaft zugegriffen wird.

Einschränkungen werden nur erzwungen, wenn die EnforceConstraints -Eigenschaft auf truefestgelegt ist.

Wird AcceptRejectRule erzwungen, wenn die -Methode eines DataTable Objekts AcceptChanges aufgerufen wird.

Konstruktoren

ForeignKeyConstraint(DataColumn, DataColumn)

Initialisiert eine neue Instanz der ForeignKeyConstraint-Klasse mit den angegebenen übergeordneten und untergeordneten DataColumn-Objekten.

ForeignKeyConstraint(DataColumn[], DataColumn[])

Initialisiert eine neue Instanz der ForeignKeyConstraint-Klasse mit den angegebenen Arrays von übergeordneten und untergeordneten DataColumn-Objekten.

ForeignKeyConstraint(String, DataColumn, DataColumn)

Initialisiert eine neue Instanz der ForeignKeyConstraint-Klasse mit dem angegebenen Namen und den angegebenen übergeordneten und untergeordneten DataColumn-Objekten.

ForeignKeyConstraint(String, DataColumn[], DataColumn[])

Initialisiert eine neue Instanz der ForeignKeyConstraint-Klasse mit dem angegebenen Namen und den Arrays von übergeordneten und untergeordneten DataColumn-Objekten.

ForeignKeyConstraint(String, String, String, String[], String[], AcceptRejectRule, Rule, Rule)

Dieser Konstruktor wird für die Unterstützung zur Entwurfszeit in der Visual Studio-Umgebung bereitgestellt. Mit diesem Konstruktor erstellte ForeignKeyConstraint-Objekte müssen der Auflistung anschließend über AddRange(Constraint[]) hinzugefügt werden. Tabellen und Spalten mit den angegebenen Namen müssen zum Zeitpunkt des Aufrufs der Methode vorhanden sein. Wenn BeginInit() vor dem Aufrufen dieses Konstruktors aufgerufen wurde, müssen die Tabellen und Spalten mit den angegebenen Namen zum Zeitpunkt des Aufrufs von EndInit() vorhanden sein.

ForeignKeyConstraint(String, String, String[], String[], AcceptRejectRule, Rule, Rule)

Dieser Konstruktor wird für die Unterstützung zur Entwurfszeit in der Visual Studio-Umgebung bereitgestellt. Mit diesem Konstruktor erstellte ForeignKeyConstraint-Objekte müssen der Auflistung anschließend über AddRange(Constraint[]) hinzugefügt werden. Tabellen und Spalten mit den angegebenen Namen müssen zum Zeitpunkt des Aufrufs der Methode vorhanden sein. Wenn BeginInit() vor dem Aufrufen dieses Konstruktors aufgerufen wurde, müssen die Tabellen und Spalten mit den angegebenen Namen zum Zeitpunkt des Aufrufs von EndInit() vorhanden sein.

Eigenschaften

_DataSet

Ruft das DataSet ab, zu dem diese Tabelle gehört.

(Geerbt von Constraint)
AcceptRejectRule

Gibt die Aktion an, die für die gesamte Einschränkung ausgeführt werden soll, wenn AcceptChanges() aufgerufen wird.

Columns

Ruft die untergeordneten Spalten dieser Einschränkung ab.

ConstraintName

Der Name einer Einschränkung in der ConstraintCollection.

(Geerbt von Constraint)
DeleteRule

Ruft die Aktion ab, die für diese Einschränkung beim Löschen einer Zeile ausgeführt wird, oder legt diese fest.

ExtendedProperties

Ruft die Auflistung von benutzerdefinierten Einschränkungseigenschaften ab.

(Geerbt von Constraint)
RelatedColumns

Die übergeordneten Spalten dieser Einschränkung.

RelatedTable

Ruft die übergeordnete Tabelle dieser Einschränkung ab.

Table

Ruft die untergeordnete Tabelle dieser Einschränkung ab.

UpdateRule

Ruft die Aktion ab, die für diese Einschränkung beim Aktualisieren einer Zeile ausgeführt wird, oder legt diese fest.

Methoden

CheckStateForProperty()

Ruft das DataSet ab, zu dem diese Tabelle gehört.

(Geerbt von Constraint)
Equals(Object)

Ruft einen Wert ab, der angibt, ob der aktuelle ForeignKeyConstraint mit dem angegebenen Objekt identisch ist

GetHashCode()

Ruft den Hashcode dieser Instanz des ForeignKeyConstraint-Objekts ab.

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
SetDataSet(DataSet)

Legt das DataSet der Einschränkung fest.

(Geerbt von Constraint)
ToString()

Ruft den ConstraintName (falls vorhanden) als Zeichenfolge ab.

(Geerbt von Constraint)

Gilt für:

Threadsicherheit

Dieser Typ ist für Multithreadlesevorgänge sicher. Sie müssen alle Schreibvorgänge synchronisieren.

Weitere Informationen