次の方法で共有


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 オブジェクトは DataTableConstraintCollection に格納されています。このコレクションにアクセスするには 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