ConstraintCollection Clase

Definición

Representa una colección de restricciones para una tabla DataTable.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
Herencia
ConstraintCollection
Atributos

Ejemplos

En el primer ejemplo se DataTablecrea un y se DataColumn agrega (con Unique su propiedad establecida trueen) a DataColumnCollection.The first example creates a DataTable, and adds a DataColumn (with its Unique property set to true) to the DataColumnCollection. En el segundo ejemplo se DataSetcrea un DataTable , dos objetos, cuatro columnas y DataRelationun.The second example creates a DataSet, two DataTable objects, four columns, and a DataRelation. A continuación, se imprime el recuento de restricciones para mostrar que ForeignKeyConstraint se crean UniqueConstraint y cuando se agrega DataRelation un a la DataSet del DataRelationCollectionobjeto.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

Comentarios

Se obtiene acceso a a través DataTable.Constraints de la propiedad. ConstraintCollectionThe ConstraintCollection is accessed through the DataTable.Constraints property.

Puede contener objetos yForeignKeyConstraintpara .DataTable UniqueConstraint ConstraintCollectionThe ConstraintCollection can contain both UniqueConstraint and ForeignKeyConstraint objects for the DataTable. Un UniqueConstraint objeto garantiza que los datos de una columna específica siempre son únicos para conservar la integridad de los datos.A UniqueConstraint object makes sure that data in a specific column is always unique to preserve the data integrity. Determina lo que ocurrirá en las tablas relacionadas cuando los DataTable datos de se actualizan o eliminan. ForeignKeyConstraintThe ForeignKeyConstraint determines what will occur in related tables when data in the DataTable is either updated or deleted. Por ejemplo, si se elimina una fila, ForeignKeyConstraint determinará si las filas relacionadas también se eliminan (en cascada) o algún otro curso de acción.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.

Nota

Cuando se agrega un DataRelation que crea una relación entre dos tablas DataSeta, se crean automáticamente ForeignKeyConstraint un y UniqueConstraint un.When you add a DataRelation that creates a relationship between two tables to a DataSet, both a ForeignKeyConstraint and a UniqueConstraint are created automatically. Se aplica a la columna de clave principal en el elemento DataTableprimario y se agrega la restricción a la de ConstraintCollectionla tabla. UniqueConstraintThe UniqueConstraint is applied to the primary key column in the parent DataTable, and the constraint is added to that table's ConstraintCollection. El ForeignKeyConstraint se aplica a la columna de clave principal y a la columna de clave externa, y la restricción se agrega al de ConstraintCollectionla tabla secundaria.The ForeignKeyConstraint is applied to the primary key column and the foreign key column, and the constraint is added to the child table's ConstraintCollection.

Utiliza métodos de colección estándar Addcomo, Cleary Remove. ConstraintCollectionThe ConstraintCollection uses standard collection methods such as Add, Clear, and Remove. Además, el Contains método se puede utilizar para buscar la existencia de una restricción determinada en la colección.In addition, the Contains method can be used to look for the existence of a particular constraint in the collection.

true Unique SecreaDataColumn cuando se agrega con su propiedad DataTable establecidaenaunobjeto.DataColumnCollection UniqueConstraintA UniqueConstraint is created when a DataColumn with its Unique property set to true is added to a DataTable object's DataColumnCollection.

Se crea DataSet cuando se agrega a un objeto. DataRelationCollection DataRelation ForeignKeyConstraintA ForeignKeyConstraint is created when a DataRelation is added to a DataSet object's DataRelationCollection.

Propiedades

Count

Obtiene el número total de elementos de una colección.Gets the total number of elements in a collection.

(Heredado de InternalDataCollectionBase)
IsReadOnly

Obtiene un valor que indica si InternalDataCollectionBase es de solo lectura.Gets a value that indicates whether the InternalDataCollectionBase is read-only.

(Heredado de InternalDataCollectionBase)
IsSynchronized

Obtiene un valor que indica si el objeto InternalDataCollectionBase está sincronizado.Gets a value that indicates whether the InternalDataCollectionBase is synchronized.

(Heredado de InternalDataCollectionBase)
Item[Int32]

Obtiene el objeto Constraint de la colección en el índice especificado.Gets the Constraint from the collection at the specified index.

Item[String]

