語言

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值被設定為 ,UpdateRule且 DeleteRule 在物件 中找到ForeignKeyConstraintDataTable的物件屬性ConstraintCollection。

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

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

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

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

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

適用於

另請參閱