ForeignKeyConstraint 类

表示删除或更新某个值或行时,对主键/外键关系中一组列强制进行的操作限制。

**命名空间:**System.Data
**程序集:**System.Data(在 system.data.dll 中)

语法

声明
Public Class ForeignKeyConstraint
    Inherits Constraint
用法
Dim instance As ForeignKeyConstraint
public class ForeignKeyConstraint : Constraint
public ref class ForeignKeyConstraint : public Constraint
public class ForeignKeyConstraint extends Constraint
public class ForeignKeyConstraint extends Constraint

备注

ForeignKeyConstraint 限制在删除或更新一列(或多列)的值时所执行的操作。这种约束旨在用于主键列。在两个表的父/子关系中,从父表删除一个值可能会以下列方式之一影响子行。

  • 可能会同时删除子行(级联操作)。

  • 可能会将子列中的值设置为空值。

  • 可能会将子列中的值设置为默认值。

  • 可能生成异常。

ForeignKeyConstraint 对象包含在 DataTableConstraintCollection 中,可以通过 Constraints 属性来访问。

除非将 EnforceConstraints 属性设置为 true,否则不会强制约束。

每当调用 DataTable 对象的 AcceptChanges 方法时,就会强制 AcceptRejectRule

示例

下面的示例创建 ForeignKeyConstraint,设置它的某些属性,并将其添加到 DataTable 对象的 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

继承层次结构

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

线程安全

该类型对于多线程读操作是安全的。您必须使任何写操作同步。

平台

Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

.NET Compact Framework

受以下版本支持:2.0、1.0

请参见

参考

ForeignKeyConstraint 成员
System.Data 命名空间
AcceptRejectRule 枚举
DataTable 类
ConstraintCollection 类
Rule