Obtiene el objeto Constraint de la colección con el nombre especificado.Gets the Constraint from the collection with the specified name.

List

Obtiene los elementos de una colección en forma de lista.Gets the items of the collection as a list.

(Heredado de InternalDataCollectionBase)
SyncRoot

Obtiene un objeto que se puede utilizar para sincronizar la colección.Gets an object that can be used to synchronize the collection.

(Heredado de InternalDataCollectionBase)

Métodos

Add(Constraint)

Agrega a la colección el objeto Constraint especificado.Adds the specified Constraint object to the collection.

Add(String, DataColumn, Boolean)

Construye una nueva restricción UniqueConstraint con el nombre especificado, el objeto DataColumn y un valor que indica si la columna es una clave principal, y la agrega a la colección.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)

Construye una nueva restricción ForeignKeyConstraint con el nombre, columna primaria y columna secundaria especificados, y agrega la restricción a la colección.Constructs a new ForeignKeyConstraint with the specified name, parent column, and child column, and adds the constraint to the collection.

Add(String, DataColumn[], Boolean)

Crea una nueva restricción UniqueConstraint con el nombre especificado, la matriz de objetos DataColumn y un valor que indica si la columna es una clave principal, y la agrega a la colección.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[])

Construye una nueva restricción ForeignKeyConstraint con las matrices de columnas primarias y secundarias especificadas y agrega la restricción a la colección.Constructs a new ForeignKeyConstraint, with the specified arrays of parent columns and child columns, and adds the constraint to the collection.

AddRange(Constraint[])

Copia los elementos de la matriz ConstraintCollection especificada al final de la colección.Copies the elements of the specified ConstraintCollection array to the end of the collection.

CanRemove(Constraint)

Indica si una restricción Constraint se puede quitar.Indicates whether a Constraint can be removed.

Clear()

Borra cualquier objeto Constraint de la colección.Clears the collection of any Constraint objects.

Contains(String)

Indica si existe en la colección el objeto Constraint especificado por nombre.Indicates whether the Constraint object specified by name exists in the collection.

CopyTo(Array, Int32)

Copia todos los elementos del InternalDataCollectionBase actual en un Array unidimensional, empezando por el índice del InternalDataCollectionBase especificado.Copies all the elements of the current InternalDataCollectionBase to a one-dimensional Array, starting at the specified InternalDataCollectionBase index.

(Heredado de InternalDataCollectionBase)
CopyTo(Constraint[], Int32)

Copia los objetos de la colección en una instancia de Array unidimensional, comenzando a partir del índice especificado.Copies the collection objects to a one-dimensional Array instance starting at the specified index.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
GetEnumerator()

Obtiene un IEnumerator para la colección.Gets an IEnumerator for the collection.

(Heredado de InternalDataCollectionBase)
GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
IndexOf(Constraint)

Obtiene el índice del objeto Constraint especificado.Gets the index of the specified Constraint.

IndexOf(String)

Obtiene el índice del objeto Constraint especificado por su nombre.Gets the index of the Constraint specified by name.

MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
Remove(Constraint)

Quita el objeto Constraint especificado de la colección.Removes the specified Constraint from the collection.

Remove(String)

Quita el objeto Constraint especificado por nombre de la colección.Removes the Constraint object specified by name from the collection.

RemoveAt(Int32)

Quita de la colección el objeto Constraint que está en el índice especificado.Removes the Constraint object at the specified index from the collection.

ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Heredado de Object)

Eventos

CollectionChanged

Se produce siempre que cambia la colección ConstraintCollection porque se están agregando o quitando objetos Constraint.Occurs whenever the ConstraintCollection is changed because of Constraint objects being added or removed.

Métodos de extensión

Cast<TResult>(IEnumerable)

Convierte los elementos de IEnumerable en el tipo especificado.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filtra los elementos de IEnumerable en función de un tipo especificado.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Habilita la paralelización de una consulta.Enables parallelization of a query.

AsQueryable(IEnumerable)

Convierte una interfaz IEnumerable en IQueryable.Converts an IEnumerable to an IQueryable.

Se aplica a

Seguridad para subprocesos

Este tipo es seguro para las operaciones de lectura multiproceso.This type is safe for multithreaded read operations. Debe sincronizar cualquier operación de escritura.You must synchronize any write operations.

Consulte también: