ConstraintCollectionとは? わかりやすく解説

ConstraintCollection イベント


パブリック イベントパブリック イベント

  名前 説明
パブリック イベント CollectionChanged Constraint オブジェクトを追加または削除したことが原因で ConstraintCollection が変更されると、常に発生します。
参照参照

関連項目

ConstraintCollection クラス
System.Data 名前空間
ForeignKeyConstraint
UniqueConstraint
DataRelation

ConstraintCollection クラス

DataTable に対する制約のコレクションを表します。

名前空間: System.Data
アセンブリ: System.Data (system.data.dll 内)
構文構文

Public NotInheritable Class
 ConstraintCollection
    Inherits InternalDataCollectionBase
Dim instance As ConstraintCollection
public sealed class ConstraintCollection :
 InternalDataCollectionBase
public ref class ConstraintCollection sealed
 : public InternalDataCollectionBase
public final class ConstraintCollection extends
 InternalDataCollectionBase
public final class ConstraintCollection extends
 InternalDataCollectionBase
解説解説

ConstraintCollection にアクセスするには、DataTable.Constraints プロパティを使用します。

ConstraintCollection は、DataTable に対する UniqueConstraint オブジェクトと ForeignKeyConstraint オブジェクトの両方を含むことができます。UniqueConstraint オブジェクトは、特定の列のデータが常に一意であり、データの整合性が保持されるようにします。ForeignKeyConstraint は、DataTable 内のデータが更新または削除された場合に関連テーブル内のそのデータをどのように処理するかを決定します。たとえば、行を削除したとき、関連行も削除する (連鎖) か、その他のアクションを実行するかを ForeignKeyConstraint が決定します。

メモメモ

2 つのテーブル間のリレーションシップを作成する DataRelation を DataSet に追加すると、ForeignKeyConstraint と UniqueConstraint の両方が自動的に作成されます。UniqueConstraint が親 DataTable 内の主キー列に適用され、この制約が親テーブルの ConstraintCollection に追加されます。ForeignKeyConstraint が主キー列と外部キー列に適用され、この制約が子テーブルの ConstraintCollection に追加されます。

ConstraintCollection は、Add、Clear、Remove など、標準のコレクションのメソッドを使用します。この他、Contains メソッドを使用して、特定の制約がコレクションに含まれるかどうかを確認できます。

Unique プロパティが true に設定されている DataColumn を DataTable オブジェクトの DataColumnCollection に追加すると、UniqueConstraint が作成されます。

DataRelation を DataSet オブジェクトの DataRelationCollection に追加すると、ForeignKeyConstraint が作成されます。

使用例使用例

DataTable を作成し、DataColumn (Unique プロパティが true に設定されている) を DataColumnCollection に追加する方法を最初の例に示します。DataSet を 1 つ、DataTable オブジェクトを 2 つ、列を 4 つ、DataRelation を 1 つ作成する方法を 2 番目の例に示します。DataRelation を DataSet オブジェクトの DataRelationCollection に追加したときに ForeignKeyConstraint と UniqueConstraint が作成されたことを示す制約数が出力されます。

Private Sub MakeTableWithUniqueConstraint()

    Dim table As New DataTable("table")
    Dim column As New DataColumn("UniqueColumn")
    column.Unique = True
    table.Columns.Add(column)

    ' Print count, name, and type.
    Console.WriteLine("Constraints.Count " _
       + table.Constraints.Count.ToString())
    Console.WriteLine(table.Constraints(0).ConstraintName)
    Console.WriteLine( _
        table.Constraints(0).GetType().ToString())

    ' Add a second unique column.
    column = New DataColumn("UniqueColumn2")
    column.Unique = True
    table.Columns.Add(column)

    ' Print info again.
    Console.WriteLine("Constraints.Count " _
       + table.Constraints.Count.ToString())
    Console.WriteLine(table.Constraints(1).ConstraintName)
    Console.WriteLine( _
        table.Constraints(1).GetType().ToString())
End Sub

