ConstraintCollection Klasse

Definition

Stellt eine Auflistung von Einschränkungen für eine DataTable dar.

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
Vererbung
ConstraintCollection
Attribute

Beispiele

Im ersten Beispiel wird ein DataTableerstellt, und fügt ein DataColumn (mit festgelegter Unique Eigenschaft) truedem hinzu DataColumnCollection. Im zweiten Beispiel werden ein DataSet, zwei DataTable -Objekte, vier Spalten und ein DataRelationerstellt. Die Anzahl der Einschränkungen wird dann gedruckt, um zu zeigen, dass ein ForeignKeyConstraint und ein UniqueConstraint erstellt werden, wenn dem DataSet -Objekt DataRelationCollectionein DataRelation hinzugefügt wird.

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

Hinweise

Auf die ConstraintCollection wird über die DataTable.Constraints -Eigenschaft zugegriffen.

Die ConstraintCollection kann sowohl als ForeignKeyConstraint auch UniqueConstraint -Objekte für enthaltenDataTable. Ein UniqueConstraint -Objekt stellt sicher, dass Daten in einer bestimmten Spalte immer eindeutig sind, um die Datenintegrität zu erhalten. Bestimmt ForeignKeyConstraint , was in verwandten Tabellen geschieht, wenn Daten in der DataTable entweder aktualisiert oder gelöscht werden. Wenn beispielsweise eine Zeile gelöscht wird, bestimmt der ForeignKeyConstraint , ob die zugehörigen Zeilen auch gelöscht werden (eine Kaskade) oder eine andere Vorgehensweise.

Hinweis

Wenn Sie ein DataRelation hinzufügen, das eine Beziehung zwischen zwei Tabellen zu einem DataSeterstellt, werden sowohl ein ForeignKeyConstraint als auch ein UniqueConstraint automatisch erstellt. Wird UniqueConstraint auf die Primärschlüsselspalte im übergeordneten DataTableElement angewendet, und die Einschränkung wird der -Tabelle ConstraintCollectionhinzugefügt. Wird ForeignKeyConstraint auf die Primärschlüsselspalte und die Fremdschlüsselspalte angewendet, und die Einschränkung wird der untergeordneten ConstraintCollectionTabelle hinzugefügt.

Verwendet ConstraintCollection Standardauflistungsmethoden wie Add, Clearund Remove. Darüber hinaus kann die Contains -Methode verwendet werden, um nach dem Vorhandensein einer bestimmten Einschränkung in der Auflistung zu suchen.

Ein UniqueConstraint wird erstellt, wenn eine DataColumn mit der Unique -Eigenschaft eines true -Objekts DataColumnCollectionauf hinzugefügt DataTable wird.

Ein ForeignKeyConstraint wird erstellt, wenn ein DataRelation dem DataSet -Objekt DataRelationCollectionhinzugefügt wird.

Eigenschaften

Count

Ruft die Gesamtzahl der Elemente in einer Auflistung ab.

(Geerbt von InternalDataCollectionBase)
IsReadOnly

Ruft einen Wert ab, der angibt, ob die InternalDataCollectionBase schreibgeschützt ist.

(Geerbt von InternalDataCollectionBase)
IsSynchronized

Ruft einen Wert ab, der angibt, ob die InternalDataCollectionBase synchronisiert ist.

(Geerbt von InternalDataCollectionBase)
Item[Int32]

Ruft die Constraint am angegebenen Index aus der Auflistung ab.

Item[String]

Ruft die Constraint mit dem angegebenen Namen aus der Auflistung ab.

List

Ruft die Elemente der Auflistung als Liste ab.

List

Ruft die Elemente der Auflistung als Liste ab.

(Geerbt von InternalDataCollectionBase)
SyncRoot

Ruft ein Objekt ab, mit dem die Auflistung synchronisiert werden kann.

(Geerbt von InternalDataCollectionBase)

Methoden

Add(Constraint)

Fügt der Auflistung das angegebene Constraint-Objekt hinzu.

Add(String, DataColumn, Boolean)

Erstellt eine neue UniqueConstraint mit dem angegebenen Namen der DataColumn sowie einem Wert, der angibt, ob die Spalte eine Primärschlüsselspalte ist, und fügt diese der Auflistung hinzu.

Add(String, DataColumn, DataColumn)

Erstellt eine neue ForeignKeyConstraint mit dem angegebenen Namen, der angegebenen übergeordneten Spalte sowie der angegebenen untergeordneten Spalte und fügt der Auflistung die Einschränkung hinzu.

Add(String, DataColumn[], Boolean)

Erstellt eine neue UniqueConstraint mit dem angegebenen Namen, einem Array von DataColumn-Objekten sowie einem Wert, der angibt, ob die Spalte eine Primärschlüsselspalte ist, und fügt diese der Auflistung hinzu.

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

Erstellt eine neue ForeignKeyConstraint mit den angegebenen Arrays von übergeordneten und untergeordneten Spalten und fügt die Einschränkung der Auflistung hinzu.

AddRange(Constraint[])

Kopiert die Elemente des angegebenen ConstraintCollection-Arrays an das Ende der Auflistung.

CanRemove(Constraint)

Gibt an, ob eine Constraint entfernt werden kann.

Clear()

Löscht sämtliche Constraint-Objekte aus der Auflistung.

Contains(String)

Gibt an, ob das mit Namen angegebene Constraint-Objekt in der Auflistung vorhanden ist.

CopyTo(Array, Int32)

Kopiert alle Elemente der aktuellen InternalDataCollectionBase in ein eindimensionales Array, beginnend am angegebenen InternalDataCollectionBase-Index.

(Geerbt von InternalDataCollectionBase)
CopyTo(Constraint[], Int32)

Kopiert die Auflistungsobjekte in eine eindimensionale Array-Instanz, beginnend am angegebenen Index.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetEnumerator()

Ruft einen IEnumerator für die Auflistung ab.

(Geerbt von InternalDataCollectionBase)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
IndexOf(Constraint)

Ruft den Index der angegebenen Constraint ab.

IndexOf(String)

Ruft den Index der mit Namen angegebenen Constraint ab.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
OnCollectionChanged(CollectionChangeEventArgs)

Löst das CollectionChanged-Ereignis aus.

Remove(Constraint)

Entfernt den angegebenen Constraint aus der Auflistung.

Remove(String)

Entfernt das mit Namen angegebene Constraint-Objekt aus der Auflistung.

RemoveAt(Int32)

Entfernt das Constraint-Objekt am angegebenen Index aus der Sammlung.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Ereignisse

CollectionChanged

Tritt immer dann ein, wenn die ConstraintCollection aufgrund des Hinzufügens oder Entfernens von Constraint-Objekten geändert wurde.

Erweiterungsmethoden

Cast<TResult>(IEnumerable)

Wandelt die Elemente eines IEnumerable in den angegebenen Typ um

OfType<TResult>(IEnumerable)

Filtert die Elemente eines IEnumerable anhand eines angegebenen Typs

AsParallel(IEnumerable)

Ermöglicht die Parallelisierung einer Abfrage.

AsQueryable(IEnumerable)

Konvertiert einen IEnumerable in einen IQueryable.

Gilt für:

Threadsicherheit

Dieser Typ ist für Multithread-Lesevorgänge sicher. Sie müssen alle Schreibvorgänge synchronisieren.

Weitere Informationen