ConstraintCollection ConstraintCollection ConstraintCollection ConstraintCollection Class

定義

DataTable に対する制約のコレクションを表します。Represents a collection of constraints for a DataTable.

public ref class ConstraintCollection sealed : System::Data::InternalDataCollectionBase
[System.Serializable]
public sealed class ConstraintCollection : System.Data.InternalDataCollectionBase
type ConstraintCollection = class
    inherit InternalDataCollectionBase
Public NotInheritable Class ConstraintCollection
Inherits InternalDataCollectionBase
継承
属性

最初の例ではDataTable、を作成しDataColumn 、そのUniqueプロパティがにtrue DataColumnCollection設定されたをに追加します。The first example creates a DataTable, and adds a DataColumn (with its Unique property set to true) to the DataColumnCollection. 2番目の例DataSetではDataTable 、、2つのオブジェクト、 DataRelation4 つの列、およびを作成します。The second example creates a DataSet, two DataTable objects, four columns, and a DataRelation. ForeignKeyConstraintに、 DataRelationDataSetオブジェクトのUniqueConstraint に追加されたときにとが作成されたことを示すために、制約の数が出力されます。DataRelationCollectionThe count of constraints is then printed to show that a ForeignKeyConstraint and a UniqueConstraint are created when a DataRelation is added to the DataSet object's DataRelationCollection.

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());
        }
    }
}
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

注釈

は、プロパティをDataTable.Constraints使用してアクセスします。 ConstraintCollectionThe ConstraintCollection is accessed through the DataTable.Constraints property.

には、のUniqueConstraintオブジェクトForeignKeyConstraintとオブジェクトのDataTable両方を含めることができます。ConstraintCollectionThe ConstraintCollection can contain both UniqueConstraint and ForeignKeyConstraint objects for the DataTable. オブジェクトUniqueConstraintを使用すると、データの整合性を維持するために、特定の列のデータを常に一意にすることができます。A UniqueConstraint object makes sure that data in a specific column is always unique to preserve the data integrity. は、DataTableのデータが更新または削除されるときに、関連テーブルでどのような処理が行われるかを決定します。ForeignKeyConstraintThe ForeignKeyConstraint determines what will occur in related tables when data in the DataTable is either updated or deleted. たとえば、行が削除ForeignKeyConstraintされると、関連する行も削除されるか (連鎖)、またはその他の何らかのアクションが実行されます。For example, if a row is deleted, the ForeignKeyConstraint will determine whether the related rows are also deleted (a cascade), or some other course of action.

注意

2つのテーブルDataRelation DataSet間のリレーションシップを作成するを追加すると、 ForeignKeyConstraintとのUniqueConstraint両方が自動的に作成されます。When you add a DataRelation that creates a relationship between two tables to a DataSet, both a ForeignKeyConstraint and a UniqueConstraint are created automatically. は、親DataTableの主キー列に適用され、そのテーブルのConstraintCollectionに制約が追加されます。 UniqueConstraintThe UniqueConstraint is applied to the primary key column in the parent DataTable, and the constraint is added to that table's ConstraintCollection. ForeignKeyConstraint 、主キー列と外部キー列に適用され、制約は子テーブルのConstraintCollectionに追加されます。The ForeignKeyConstraint is applied to the primary key column and the foreign key column, and the constraint is added to the child table's ConstraintCollection.

ConstraintCollection Addは、、 Clear、などの標準的なコレクションメソッドが使用されます。RemoveThe ConstraintCollection uses standard collection methods such as Add, Clear, and Remove. またContains 、メソッドを使用して、コレクション内に特定の制約が存在するかどうかを調べることもできます。In addition, the Contains method can be used to look for the existence of a particular constraint in the collection.

UniqueプロパティUniqueConstraintDataColumnDataTable設定されたがオブジェクトのDataColumnCollectionに追加されると、が作成されます。 trueA UniqueConstraint is created when a DataColumn with its Unique property set to true is added to a DataTable object's DataColumnCollection.

は、 DataRelationDataSetオブジェクトのに追加されるときに作成されます。DataRelationCollection ForeignKeyConstraintA ForeignKeyConstraint is created when a DataRelation is added to a DataSet object's DataRelationCollection.

プロパティ

Count Count Count Count

コレクション内の要素の合計数を取得します。Gets the total number of elements in a collection.

(Inherited from InternalDataCollectionBase)
IsReadOnly IsReadOnly IsReadOnly IsReadOnly

InternalDataCollectionBase が読み取り専用かどうかを示す値を取得します。Gets a value that indicates whether the InternalDataCollectionBase is read-only.

(Inherited from InternalDataCollectionBase)
IsSynchronized IsSynchronized IsSynchronized IsSynchronized

InternalDataCollectionBase が同期されているかどうかを示す値を取得します。Gets a value that indicates whether the InternalDataCollectionBase is synchronized.

(Inherited from InternalDataCollectionBase)
Item[Int32] Item[Int32] Item[Int32] Item[Int32]

指定したインデックス位置にある Constraint をコレクションから取得します。Gets the Constraint from the collection at the specified index.

Item[String] Item[String] Item[String] Item[String]

指定した名前の Constraint をコレクションから取得します。Gets the Constraint from the collection with the specified name.

List List List List

コレクションの項目をリストとして取得します。Gets the items of the collection as a list.

(Inherited from InternalDataCollectionBase)
SyncRoot SyncRoot SyncRoot SyncRoot

コレクションの同期をとるために使用できるオブジェクトを取得します。Gets an object that can be used to synchronize the collection.

(Inherited from InternalDataCollectionBase)

メソッド

