Udostępnij za pośrednictwem


ConstraintCollection Klasa

Definicja

Reprezentuje kolekcję ograniczeń dla elementu 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
Dziedziczenie
ConstraintCollection
Atrybuty

Przykłady

Pierwszy przykład tworzy obiekt DataTablei dodaje element DataColumn (z właściwością Unique ustawioną na truewartość ) do obiektu DataColumnCollection. Drugi przykład tworzy DataSetobiekt , dwa DataTable obiekty, cztery kolumny i DataRelation. Liczba ograniczeń jest następnie drukowana, aby pokazać, że obiekt ForeignKeyConstraint i UniqueConstraint a są tworzone po DataRelation dodaniu obiektu do DataSet obiektu 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

Uwagi

Dostęp ConstraintCollection do obiektu DataTable.Constraints jest uzyskiwany za pośrednictwem właściwości .

Obiekt ConstraintCollection może zawierać obiekty UniqueConstraint i ForeignKeyConstraint dla obiektu DataTable. Obiekt UniqueConstraint zapewnia, że dane w określonej kolumnie są zawsze unikatowe, aby zachować integralność danych. Określa ForeignKeyConstraint , co będzie występować w powiązanych tabelach, gdy dane w obiekcie DataTable zostaną zaktualizowane lub usunięte. Jeśli na przykład wiersz zostanie usunięty, określi, ForeignKeyConstraint czy powiązane wiersze również zostaną usunięte (kaskada), czy jakiś inny przebieg akcji.

Uwaga

Po dodaniu elementu tworzącego DataRelation relację między dwiema tabelami do DataSetelementu , zarówno a, jak ForeignKeyConstraint i , UniqueConstraint są tworzone automatycznie. Element UniqueConstraint jest stosowany do kolumny klucza podstawowego w obiekcie nadrzędnym DataTable, a ograniczenie jest dodawane do tabeli ConstraintCollection. Element ForeignKeyConstraint jest stosowany do kolumny klucza podstawowego i kolumny klucza obcego, a ograniczenie jest dodawane do tabeli podrzędnej ConstraintCollection.

Metoda ConstraintCollection używa standardowych metod kolekcji, takich jak Add, Cleari Remove. Ponadto Contains metoda może służyć do wyszukiwania istnienia określonego ograniczenia w kolekcji.

Obiekt UniqueConstraint jest tworzony, gdy obiekt DataColumn z jej Unique właściwością ustawioną DataTable na true jest dodawany do obiektu DataColumnCollection.

Obiekt ForeignKeyConstraint jest tworzony po dodaniu obiektu DataRelation do DataSet obiektu DataRelationCollection.

Właściwości

Count

Pobiera całkowitą liczbę elementów w kolekcji.

(Odziedziczone po InternalDataCollectionBase)
IsReadOnly

Pobiera wartość wskazującą, czy InternalDataCollectionBase element jest tylko do odczytu.

(Odziedziczone po InternalDataCollectionBase)
IsSynchronized

Pobiera wartość wskazującą, czy InternalDataCollectionBase element jest zsynchronizowany.

(Odziedziczone po InternalDataCollectionBase)
Item[Int32]

Pobiera element Constraint z kolekcji w określonym indeksie.

Item[String]

Pobiera element Constraint z kolekcji o określonej nazwie.

List

Pobiera elementy kolekcji jako listę.

List

Pobiera elementy kolekcji jako listę.

(Odziedziczone po InternalDataCollectionBase)
SyncRoot

Pobiera obiekt, który może służyć do synchronizowania kolekcji.

(Odziedziczone po InternalDataCollectionBase)

Metody

Add(Constraint)

Dodaje określony Constraint obiekt do kolekcji.

Add(String, DataColumn, Boolean)

Tworzy nową UniqueConstraint o określonej nazwie, i wartości, która wskazuje, DataColumnczy kolumna jest kluczem podstawowym, i dodaje ją do kolekcji.

Add(String, DataColumn, DataColumn)

Tworzy nową ForeignKeyConstraint z określoną nazwą, kolumną nadrzędną i kolumną podrzędną oraz dodaje ograniczenie do kolekcji.

Add(String, DataColumn[], Boolean)

Tworzy nową UniqueConstraint z określoną nazwą, tablicą DataColumn obiektów i wartością wskazującą, czy kolumna jest kluczem podstawowym, i dodaje ją do kolekcji.

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

Tworzy nowy ForeignKeyConstraintelement z określonymi tablicami kolumn nadrzędnych i kolumn podrzędnych oraz dodaje ograniczenie do kolekcji.

AddRange(Constraint[])

Kopiuje elementy określonej ConstraintCollection tablicy na końcu kolekcji.

CanRemove(Constraint)

Wskazuje, czy Constraint element można usunąć.

Clear()

Czyści kolekcję wszystkich Constraint obiektów.

Contains(String)

Wskazuje, Constraint czy obiekt określony przez nazwę istnieje w kolekcji.

CopyTo(Array, Int32)

Kopiuje wszystkie elementy bieżącego InternalDataCollectionBase do jednowymiarowego Array, zaczynając od określonego InternalDataCollectionBase indeksu.

(Odziedziczone po InternalDataCollectionBase)
CopyTo(Constraint[], Int32)

Kopiuje obiekty kolekcji do wystąpienia jednowymiarowego Array , zaczynając od określonego indeksu.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetEnumerator()

Pobiera element IEnumerator dla kolekcji.

(Odziedziczone po InternalDataCollectionBase)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
IndexOf(Constraint)

Pobiera indeks określonego Constraintelementu .

IndexOf(String)

Pobiera indeks określonego Constraint przez nazwę.

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
OnCollectionChanged(CollectionChangeEventArgs)

CollectionChanged Zgłasza zdarzenie.

Remove(Constraint)

Usuwa określony Constraint element z kolekcji.

Remove(String)

Constraint Usuwa obiekt określony przez nazwę z kolekcji.

RemoveAt(Int32)

Constraint Usuwa obiekt w określonym indeksie z kolekcji.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Zdarzenia

CollectionChanged

Występuje za każdym razem, gdy obiekt ConstraintCollection jest zmieniany z powodu dodawania Constraint lub usuwania obiektów.

Metody rozszerzania

Cast<TResult>(IEnumerable)

Rzutuje elementy obiektu IEnumerable na określony typ.

OfType<TResult>(IEnumerable)

Filtruje elementy IEnumerable elementu na podstawie określonego typu.

AsParallel(IEnumerable)

Umożliwia równoległość zapytania.

AsQueryable(IEnumerable)

Konwertuje element IEnumerable na .IQueryable

Dotyczy

Bezpieczeństwo wątkowe

Ten typ jest bezpieczny dla operacji odczytu wielowątkowego. Należy zsynchronizować wszystkie operacje zapisu.

Zobacz też