Sdílet prostřednictvím


ConstraintCollection Třída

Definice

Představuje kolekci omezení pro objekt 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
Dědičnost
ConstraintCollection
Atributy

Příklady

První příklad vytvoří DataTablea přidá (s jeho Unique vlastností nastavenou DataColumn na true) do DataColumnCollection. Druhý příklad vytvoří DataSetobjekt , dva DataTable objekty, čtyři sloupce a DataRelation. Počet omezení se pak vytiskne, aby bylo možné zobrazit, že ForeignKeyConstraint se při DataRelation přidání objektu do objektu DataSetDataRelationCollectionvytvoří a UniqueConstraint a .

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

Poznámky

K objektu ConstraintCollectionDataTable.Constraints se přistupuje prostřednictvím vlastnosti .

Objekt ConstraintCollection může obsahovat objekty i UniqueConstraintForeignKeyConstraint pro DataTable. Objekt UniqueConstraint zajišťuje, aby data v konkrétním sloupci byla vždy jedinečná, aby se zachovala integrita dat. Určuje ForeignKeyConstraint , co se stane v souvisejících tabulkách, když se data v souboru aktualizují DataTable nebo odstraní. Pokud je například odstraněn řádek, bude určovat, ForeignKeyConstraint zda jsou také odstraněny související řádky (kaskáda), nebo nějaký jiný postup.

Poznámka

Když do objektu DataRelation přidáte objekt , který vytvoří relaci mezi dvěma tabulkami DataSet, automaticky se vytvoří a ForeignKeyConstraintUniqueConstraint . Použije UniqueConstraint se na sloupec primárního klíče v nadřazené DataTablea omezení se přidá do tabulky ConstraintCollection. Použije ForeignKeyConstraint se na sloupec primárního klíče a sloupec cizího klíče a omezení se přidá do podřízené ConstraintCollectiontabulky .

Používá ConstraintCollection standardní metody shromažďování, jako Addjsou , Cleara Remove. Kromě toho lze metodu Contains použít k vyhledání existence konkrétního omezení v kolekci.

Objekt UniqueConstraint se vytvoří, když DataColumn se do objektu DataColumnCollectionpřidá vlastnost s Unique nastavenou DataTable na true .

Objekt ForeignKeyConstraint se vytvoří při DataRelation přidání objektu do objektu DataSetDataRelationCollection.

Vlastnosti

Count

Získá celkový počet prvků v kolekci.

(Zděděno od InternalDataCollectionBase)
IsReadOnly

Získá hodnotu, která označuje, zda InternalDataCollectionBase je jen pro čtení.

(Zděděno od InternalDataCollectionBase)
IsSynchronized

Získá hodnotu, která označuje, zda InternalDataCollectionBase je synchronizován.

(Zděděno od InternalDataCollectionBase)
Item[Int32]

Constraint Získá z kolekce v zadaném indexu.

Item[String]

Constraint Získá z kolekce se zadaným názvem.

List

Získá položky kolekce jako seznam.

List

Získá položky kolekce jako seznam.

(Zděděno od InternalDataCollectionBase)
SyncRoot

Získá objekt, který lze použít k synchronizaci kolekce.

(Zděděno od InternalDataCollectionBase)

Metody

Add(Constraint)

Přidá zadaný Constraint objekt do kolekce.

Add(String, DataColumn, Boolean)

Vytvoří nový UniqueConstraint se zadaným názvem a hodnotou, která označuje, DataColumnjestli je sloupec primárním klíčem, a přidá ho do kolekce.

Add(String, DataColumn, DataColumn)

Vytvoří nový ForeignKeyConstraint se zadaným názvem, nadřazeným sloupcem a podřízeným sloupcem a přidá omezení do kolekce.

Add(String, DataColumn[], Boolean)

Vytvoří nový UniqueConstraint se zadaným názvem, polem DataColumn objektů a hodnotou, která označuje, zda je sloupec primárním klíčem, a přidá ho do kolekce.

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

Vytvoří nový ForeignKeyConstraintobjekt se zadanými poli nadřazených a podřízených sloupců a přidá omezení do kolekce.

AddRange(Constraint[])

Zkopíruje prvky zadaného ConstraintCollection pole na konec kolekce.

CanRemove(Constraint)

Určuje, zda Constraint lze odebrat objekt .

Clear()

Vymaže kolekci všech Constraint objektů.

Contains(String)

Určuje, zda Constraint objekt určený názvem existuje v kolekci.

CopyTo(Array, Int32)

Zkopíruje všechny prvky aktuálního InternalDataCollectionBase do jednorozměrného Array, počínaje zadaným InternalDataCollectionBase indexem.

(Zděděno od InternalDataCollectionBase)
CopyTo(Constraint[], Int32)

Zkopíruje objekty kolekce do jednorozměrné Array instance začínající na zadaném indexu.

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetEnumerator()

Získá pro IEnumerator kolekci.

(Zděděno od InternalDataCollectionBase)
GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetType()

Type Získá z aktuální instance.

(Zděděno od Object)
IndexOf(Constraint)

Získá index zadaného Constraintobjektu .

IndexOf(String)

Získá index Constraint zadaného názvem.

MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
OnCollectionChanged(CollectionChangeEventArgs)

CollectionChanged Vyvolá událost.

Remove(Constraint)

Odebere zadaný Constraint objekt z kolekce.

Remove(String)

Odebere Constraint z kolekce objekt určený názvem.

RemoveAt(Int32)

Odebere Constraint objekt v zadaném indexu z kolekce.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Událost

CollectionChanged

Vyvolá se při každé ConstraintCollection změně z důvodu Constraint přidání nebo odebrání objektů.

Metody rozšíření

Cast<TResult>(IEnumerable)

Přetypuje prvky objektu na IEnumerable zadaný typ.

OfType<TResult>(IEnumerable)

Filtruje prvky objektu IEnumerable na základě zadaného typu.

AsParallel(IEnumerable)

Umožňuje paralelizaci dotazu.

AsQueryable(IEnumerable)

Převede objekt na IEnumerableIQueryable.

Platí pro

Bezpečný přístup z více vláken

Tento typ je bezpečný pro operace čtení ve více vláknech. Je nutné synchronizovat všechny operace zápisu.

Viz také