ConstraintCollection Clase

Definición

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

Ejemplos

En el primer ejemplo se crea un DataTabley se agrega un DataColumn objeto (con su Unique propiedad establecida en true) a .DataColumnCollection En el segundo ejemplo se crea un DataSetobjeto , dos DataTable objetos, cuatro columnas y .DataRelation A continuación, se imprime el recuento de restricciones para mostrar que ForeignKeyConstraint y se UniqueConstraint crean cuando se agrega un DataRelation objeto al DataSet objeto .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

ConstraintCollection Se accede a a través de la DataTable.Constraints propiedad .

ConstraintCollection puede contener objetos UniqueConstraint y ForeignKeyConstraint para .DataTable Un UniqueConstraint objeto garantiza que los datos de una columna específica siempre son únicos para conservar la integridad de los datos. ForeignKeyConstraint determina lo que se producirá en las tablas relacionadas cuando los datos de DataTable se actualicen o eliminen. Por ejemplo, si se elimina una fila, determinará ForeignKeyConstraint si las filas relacionadas también se eliminan (una cascada) o algún otro curso de acción.

Nota

Cuando se agrega un DataRelation objeto que crea una relación entre dos tablas a , DataSetse crean automáticamente ForeignKeyConstraint y .UniqueConstraint UniqueConstraint se aplica a la columna de clave principal en el elemento primario DataTabley la restricción se agrega a la ConstraintCollectiontabla . ForeignKeyConstraint se aplica a la columna de clave principal y a la columna de clave externa, y la restricción se agrega a la tabla ConstraintCollectionsecundaria.

ConstraintCollection usa métodos de colección estándar como Add, Cleary Remove. Además, el Contains método se puede usar para buscar la existencia de una restricción determinada en la colección.

UniqueConstraint Se crea cuando DataColumn un objeto con su Unique propiedad establecida true en se agrega a la colección de DataColumnCollectionun DataTable objeto .

ForeignKeyConstraint Se crea cuando se agrega un DataRelation objeto a la colección de DataRelationCollectionun DataSet objeto .

Propiedades

Count

Obtiene el número total de elementos de una colección.

(Heredado de InternalDataCollectionBase)
IsReadOnly

Obtiene un valor que indica si InternalDataCollectionBase es de solo lectura.

(Heredado de InternalDataCollectionBase)
IsSynchronized

Obtiene un valor que indica si el objeto InternalDataCollectionBase está sincronizado.

(Heredado de InternalDataCollectionBase)
Item[Int32]

Obtiene el objeto Constraint de la colección en el índice especificado.

Item[String]

Obtiene el objeto Constraint de la colección con el nombre especificado.

List

Obtiene los elementos de una colección en forma de lista.

List

Obtiene los elementos de una colección en forma de lista.

(Heredado de InternalDataCollectionBase)
SyncRoot

Obtiene un objeto que se puede utilizar para sincronizar la colección.

(Heredado de InternalDataCollectionBase)

Métodos

Add(Constraint)

Agrega a la colección el objeto Constraint especificado.

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.

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.

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.

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.

AddRange(Constraint[])

Copia los elementos de la matriz ConstraintCollection especificada al final de la colección.

CanRemove(Constraint)

Indica si una restricción Constraint se puede quitar.

Clear()

Borra cualquier objeto Constraint de la colección.

Contains(String)

Indica si existe en la colección el objeto Constraint especificado por nombre.

CopyTo(Array, Int32)

Copia todos los elementos del InternalDataCollectionBase actual en un Array unidimensional, empezando por el índice del InternalDataCollectionBase especificado.

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

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetEnumerator()

Obtiene un IEnumerator para la colección.

(Heredado de InternalDataCollectionBase)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
IndexOf(Constraint)

Obtiene el índice del objeto Constraint especificado.

IndexOf(String)

Obtiene el índice del objeto Constraint especificado por su nombre.

MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
OnCollectionChanged(CollectionChangeEventArgs)

Genera el evento CollectionChanged.

Remove(Constraint)

Quita el objeto Constraint especificado de la colección.

Remove(String)

Quita el objeto Constraint especificado por nombre de la colección.

RemoveAt(Int32)

Quita el objeto Constraint del índice especificado de la colección.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Eventos

CollectionChanged

Se produce siempre que cambia la colección ConstraintCollection porque se están agregando o quitando objetos Constraint.

Métodos de extensión

Cast<TResult>(IEnumerable)

Convierte los elementos de IEnumerable en el tipo especificado.

OfType<TResult>(IEnumerable)

Filtra los elementos de IEnumerable en función de un tipo especificado.

AsParallel(IEnumerable)

Habilita la paralelización de una consulta.

AsQueryable(IEnumerable)

Convierte una interfaz IEnumerable en IQueryable.

Se aplica a

Seguridad para subprocesos

Este tipo es seguro para las operaciones de lectura multiproceso. Debe sincronizar las operaciones de escritura.

Consulte también