Private Sub MakeTableWithForeignConstraint()

    ' Create a DataSet.
    Dim dataSet As New DataSet("dataSet")

    ' Make two tables.
    Dim customersTable As New
 DataTable("Customers")
    Dim ordersTable As New
 DataTable("Orders")

    ' Create four columns, two for each table.
    Dim name As New DataColumn("Name")
    Dim id As New DataColumn("ID")
    Dim orderId As New DataColumn("OrderID")
    Dim orderDate As New
 DataColumn("OrderDate")
    
    ' Add columns to tables.
    customersTable.Columns.Add(name)
    customersTable.Columns.Add(id)
    ordersTable.Columns.Add(orderId)
    ordersTable.Columns.Add(orderDate)
    
    ' Add tables to the DataSet.
    dataSet.Tables.Add(customersTable)
    dataSet.Tables.Add(ordersTable)

    ' Create a DataRelation for two of the columns.
    Dim myRelation As New
 DataRelation _
       ("CustomersOrders", id, orderId, True)
    dataSet.Relations.Add(myRelation)

    ' Print TableName, Constraints.Count, 
    ' ConstraintName and Type.
    Dim t As DataTable
    For Each t In  dataSet.Tables
        Console.WriteLine(t.TableName)
        Console.WriteLine("Constraints.Count " _
           + t.Constraints.Count.ToString())
        Console.WriteLine("ParentRelations.Count "
 _
           + t.ParentRelations.Count.ToString())
        Console.WriteLine("ChildRelations.Count "
 _
           + t.ChildRelations.Count.ToString())
        Dim cstrnt As Constraint
        For Each cstrnt In
  t.Constraints
            Console.WriteLine(cstrnt.ConstraintName)
            Console.WriteLine(cstrnt.GetType())
        Next cstrnt
    Next t
End Sub
private void MakeTableWithUniqueConstraint()
{
    DataTable table = new DataTable("table");
    DataColumn column = new DataColumn("UniqueColumn");
    column.Unique=true;
    table.Columns.Add(column);

    // Print count, name, and type.
    Console.WriteLine("Constraints.Count " 
        + table.Constraints.Count);
    Console.WriteLine(table.Constraints[0].ConstraintName);
    Console.WriteLine(table.Constraints[0].GetType() );

    // Add a second unique column.
    column = new DataColumn("UniqueColumn2");
    column.Unique=true;
    table.Columns.Add(column);

    // Print info again.
    Console.WriteLine("Constraints.Count " 
        + table.Constraints.Count);
    Console.WriteLine(table.Constraints[1].ConstraintName);
    Console.WriteLine(table.Constraints[1].GetType() );
}
 
private void MakeTableWithForeignConstraint()
{
    // Create a DataSet.
    DataSet dataSet = new DataSet("dataSet");

    // Make two tables.
    DataTable customersTable= new DataTable("Customers");
    DataTable ordersTable = new DataTable("Orders");

    // Create four columns, two for each table.
    DataColumn name = new DataColumn("Name");
    DataColumn id = new DataColumn("ID");
    DataColumn orderId = new DataColumn("OrderID");
    DataColumn cDate = new DataColumn("OrderDate");
 
    // Add columns to tables.
    customersTable.Columns.Add(name);
    customersTable.Columns.Add(id);
    ordersTable.Columns.Add(orderId);
    ordersTable.Columns.Add(cDate);
 
    // Add tables to the DataSet.
    dataSet.Tables.Add(customersTable);
    dataSet.Tables.Add(ordersTable); 

    // Create a DataRelation for two of the columns.
    DataRelation myRelation = new 
        DataRelation("CustomersOrders",id,orderId,true);
    dataSet.Relations.Add(myRelation);

    // Print TableName, Constraints.Count, 
    // ConstraintName and Type.
    foreach(DataTable t in dataSet.Tables)
    {
        Console.WriteLine(t.TableName);
        Console.WriteLine("Constraints.Count " 
            + t.Constraints.Count);
        Console.WriteLine("ParentRelations.Count " 
            + t.ParentRelations.Count);
        Console.WriteLine("ChildRelations.Count " 
            + t.ChildRelations.Count);
        foreach(Constraint cstrnt in t.Constraints)
        {
            Console.WriteLine(cstrnt.ConstraintName);
            Console.WriteLine(cstrnt.GetType());
        }
    }
}
継承階層継承階層
System.Object
   System.Data.InternalDataCollectionBase
    System.Data.ConstraintCollection
スレッド セーフスレッド セーフ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
ConstraintCollection メンバ
System.Data 名前空間
ForeignKeyConstraint
UniqueConstraint
DataRelation

ConstraintCollection プロパティ


パブリック プロパティパブリック プロパティ

( プロテクト プロパティ も参照)
  名前 説明
パブリック プロパティ Count  コレクション内の要素の合計数を取得します。 ( InternalDataCollectionBase から継承されます。)
パブリック プロパティ IsReadOnly  InternalDataCollectionBase が読み取り専用かどうかを示す値を取得します。 ( InternalDataCollectionBase から継承されます。)
パブリック プロパティ IsSynchronized  InternalDataCollectionBase の同期がとられているかどうかを示す値を取得します。 ( InternalDataCollectionBase から継承されます。)
パブリック プロパティ Item オーバーロードされます。 指定した Constraint をコレクションから取得します。
パブリック プロパティ SyncRoot  コレクションの同期をとるために使用できるオブジェクトを取得します。 ( InternalDataCollectionBase から継承されます。)
プロテクト プロパティプロテクト プロパティ
  名前 説明
