ConstraintCollection ConstraintCollection ConstraintCollection ConstraintCollection Class

Definition

Stellt eine Auflistung von Einschränkungen für eine DataTable dar.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
Vererbung
Attribute

Beispiele

Im ersten Beispiel wird ein DataTableerstellt, und der DataColumn DataColumnCollectionwird ein ( Unique bei dem die true-Eigenschaft auf festgelegt ist) hinzugefügt.The first example creates a DataTable, and adds a DataColumn (with its Unique property set to true) to the DataColumnCollection. Im zweiten Beispiel werden ein DataSet, zwei DataTable -Objekte, vier Spalten und eine DataRelationerstellt.The second example creates a DataSet, two DataTable objects, four columns, and a DataRelation. Anschließend wird die Anzahl der Einschränkungen gedruckt, um anzuzeigen, ForeignKeyConstraint dass ein UniqueConstraint und ein erstellt werden DataRelation , wenn ein dem DataSet -Objekt DataRelationCollectiondes-Objekts hinzugefügt wird.The 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

Hinweise

Der ConstraintCollection Zugriff auf die erfolgt DataTable.Constraints über die-Eigenschaft.The ConstraintCollection is accessed through the DataTable.Constraints property.

Der ConstraintCollection kann sowohl UniqueConstraint -als ForeignKeyConstraint auch-Objekte DataTablefür den enthalten.The ConstraintCollection can contain both UniqueConstraint and ForeignKeyConstraint objects for the DataTable. Ein UniqueConstraint -Objekt stellt sicher, dass Daten in einer bestimmten Spalte immer eindeutig sind, um die Datenintegrität beizubehalten.A UniqueConstraint object makes sure that data in a specific column is always unique to preserve the data integrity. Bestimmt, was in verknüpften Tabellen geschieht, wenn die Daten DataTable in der aktualisiert oder gelöscht werden. ForeignKeyConstraintThe ForeignKeyConstraint determines what will occur in related tables when data in the DataTable is either updated or deleted. Wenn z. b. eine Zeile gelöscht wird, ForeignKeyConstraint bestimmt, ob die verknüpften Zeilen auch gelöscht werden (Kaskadieren) oder eine andere Vorgehensweise.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.

Hinweis

Wenn Sie DataRelation eine hinzufügen, die eine Beziehung zwischen zwei Tabellen zu DataSeteinem erstellt, ForeignKeyConstraint werden sowohl UniqueConstraint ein als auch ein automatisch erstellt.When you add a DataRelation that creates a relationship between two tables to a DataSet, both a ForeignKeyConstraint and a UniqueConstraint are created automatically. Wird auf die Primärschlüssel Spalte im übergeordneten DataTableElement angewendet, und die Einschränkung wird der der Tabelle ConstraintCollectionhinzugefügt. UniqueConstraintThe UniqueConstraint is applied to the primary key column in the parent DataTable, and the constraint is added to that table's ConstraintCollection. Wird auf die Primärschlüssel Spalte und die Fremdschlüssel Spalte angewendet, und die Einschränkung wird der untergeordneten ConstraintCollectionTabelle hinzugefügt. ForeignKeyConstraintThe ForeignKeyConstraint is applied to the primary key column and the foreign key column, and the constraint is added to the child table's ConstraintCollection.

Verwendet Standard Auflistungs Methoden Add, z Clear. b., und Remove. ConstraintCollectionThe ConstraintCollection uses standard collection methods such as Add, Clear, and Remove. Außerdem kann die Contains -Methode verwendet werden, um nach dem vorhanden sein einer bestimmten Einschränkung in der Auflistung zu suchen.In addition, the Contains method can be used to look for the existence of a particular constraint in the collection.

Eine UniqueConstraint wird erstellt, wenn DataColumn ein- Unique true Objekt,DataTable dessen-Eigenschaft auf festgelegt ist, dem hinzugefügt wird. DataColumnCollectionA UniqueConstraint is created when a DataColumn with its Unique property set to true is added to a DataTable object's DataColumnCollection.

Eine ForeignKeyConstraint wird erstellt, DataRelation DataRelationCollectionwenn ein dem- Objekteines-Objektshinzugefügtwird.DataSetA ForeignKeyConstraint is created when a DataRelation is added to a DataSet object's DataRelationCollection.

Eigenschaften

Count Count Count Count

Ruft die Gesamtzahl der Elemente in einer Auflistung ab.Gets the total number of elements in a collection.

