다음을 통해 공유


ConstraintCollection 클래스

정의

DataTable에 대한 제약 조건 컬렉션을 나타냅니다.

public ref class ConstraintCollection sealed : System::Data::InternalDataCollectionBase
public ref class ConstraintCollection : System::Data::InternalDataCollectionBase
public sealed class ConstraintCollection : System.Data.InternalDataCollectionBase
[System.Serializable]
public class ConstraintCollection : System.Data.InternalDataCollectionBase
type ConstraintCollection = class
    inherit InternalDataCollectionBase
[<System.Serializable>]
type ConstraintCollection = class
    inherit InternalDataCollectionBase
Public NotInheritable Class ConstraintCollection
Inherits InternalDataCollectionBase
Public Class ConstraintCollection
Inherits InternalDataCollectionBase
상속
ConstraintCollection
특성

예제

첫 번째 예제에서는 을 DataTable만들고 속성 UniqueDataColumn 로 설정된 true를 에 DataColumnCollection추가합니다. 두 번째 예제에서는 , 두 개의 DataTable 개체, 4개의 열 및 를 DataRelation만듭니다DataSet. 그런 다음 제약 조건 수가 인쇄되어 개체의 DataRelationCollection에 가 추가될 때 DataRelationUniqueConstraint 가 생성됨을 DataSet 보여 ForeignKeyConstraint 줍니다.

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

설명

ConstraintCollection 은 속성을 통해 액세스됩니다DataTable.Constraints.

ConstraintCollection 에 대한 및 ForeignKeyConstraint 개체를 모두 UniqueConstraint 포함할 DataTable수 있습니다. 개체는 UniqueConstraint 데이터 무결성을 유지하기 위해 특정 열의 데이터가 항상 고유한지 확인합니다. 는 ForeignKeyConstraint 의 데이터가 DataTable 업데이트되거나 삭제될 때 관련 테이블에서 발생하는 일을 결정합니다. 예를 들어 행이 삭제 ForeignKeyConstraint 되면 는 관련 행도 삭제되는지(계단식) 또는 다른 작업 과정인지를 결정합니다.

참고

에 두 테이블 간의 관계를 만드는 을 DataSet추가 DataRelation 하면 와 UniqueConstraintForeignKeyConstraint 자동으로 만들어집니다. 는 UniqueConstraint 부모 DataTable의 기본 키 열에 적용되고 제약 조건은 해당 테이블의 ConstraintCollection에 추가됩니다. 는 ForeignKeyConstraint 기본 키 열과 외래 키 열에 적용되고 제약 조건은 자식 테이블의 ConstraintCollection에 추가됩니다.

ConstraintCollection , Clear및 와 같은 Add표준 컬렉션 메서드를 Remove사용합니다. 또한 메서드를 Contains 사용하여 컬렉션에 특정 제약 조건이 있는지 확인할 수 있습니다.

UniqueConstraint 속성이 로 설정된 trueDataColumnUnique 개체의 DataColumnCollection에 추가되면 가 DataTable 만들어집니다.

ForeignKeyConstraint 개체의 DataRelationCollection에 가 DataRelation 추가되면 가 DataSet 만들어집니다.

속성

Count

컬렉션에 있는 요소의 총수를 가져옵니다.

(다음에서 상속됨 InternalDataCollectionBase)
IsReadOnly

InternalDataCollectionBase이 읽기 전용인지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 InternalDataCollectionBase)
IsSynchronized

InternalDataCollectionBase이 동기화되었는지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 InternalDataCollectionBase)
Item[Int32]

컬렉션에서 지정된 인덱스의 Constraint을 가져옵니다.

Item[String]

컬렉션에서 지정된 이름을 가진 Constraint을 가져옵니다.

List

컬렉션의 항목을 목록으로 가져옵니다.

List

컬렉션의 항목을 목록으로 가져옵니다.

(다음에서 상속됨 InternalDataCollectionBase)
SyncRoot

컬렉션을 동기화하는 데 사용할 수 있는 개체를 가져옵니다.

(다음에서 상속됨 InternalDataCollectionBase)

메서드

Add(Constraint)

지정된 Constraint 개체를 컬렉션에 추가합니다.

Add(String, DataColumn, Boolean)

지정된 이름, UniqueConstraint 및 해당 열이 기본 키인지 여부를 나타내는 값이 있는 새 DataColumn를 생성하여 컬렉션에 추가합니다.

Add(String, DataColumn, DataColumn)

지정된 이름, 부모 열 및 자식 열을 사용하여 새 ForeignKeyConstraint를 만들어 컬렉션에 추가합니다.

Add(String, DataColumn[], Boolean)

지정된 이름, UniqueConstraint 개체의 배열 및 열이 기본 키인지 여부를 나타내는 값이 있는 새 DataColumn를 생성하여 컬렉션에 추가합니다.

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

부모 열과 자식 열의 지정된 배열을 사용하여 새 ForeignKeyConstraint를 만들어 컬렉션에 추가합니다.

AddRange(Constraint[])

지정된 ConstraintCollection 배열의 요소를 컬렉션의 끝에 복사합니다.

CanRemove(Constraint)

Constraint를 제거할 수 있는지 나타냅니다.

Clear()

Constraint 개체의 컬렉션을 지웁니다.

Contains(String)

이름으로 지정된 Constraint개체가 컬렉션에 있는지 여부를 나타냅니다.

CopyTo(Array, Int32)

지정된 InternalDataCollectionBase 인덱스에서 시작하여 현재 Array의 모든 요소를 1차원 InternalDataCollectionBase에 복사합니다.

(다음에서 상속됨 InternalDataCollectionBase)
CopyTo(Constraint[], Int32)

지정한 인덱스에서 시작하는 1차원 Array 인스턴스에 컬렉션 개체를 복사합니다.

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
GetEnumerator()

컬렉션에 대한 IEnumerator를 가져옵니다.

(다음에서 상속됨 InternalDataCollectionBase)
GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
IndexOf(Constraint)

지정된 Constraint의 인덱스를 가져옵니다.

IndexOf(String)

이름으로 지정된 Constraint의 인덱스를 가져옵니다.

MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
OnCollectionChanged(CollectionChangeEventArgs)

CollectionChanged 이벤트를 발생시킵니다.

Remove(Constraint)

지정된 Constraint를 컬렉션에서 제거합니다.

Remove(String)

컬렉션에서 이름으로 지정된 Constraint 개체를 제거합니다.

RemoveAt(Int32)

컬렉션의 지정한 인덱스에서 Constraint 개체를 제거합니다.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

이벤트

CollectionChanged

ConstraintCollection 개체가 추가되거나 제거되어 Constraint이 변경될 때마다 발생합니다.

확장 메서드

Cast<TResult>(IEnumerable)

IEnumerable의 요소를 지정된 형식으로 캐스팅합니다.

OfType<TResult>(IEnumerable)

지정된 형식에 따라 IEnumerable의 요소를 필터링합니다.

AsParallel(IEnumerable)

쿼리를 병렬화할 수 있도록 합니다.

AsQueryable(IEnumerable)

IEnumerableIQueryable로 변환합니다.

적용 대상

스레드 보안

이 형식은 다중 스레드 읽기 작업에 안전합니다. 모든 쓰기 작업을 동기화해야 합니다.

추가 정보