プロテクト プロパティ List  
参照参照

関連項目

ConstraintCollection クラス
System.Data 名前空間
ForeignKeyConstraint
UniqueConstraint
DataRelation

ConstraintCollection メソッド


パブリック メソッドパブリック メソッド

( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド Add オーバーロードされます。 Constraint オブジェクトをコレクションに追加します。
パブリック メソッド AddRange 指定した ConstraintCollection 配列の要素をコレクションの末尾にコピーします。
パブリック メソッド CanRemove Constraint を削除できるかどうかを示します。
パブリック メソッド Clear すべての Constraint オブジェクトのコレクションを削除します。
パブリック メソッド Contains 名前で指定した Constraint オブジェクトがコレクション内に存在するかどうかを示します。
パブリック メソッド CopyTo オーバーロードされます。  
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。)
パブリック メソッド GetEnumerator  コレクションの IEnumerator を取得します。 ( InternalDataCollectionBase から継承されます。)
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 ( Object から継承されます。)
パブリック メソッド IndexOf オーバーロードされます。 指定した Constraint のインデックスを取得します。
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。)
パブリック メソッド Remove オーバーロードされます。 ConstraintCollection から Constraint を削除します。
パブリック メソッド RemoveAt 指定したインデックス位置にある Constraint オブジェクトをコレクションから削除します。
パブリック メソッド ToString  現在の Object を表す String を返します。 ( Object から継承されます。)
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

ConstraintCollection クラス
System.Data 名前空間
ForeignKeyConstraint
UniqueConstraint
DataRelation

ConstraintCollection メンバ

DataTable に対する制約のコレクションを表します。

ConstraintCollection データ型で公開されるメンバを以下の表に示します。


パブリック プロパティパブリック プロパティ
( プロテクト プロパティ も参照)
  名前 説明
パブリック プロパティ Count  コレクション内の要素の合計数を取得します。(InternalDataCollectionBase から継承されます。)
パブリック プロパティ IsReadOnly  InternalDataCollectionBase が読み取り専用かどうかを示す値を取得します。(InternalDataCollectionBase から継承されます。)
パブリック プロパティ IsSynchronized  InternalDataCollectionBase の同期がとられているかどうかを示す値を取得します。(InternalDataCollectionBase から継承されます。)
パブリック プロパティ Item オーバーロードされます。 指定した Constraint をコレクションから取得します。
パブリック プロパティ SyncRoot  コレクションの同期をとるために使用できるオブジェクトを取得します。(InternalDataCollectionBase から継承されます。)
プロテクト プロパティプロテクト プロパティ
  名前 説明
プロテクト プロパティ List  
パブリック メソッドパブリック メソッド
( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド Add オーバーロードされます。 Constraint オブジェクトをコレクションに追加します。
パブリック メソッド AddRange 指定した ConstraintCollection 配列の要素をコレクションの末尾にコピーします。
パブリック メソッド CanRemove Constraint を削除できるかどうかを示します。
パブリック メソッド Clear すべての Constraint オブジェクトのコレクションを削除します。
パブリック メソッド Contains 名前で指定した Constraint オブジェクトがコレクション内に存在するかどうかを示します。
パブリック メソッド CopyTo オーバーロードされます。  
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。)
パブリック メソッド GetEnumerator  コレクションの IEnumerator を取得します。 (InternalDataCollectionBase から継承されます。)
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッド IndexOf オーバーロードされます。 指定した Constraint のインデックスを取得します。
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。)
パブリック メソッド Remove オーバーロードされます。 ConstraintCollection から Constraint を削除します。
パブリック メソッド RemoveAt 指定したインデックス位置にある Constraint オブジェクトをコレクションから削除します。
パブリック メソッド ToString  現在の Object を表す String を返します。 (Object から継承されます。)
プロテクト メソッドプロテクト メソッド
パブリック イベントパブリック イベント
  名前 説明
パブリック イベント CollectionChanged Constraint オブジェクトを追加または削除したことが原因で ConstraintCollection が変更されると、常に発生します。
参照参照

関連項目

ConstraintCollection クラス
System.Data 名前空間
ForeignKeyConstraint
UniqueConstraint
DataRelation



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「ConstraintCollection」の関連用語

ConstraintCollectionのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ConstraintCollectionのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS