ForeignKeyConstraint.DeleteRule 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置当删除某一行时通过该约束发生的操作。
public:
virtual property System::Data::Rule DeleteRule { System::Data::Rule get(); void set(System::Data::Rule value); };
public virtual System.Data.Rule DeleteRule { get; set; }
[System.Data.DataSysDescription("ForeignKeyConstraintDeleteRuleDescr")]
public virtual System.Data.Rule DeleteRule { get; set; }
member this.DeleteRule : System.Data.Rule with get, set
[<System.Data.DataSysDescription("ForeignKeyConstraintDeleteRuleDescr")>]
member this.DeleteRule : System.Data.Rule with get, set
Public Overridable Property DeleteRule As Rule
属性值
Rule 值之一。 默认值为 Cascade
。
- 属性
示例
以下示例创建一个 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 fkConstraint As ForeignKeyConstraint
' Set parent and child column variables.
parentColumn = suppliersProducts.Tables("Suppliers").Columns("SupplierID")
childColumn = suppliersProducts.Tables("Products").Columns("SupplieriD")
fkConstraint = New ForeignKeyConstraint( _
"SuppierFKConstraint", parentColumn, childColumn)
' Set null values when a value is deleted.
fkConstraint.DeleteRule = Rule.SetNull
fkConstraint.UpdateRule = Rule.Cascade
fkConstraint.AcceptRejectRule = AcceptRejectRule.Cascade
' Add the constraint, and set EnforceConstraints to true.
suppliersProducts.Tables("Suppliers").Constraints.Add(fkConstraint)
suppliersProducts.EnforceConstraints = True
End Sub
注解
从父表中删除行时, DeleteRule 确定子表 (或表) 的列中将发生的情况。 如果规则设置为 Cascade
,则将删除子行。
如果设置为 SetNull
,则会将 放置在 DBNull
受影响行的相应列中。 根据数据源,列中可能允许也可能不允许 null 值。 例如,SQL Server允许在主键列中找到多个 null 值,即使它们不是唯一的。 但是,在 中 DataTable,如果 DataColumn 对象的 Unique 属性设置为 true
,则不允许在主键列中使用多个 null 值。
如果设置为 SetDefault
,则分配列的默认值。