Add(Constraint) Add(Constraint) Add(Constraint) Add(Constraint)

指定した Constraint オブジェクトをコレクションに追加します。Adds the specified Constraint object to the collection.

Add(String, DataColumn, Boolean) Add(String, DataColumn, Boolean) Add(String, DataColumn, Boolean) Add(String, DataColumn, Boolean)

指定した名前、UniqueConstraint、およびその列が主キーかどうかを示す値を使用して、新しい DataColumn を作成し、この制約をコレクションに追加します。Constructs a new UniqueConstraint with the specified name, DataColumn, and value that indicates whether the column is a primary key, and adds it to the collection.

Add(String, DataColumn, DataColumn) Add(String, DataColumn, DataColumn) Add(String, DataColumn, DataColumn) Add(String, DataColumn, DataColumn)

指定した名前、親列、および子列を使用して新しい ForeignKeyConstraint を作成し、この制約をコレクションに追加します。Constructs a new ForeignKeyConstraint with the specified name, parent column, and child column, and adds the constraint to the collection.

Add(String, DataColumn[], Boolean) Add(String, DataColumn[], Boolean) Add(String, DataColumn[], Boolean) Add(String, DataColumn[], Boolean)

指定した名前、UniqueConstraint オブジェクトの配列、およびその列が主キーかどうかを示す値を使用して新しい DataColumn を作成し、その制約をコレクションに追加します。Constructs a new UniqueConstraint with the specified name, array of DataColumn objects, and value that indicates whether the column is a primary key, and adds it to the collection.

Add(String, DataColumn[], DataColumn[]) Add(String, DataColumn[], DataColumn[]) Add(String, DataColumn[], DataColumn[]) Add(String, DataColumn[], DataColumn[])

指定した親列と子列の配列を使用して新しい ForeignKeyConstraint を作成し、この制約をコレクションに追加します。Constructs a new ForeignKeyConstraint, with the specified arrays of parent columns and child columns, and adds the constraint to the collection.

AddRange(Constraint[]) AddRange(Constraint[]) AddRange(Constraint[]) AddRange(Constraint[])

指定した ConstraintCollection 配列の要素をコレクションの末尾にコピーします。Copies the elements of the specified ConstraintCollection array to the end of the collection.

CanRemove(Constraint) CanRemove(Constraint) CanRemove(Constraint) CanRemove(Constraint)

Constraint を削除できるかどうかを示します。Indicates whether a Constraint can be removed.

Clear() Clear() Clear() Clear()

すべての Constraint オブジェクトのコレクションを削除します。Clears the collection of any Constraint objects.

Contains(String) Contains(String) Contains(String) Contains(String)

名前で指定した Constraint オブジェクトがコレクション内に存在するかどうかを示します。Indicates whether the Constraint object specified by name exists in the collection.

CopyTo(Array, Int32) CopyTo(Array, Int32) CopyTo(Array, Int32) CopyTo(Array, Int32)

現在の InternalDataCollectionBase のすべての要素を 1 次元の Array にコピーします。コピー操作は、指定した InternalDataCollectionBase インデックスから始まります。Copies all the elements of the current InternalDataCollectionBase to a one-dimensional Array, starting at the specified InternalDataCollectionBase index.

(Inherited from InternalDataCollectionBase)
CopyTo(Constraint[], Int32) CopyTo(Constraint[], Int32) CopyTo(Constraint[], Int32) CopyTo(Constraint[], Int32)

指定したインデックスをコピー開始位置として、1 次元の Array インスタンスにコレクション オブジェクトをコピーします。Copies the collection objects to a one-dimensional Array instance starting at the specified index.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetEnumerator() GetEnumerator() GetEnumerator() GetEnumerator()

コレクションの IEnumerator を取得します。Gets an IEnumerator for the collection.

(Inherited from InternalDataCollectionBase)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
IndexOf(Constraint) IndexOf(Constraint) IndexOf(Constraint) IndexOf(Constraint)

指定した Constraint のインデックスを取得します。Gets the index of the specified Constraint.

IndexOf(String) IndexOf(String) IndexOf(String) IndexOf(String)

名前で指定した Constraint のインデックスを取得します。Gets the index of the Constraint specified by name.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
Remove(Constraint) Remove(Constraint) Remove(Constraint) Remove(Constraint)

指定された Constraint をコレクションから削除します。Removes the specified Constraint from the collection.

Remove(String) Remove(String) Remove(String) Remove(String)

名前で指定した Constraint をコレクションから削除します。Removes the Constraint object specified by name from the collection.

RemoveAt(Int32) RemoveAt(Int32) RemoveAt(Int32) RemoveAt(Int32)

指定したインデックス位置にある Constraint オブジェクトをコレクションから削除します。Removes the Constraint object at the specified index from the collection.

ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)

イベント

CollectionChanged CollectionChanged CollectionChanged CollectionChanged

ConstraintCollection オブジェクトを追加または削除したことが原因で Constraint が変更されると、常に発生します。Occurs whenever the ConstraintCollection is changed because of Constraint objects being added or removed.

拡張メソッド

Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable)

IEnumerable の要素を、指定した型にキャストします。Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable)

指定された型に基づいて IEnumerable の要素をフィルター処理します。Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable)

クエリの並列化を有効にします。Enables parallelization of a query.

AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable)

IEnumerableIQueryable に変換します。Converts an IEnumerable to an IQueryable.

適用対象

スレッド セーフ

この型は、マルチスレッドの読み取り操作に対して安全です。This type is safe for multithreaded read operations. 書き込み操作はすべて同期する必要があります。You must synchronize any write operations.

こちらもご覧ください