通过


Rule 枚举

定义

指示强制实施 ForeignKeyConstraint 时发生的操作。

public enum class Rule
public enum Rule
type Rule = 
Public Enum Rule
继承

字段

名称 说明
None 0

对相关行不采取任何操作。

Cascade 1

删除或更新相关行。 这是默认值。

SetNull 2

将相关行中的值设置为 DBNull

SetDefault 3

将相关行中的值设置为属性中包含的 DefaultValue 值。

示例

' 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

注解

这些Rule值设置为UpdateRuleDeleteRule在对象ConstraintCollection中找到DataTable的对象的属性和属性ForeignKeyConstraint

这些 Rule 值确定删除或更新列中的值时发生的操作。 在两者中,删除值是设置规则时更加关键和要求注意。

在删除某个值的情况下, Cascade 指定也删除包含该值的所有行。 SetNull 指定所有子列中的值都设置为 null 值。 SetDefault 指定所有子列都设置为列的默认值。 None 指定不会发生任何操作,但会生成异常。

在更新值的情况下, Cascade 指定所有子列都同样使用新值进行更新。 SetNull 指定所有子列都设置为 null 值。 SetDefault 指定所有子列值都设置为默认值。 None 指定不执行任何操作,但会生成异常。

除非属性为 true.,否则EnforceConstraints不会强制执行对 a DataSet 的约束。

AcceptChanges调用该方法时,进AcceptRejectRule一步确定发生什么操作。

适用于

另请参阅