(Inherited from InternalDataCollectionBase)
IsReadOnly IsReadOnly IsReadOnly IsReadOnly

Ruft einen Wert ab, der angibt, ob die InternalDataCollectionBase schreibgeschützt ist.Gets a value that indicates whether the InternalDataCollectionBase is read-only.

(Inherited from InternalDataCollectionBase)
IsSynchronized IsSynchronized IsSynchronized IsSynchronized

Ruft einen Wert ab, der angibt, ob die InternalDataCollectionBase synchronisiert ist.Gets a value that indicates whether the InternalDataCollectionBase is synchronized.

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

Ruft die Constraint am angegebenen Index aus der Auflistung ab.Gets the Constraint from the collection at the specified index.

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

Ruft die Constraint mit dem angegebenen Namen aus der Auflistung ab.Gets the Constraint from the collection with the specified name.

List List List List

Ruft die Elemente der Auflistung als Liste ab.Gets the items of the collection as a list.

(Inherited from InternalDataCollectionBase)
SyncRoot SyncRoot SyncRoot SyncRoot

Ruft ein Objekt ab, mit dem die Auflistung synchronisiert werden kann.Gets an object that can be used to synchronize the collection.

(Inherited from InternalDataCollectionBase)

Methoden

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

Fügt der Auflistung das angegebene Constraint-Objekt hinzu.Adds the specified Constraint object to the collection.

Add(String, DataColumn, Boolean) Add(String, DataColumn, Boolean) Add(String, DataColumn, Boolean) 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.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)

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.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)

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.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[])

Erstellt eine neue ForeignKeyConstraint mit den angegebenen Arrays von übergeordneten und untergeordneten Spalten und fügt die Einschränkung der Auflistung hinzu.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[])

Kopiert die Elemente des angegebenen ConstraintCollection-Arrays an das Ende der Auflistung.Copies the elements of the specified ConstraintCollection array to the end of the collection.

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

Gibt an, ob eine Constraint entfernt werden kann.Indicates whether a Constraint can be removed.

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

Löscht sämtliche Constraint-Objekte aus der Auflistung.Clears the collection of any Constraint objects.

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

Gibt an, ob das mit Namen angegebene Constraint-Objekt in der Auflistung vorhanden ist.Indicates whether the Constraint object specified by name exists in the collection.

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

Kopiert alle Elemente der aktuellen InternalDataCollectionBase in ein eindimensionales Array, beginnend am angegebenen InternalDataCollectionBase-Index.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)

Kopiert die Auflistungsobjekte in eine eindimensionale Array-Instanz, beginnend am angegebenen Index.Copies the collection objects to a one-dimensional Array instance starting at the specified index.

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

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

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

Ruft einen IEnumerator für die Auflistung ab.Gets an IEnumerator for the collection.

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

Fungiert als Standardhashfunktion.Serves as the default hash function.

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

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

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

Ruft den Index der angegebenen Constraint ab.Gets the index of the specified Constraint.

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

Ruft den Index der mit Namen angegebenen Constraint ab.Gets the index of the Constraint specified by name.

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

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

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

Entfernt den angegebenen Constraint aus der Auflistung.Removes the specified Constraint from the collection.

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

Entfernt das mit Namen angegebene Constraint-Objekt aus der Auflistung.Removes the Constraint object specified by name from the collection.

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

Entfernt das Constraint-Objekt am angegebenen Index aus der Auflistung.Removes the Constraint object at the specified index from the collection.

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

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Inherited from Object)

Ereignisse

CollectionChanged CollectionChanged CollectionChanged CollectionChanged

Tritt immer dann ein, wenn die ConstraintCollection aufgrund des Hinzufügens oder Entfernens von Constraint-Objekten geändert wurde.Occurs whenever the ConstraintCollection is changed because of Constraint objects being added or removed.

Erweiterungsmethoden

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

Wandelt die Elemente eines IEnumerable in den angegebenen Typ umCasts the elements of an IEnumerable to the specified type.

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

Filtert die Elemente eines IEnumerable anhand eines angegebenen TypsFilters the elements of an IEnumerable based on a specified type.

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

Ermöglicht die Parallelisierung einer Abfrage.Enables parallelization of a query.

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

Konvertiert einen IEnumerable in einen IQueryable.Converts an IEnumerable to an IQueryable.

Gilt für:

Threadsicherheit

Dieser Typ ist für multithreadlesevorgänge sicher.This type is safe for multithreaded read operations. Sie müssen alle Schreibvorgänge synchronisieren.You must synchronize any write operations.

Siehe auch