Rule Rule Rule Rule Enum


ForeignKeyConstraint を適用した場合に実行されるアクションを示します。Indicates the action that occurs when a ForeignKeyConstraint is enforced.

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


Cascade Cascade Cascade Cascade 1

関連付けられている行を削除または更新します。Delete or update related rows. 既定値です。This is the default.

None None None None 0

関連行で何もアクションが実行されません。No action taken on related rows.

SetDefault SetDefault SetDefault SetDefault 3

関連行の値を DefaultValue プロパティに格納されている値に設定します。Set values in related rows to the value contained in the DefaultValue property.

SetNull SetNull SetNull SetNull 2

関連行の値を DBNull に設定します。Set values in related rows to DBNull.

' 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.EnforceConstraints = True
End Sub


Rule値に設定されて、UpdateRuleDeleteRuleのプロパティをForeignKeyConstraintオブジェクト内で見つかった、DataTableオブジェクトのConstraintCollectionします。The Rule values are set to the UpdateRule and the DeleteRule properties of a ForeignKeyConstraint object found in a DataTable object's ConstraintCollection.

Rule値が列の値を削除または更新されたときに発生するアクションを決定します。The Rule values determine the action that occurs when a value in a column is either deleted or updated. 2 つの値を削除するより重要な注意の要求の厳しいルールを設定する場合です。Of the two, deleting a value is the more critical and demanding of attention when setting a rule.

値の削除でCascadeその値を含むすべての行も削除されたことを指定します。In the case where a value is deleted, Cascade specifies that all rows containing that value are also deleted. SetNull すべての子列の値が null 値に設定されているを指定します。SetNull specifies that values in all child columns are set to null values. SetDefault すべての子列が、列の既定値に設定することを指定します。SetDefault specifies that all child columns be set to the default value for the column. None アクションは発生しませんが、例外が生成されることを指定します。None specifies that no action will occur, but exceptions are generated.

値の更新に備えてCascadeすべての子列も同様に、新しい値で更新することを指定します。In the case where a value is updated, Cascade specifies that all child columns are likewise updated with the new value. SetNull すべての子列が null 値に設定することを指定します。SetNull specifies that all child columns be set to null values. SetDefault すべての子列の値が既定値に設定することを指定します。SetDefault specifies that all child column values be set to the default value. None アクションを実行しないことを指定しますが、例外を生成します。None specifies that no action be taken, but exceptions are generated.

に対する制約をDataSet場合を除き、適用されていない、EnforceConstraintsプロパティはtrueします。Constraints on a DataSet are not enforced unless the EnforceConstraints property is true.

ときに、AcceptChangesメソッドを呼び出すと、AcceptRejectRuleさらに発生する動作を決定します。When the AcceptChanges method is called, the AcceptRejectRule further determines what action occurs.