ForeignKeyConstraint クラス
値または行を削除または更新したときに、主キーと外部キーのリレーションシップに関係する列セットに対して適用するアクション制約を表します。
この型のすべてのメンバの一覧については、ForeignKeyConstraint メンバ を参照してください。
System.Object
System.Data.Constraint
System.Data.ForeignKeyConstraint
<Serializable>
Public Class ForeignKeyConstraint Inherits Constraint
[C#]
[Serializable]
public class ForeignKeyConstraint : Constraint
[C++]
[Serializable]
public __gc class ForeignKeyConstraint : public Constraint
[JScript]
public
Serializable
class ForeignKeyConstraint extends Constraint
スレッドセーフ
この型は、マルチスレッド読み取り操作に対して安全です。すべての書き込み操作の同期をとる必要があります。
解説
ForeignKeyConstraint は、列内の値を削除または更新したときに実行されるアクションを制限します。この制約は主キー列に使用する必要があります。2 つのテーブル間に親子のリレーションシップがある場合は、親テーブルから値を削除したときに、子行が次のいずれかの影響を受けることがあります。
- 子行も削除されます (連鎖アクション)。
- 子列内の値が null 値に設定されます。
- 子列内の値が既定値に設定されます。
- 例外が生成されます。
ForeignKeyConstraint オブジェクトは DataTable の ConstraintCollection に格納されています。このコレクションにアクセスするには Constraints プロパティを使用します。
EnforceConstraints プロパティが true に設定されていない限り、制約は適用されません。
AcceptRejectRule は、 DataTable オブジェクトの AcceptChanges メソッドが呼び出されるたびに適用されます。
使用例
[Visual Basic] ForeignKeyConstraint を作成し、そのプロパティの一部を設定し、これを DataTable オブジェクトの ConstraintCollection に追加する例を次に示します。
' The next line goes into the Declarations section of the module:
' SuppliersProducts is a class derived from DataSet.
Private myDataSet As SuppliersProducts
Private Sub CreateConstraint()
' Declare parent column and child column variables.
Dim pCol As DataColumn
Dim cCol As DataColumn
Dim myFKC As ForeignKeyConstraint
' Set parent and child column variables.
pCol = MyDataSet.Tables("Suppliers").Columns("SupplierID")
cCol = MyDataSet.Tables("Products").Columns("SupplierID")
myFKC = New ForeignKeyConstraint("SupplierFKConstraint", pCol, cCol)
' Set null values when a value is deleted.
myFKC.DeleteRule = Rule.SetNull
myFKC.UpdateRule = Rule.Cascade
myFKC.AcceptRejectRule = AcceptRejectRule.Cascade
' Add the constraint, and set EnforceConstraints to true.
myDataSet.Tables("Products").Constraints.Add(myFKC)
myDataSet.EnforceConstraints = True
End Sub
[C#, C++, JScript] C#、C++、および JScript のサンプルはありません。Visual Basic のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
名前空間: System.Data
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET
アセンブリ: System.Data (System.Data.dll 内)
参照
ForeignKeyConstraint メンバ | System.Data 名前空間 | AcceptRejectRule | DataTable | ConstraintCollection | Rule