Rule 枚举
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
指示强制执行 ForeignKeyConstraint 时发生的操作。
public enum class Rule
public enum Rule
type Rule =
Public Enum Rule
- 继承
字段
Cascade | 1 | 删除或更新相关的行。 这是默认设置。 |
None | 0 | 不对相关的行采取任何操作。 |
SetDefault | 3 | 将相关的行中的值设置为 DefaultValue 属性中包含的值。 |
SetNull | 2 | 将相关的行中的值设置为 |
示例
' 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值设置为 UpdateRule 在 对象的 中找到DataTable的 ForeignKeyConstraint 对象的 ConstraintCollection和 DeleteRule 属性。
这些 Rule 值确定删除或更新列中的值时发生的操作。 在两者中,在设置规则时,删除值更重要,更需要注意。
在删除某个值的情况下, Cascade
指定同时删除包含该值的所有行。 SetNull
指定将所有子列中的值设置为 null 值。 SetDefault
指定将所有子列设置为列的默认值。 None
指定不会发生任何操作,但会生成异常。
在更新值的情况下, Cascade
指定使用新值同样更新所有子列。 SetNull
指定将所有子列设置为 null 值。 SetDefault
指定将所有子列值设置为默认值。 None
指定不执行任何操作,但会生成异常。
DataSet除非 EnforceConstraints 属性为 true
,否则不会对 强制实施约束。
AcceptChanges调用 方法时, AcceptRejectRule 将进一步确定所发生的操作。