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

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追加すると、ForeignKeyConstraintUniqueConstraint両方自動的に作成されます。UniqueConstraint が親 DataTable 内の主キー列に適用され、この制約が親テーブルConstraintCollection追加されます。ForeignKeyConstraint主キー列と外部キー列に適用され、この制約が子テーブルConstraintCollection追加されます。

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

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

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

使用例使用例

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

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



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ConstraintCollection クラス」の関連用語

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

   

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



ConstraintCollection クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2025 GRAS Group, Inc.RSS