DataTable.Constraints プロパティ


このテーブルに保持されている制約のコレクションを取得します。Gets the collection of constraints maintained by this table.

 property System::Data::ConstraintCollection ^ Constraints { System::Data::ConstraintCollection ^ get(); };
public System.Data.ConstraintCollection Constraints { get; }
public System.Data.ConstraintCollection Constraints { get; }
member this.Constraints : System.Data.ConstraintCollection
Public ReadOnly Property Constraints As ConstraintCollection



テーブルの ConstraintCollection オブジェクトのコレクションを格納している ConstraintA ConstraintCollection that contains the collection of Constraint objects for the table. Constraint オブジェクトが存在しない場合、空のコレクションが返されます。An empty collection is returned if no Constraint objects exist.


次の例では、制約のコレクションに ForeignKeyConstraint を追加します。The following example adds a ForeignKeyConstraint to the collection of constraints.

private void CreateConstraint(DataSet dataSet,
    string table1, string table2, string column1, string column2)
    ForeignKeyConstraint idKeyRestraint = new

    // Set null values when a value is deleted.
    idKeyRestraint.DeleteRule = Rule.SetNull;
    idKeyRestraint.UpdateRule = Rule.Cascade;

    // Set AcceptRejectRule to cascade changes.
    idKeyRestraint.AcceptRejectRule = AcceptRejectRule.Cascade;

    dataSet.EnforceConstraints = true;
Private Sub CreateConstraint(dataSet As DataSet, _
    table1 As String, table2 As String, _
    column1 As String, column2 As String)

    Dim idKeyRestraint As ForeignKeyConstraint = _
        New ForeignKeyConstraint _
        (dataSet.Tables(table1).Columns(column1), _

    ' Set null values when a value is deleted.
    idKeyRestraint.DeleteRule = Rule.SetNull
    idKeyRestraint.UpdateRule = Rule.Cascade

    ' Set AcceptRejectRule to cascade changes.
    idKeyRestraint.AcceptRejectRule = AcceptRejectRule.Cascade
    dataSet.EnforceConstraints = True
End Sub


ForeignKeyConstraint は、列 (または列) の値が削除または更新されたときに実行されるアクションを制限します。A ForeignKeyConstraint restricts the action performed when a value in a column (or columns) is either deleted or updated. このような制約は、主キー列と共に使用することを目的としています。Such a constraint is intended to be used with primary key columns. 2つのテーブル間の親子リレーションシップでは、親テーブルから値を削除すると、次のいずれかの方法で子の行に影響を与える可能性があります。In a parent/child relationship between two tables, deleting a value from the parent table can affect the child rows in one of the following ways.

  • 子行を削除することもできます (連鎖アクション)。The child rows can also be deleted (a cascading action).

  • 子列 (または列) の値は null 値に設定できます。The values in the child column (or columns) can be set to null values.

  • 子列 (または列) の値は、既定値に設定できます。The values in the child column (or columns) can be set to default values.

  • 例外を生成できます。An exception can be generated.

主キーの値を一意でない値に設定しようとすると、UniqueConstraint がアクティブになります。A UniqueConstraint becomes active when attempting to set a value in a primary key to a non-unique value.