Export (0) Print
Expand All

ForeignKeyConstraint Class

Represents an action restriction enforced on a set of columns in a primary key/foreign key relationship when a value or row is either deleted or updated.

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

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

public ref class ForeignKeyConstraint : public Constraint

The ForeignKeyConstraint type exposes the following members.

  NameDescription
Public methodSupported by the XNA FrameworkForeignKeyConstraint(DataColumn, DataColumn)Initializes a new instance of the ForeignKeyConstraint class with the specified parent and child DataColumn objects.
Public methodSupported by the XNA FrameworkForeignKeyConstraint(array<DataColumn>, array<DataColumn>)Initializes a new instance of the ForeignKeyConstraint class with the specified arrays of parent and child DataColumn objects.
Public methodSupported by the XNA FrameworkForeignKeyConstraint(String, DataColumn, DataColumn)Initializes a new instance of the ForeignKeyConstraint class with the specified name, parent and child DataColumn objects.
Public methodSupported by the XNA FrameworkForeignKeyConstraint(String, array<DataColumn>, array<DataColumn>)Initializes a new instance of the ForeignKeyConstraint class with the specified name, and arrays of parent and child DataColumn objects.
Public methodSupported by the XNA FrameworkForeignKeyConstraint(String, String, array<String>, array<String>, AcceptRejectRule, Rule, Rule)This constructor is provided for design time support in the Visual Studio environment. ForeignKeyConstraint objects created by using this constructor must then be added to the collection via AddRange. Tables and columns with the specified names must exist at the time the method is called, or if BeginInit has been called prior to calling this constructor, the tables and columns with the specified names must exist at the time that EndInit is called.
Public methodSupported by the XNA FrameworkForeignKeyConstraint(String, String, String, array<String>, array<String>, AcceptRejectRule, Rule, Rule)This constructor is provided for design time support in the Visual Studio environment. ForeignKeyConstraint objects created by using this constructor must then be added to the collection via AddRange. Tables and columns with the specified names must exist at the time the method is called, or if BeginInit has been called prior to calling this constructor, the tables and columns with the specified names must exist at the time that EndInit is called.
Top

  NameDescription
Protected propertySupported by the XNA Framework_DataSetInfrastructure. Gets the DataSet to which this constraint belongs. (Inherited from Constraint.)
Public propertySupported by the XNA FrameworkAcceptRejectRuleIndicates the action that should take place across this constraint when AcceptChanges is invoked.
Public propertySupported by the XNA FrameworkColumnsGets the child columns of this constraint.
Public propertySupported by the XNA FrameworkConstraintNameThe name of a constraint in the ConstraintCollection. (Inherited from Constraint.)
Public propertySupported by the XNA FrameworkDeleteRuleGets or sets the action that occurs across this constraint when a row is deleted.
Public propertySupported by the XNA FrameworkExtendedPropertiesGets the collection of user-defined constraint properties. (Inherited from Constraint.)
Public propertySupported by the XNA FrameworkRelatedColumnsThe parent columns of this constraint.
Public propertySupported by the XNA FrameworkRelatedTableGets the parent table of this constraint.
Public propertySupported by the XNA FrameworkTableGets the child table of this constraint. (Overrides Constraint::Table.)
Public propertySupported by the XNA FrameworkUpdateRuleGets or sets the action that occurs across this constraint on when a row is updated.
Top

  NameDescription
Protected methodSupported by the XNA FrameworkCheckStateForPropertyInfrastructure. Gets the DataSet to which this constraint belongs. (Inherited from Constraint.)
Public methodSupported by the XNA FrameworkEqualsGets a value indicating whether the current ForeignKeyConstraint is identical to the specified object. (Overrides Object::Equals(Object).)
Protected methodSupported by the XNA FrameworkFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodSupported by the XNA FrameworkGetHashCodeGets the hash code of this instance of the ForeignKeyConstraint object. (Overrides Object::GetHashCode().)
Public methodSupported by the XNA FrameworkGetTypeGets the Type of the current instance. (Inherited from Object.)
Protected methodSupported by the XNA FrameworkMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Protected methodSupported by the XNA FrameworkSetDataSetSets the constraint's DataSet. (Inherited from Constraint.)
Public methodSupported by the XNA FrameworkToStringGets the ConstraintName, if there is one, as a string. (Inherited from Constraint.)
Top

A ForeignKeyConstraint restricts the action performed when a value in a column (or columns) is either deleted or updated. Such a constraint is intended to be used with primary key columns. In a parent/child relationship between two tables, deleting a value from the parent table can affect the child rows in one of the following ways.

  • The child rows can also be deleted (a cascading action).

  • The values in the child column (or columns) can be set to null values.

  • The values in the child column (or columns) can be set to default values.

  • An exception can be generated.

ForeignKeyConstraint objects are contained in the ConstraintCollection of a DataTable, which is accessed through the Constraints property.

Constraints are not enforced unless the EnforceConstraints property is set to true.

The AcceptRejectRule is enforced whenever a DataTable object's AcceptChanges method is invoked.

The following example creates a ForeignKeyConstraint, sets some of its properties, and adds it to a DataTable object's ConstraintCollection.

' 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

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

This type is safe for multithreaded read operations. You must synchronize any write operations.

Show:
© 2014 Microsoft