次の方法で共有


DataTable.Constraints プロパティ

このテーブルに保持されている制約のコレクションを取得します。

Public ReadOnly Property Constraints As ConstraintCollection
[C#]
public ConstraintCollection Constraints {get;}
[C++]
public: __property ConstraintCollection* get_Constraints();
[JScript]
public function get Constraints() : ConstraintCollection;

プロパティ値

テーブルの Constraint オブジェクトのコレクションが格納されている ConstraintCollectionConstraint オブジェクトが存在しない場合は null 値。

解説

ForeignKeyConstraint は、1 つ以上の列内の値を削除または更新するときに実行されるアクションを制限します。この制約は主キー列に使用する必要があります。2 つのテーブル間の親子のリレーションシップでは、親テーブルから値を削除すると、子行に対して次のいずれかの影響を与えることがあります。

  • 子行も削除されます (連鎖アクション)。
  • 1 つ以上の子列内の値が null 値に設定されます。
  • 1 つ以上の子列内の値が既定値に設定されます。
  • 例外が生成されます。

主キー内の値を一意でない値に設定しようとすると、 UniqueConstraint がアクティブになります。

使用例

[Visual Basic, C#, C++] ForeignKeyConstraint を制約のコレクションに追加する例を次に示します。

 
Private Sub CreateConstraint(myDataSet As DataSet, table1 As String, table2 As String, _
                                                   column1 As String, column2 As String)
   Dim idKeyRestraint As ForeignKeyConstraint = New ForeignKeyConstraint _
        (myDataSet.Tables(table1).Columns(column1), _
         myDataSet.Tables(table2).Columns(column2))
   ' 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

   myDataSet.Tables(table1).Constraints.Add(idKeyRestraint)
   myDataSet.EnforceConstraints = True
End Sub

[C#] 
private void CreateConstraint(DataSet myDataSet, string table1, string table2, string column1, string column2)
{
   ForeignKeyConstraint idKeyRestraint = new ForeignKeyConstraint(myDataSet.Tables[table1].Columns[column1],
                                                                  myDataSet.Tables[table2].Columns[column2]);
   // 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;

   myDataSet.Tables[table1].Constraints.Add(idKeyRestraint);
   myDataSet.EnforceConstraints = true;
}

[C++] 
private:
 void CreateConstraint(DataSet* myDataSet, String* table1, String* table2, String* column1, String* column2)
 {
    ForeignKeyConstraint* idKeyRestraint = new ForeignKeyConstraint(myDataSet->Tables->Item[table1]->Columns->Item[column1],
                                                                    myDataSet->Tables->Item[table2]->Columns->Item[column2]);
    // 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;
 
    myDataSet->Tables->Item[table1]->Constraints->Add(idKeyRestraint);
    myDataSet->EnforceConstraints = true;
 }

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: 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

参照

DataTable クラス | DataTable メンバ | System.Data 名前空間 | AcceptRejectRule | ForeignKeyConstraint | UniqueConstraint | Rule