Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

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.

For a list of all members of this type, see ForeignKeyConstraint Members.

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

[Visual Basic]
<Serializable>
Public Class ForeignKeyConstraint
   Inherits Constraint
[C#]
[Serializable]
public class ForeignKeyConstraint : Constraint
[C++]
[Serializable]
public __gc class ForeignKeyConstraint : public Constraint
[JScript]
public
   Serializable
class ForeignKeyConstraint extends Constraint

Thread Safety

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

Remarks

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.

Example

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

[Visual Basic] 
' The next line goes into the Declarations section of the module:
' SuppliersProducts is a class derived from DataSet.
Private myDataSet As SuppliersProducts  

Private Sub CreateConstraint()
   ' Declare parent column and child column variables.
   Dim pCol As DataColumn
   Dim cCol As DataColumn
   Dim myFKC As ForeignKeyConstraint
   ' Set parent and child column variables.
   pCol = MyDataSet.Tables("Suppliers").Columns("SupplierID")
   cCol = MyDataSet.Tables("Products").Columns("SupplierID")
   myFKC = New ForeignKeyConstraint("SupplierFKConstraint", pCol, cCol)
   ' Set null values when a value is deleted.
   myFKC.DeleteRule = Rule.SetNull
   myFKC.UpdateRule = Rule.Cascade
   myFKC.AcceptRejectRule = AcceptRejectRule.Cascade
   ' Add the constraint, and set EnforceConstraints to true.
   myDataSet.Tables("Products").Constraints.Add(myFKC)
   myDataSet.EnforceConstraints = True
End Sub

[C#, C++, JScript] No example is available for C#, C++, or JScript. To view a Visual Basic example, click the Language Filter button Language Filter in the upper-left corner of the page.

Requirements

Namespace: System.Data

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework

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

See Also

ForeignKeyConstraint Members | System.Data Namespace | AcceptRejectRule | DataTable | ConstraintCollection | Rule

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.