共用方式為


Rule 列舉

定義

指出強制執行 ForeignKeyConstraint 時所發生的動作。

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

欄位

名稱 Description
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 在物件 中找到DataTableConstraintCollection的物件屬性ForeignKeyConstraint

這些 Rule 值決定了當欄位中的值被刪除或更新時所執行的動作。 兩者中,刪除某個數值在設定規則時更為關鍵且需要注意。

當某個值被刪除時, Cascade 指定所有包含該值的列也一併刪除。 SetNull 指定所有子欄位的值都設為 null 值。 SetDefault 指定所有子欄位都設定為該欄位的預設值。 None 指定不會發生任何動作,但會產生例外。

當值被更新時, Cascade 指定所有子欄位也同時更新為新值。 SetNull 指定所有子欄位皆設為空值。 SetDefault 指定所有子欄位值都設為預設值。 None 規定不採取任何行動,但會產生例外。

除非性質EnforceConstraintstrue,否則對 的DataSet約束不會被強制執行。

AcceptChanges 方法被呼叫時,進一步 AcceptRejectRule 決定執行的動作。

適用於

另請參閱