Personas que lo han encontrado útil: 2 de 2 - Valorar este tema

ConstraintCollection (Clase)

Representa una colección de restricciones para una tabla DataTable.

Espacio de nombres: System.Data
Ensamblado: System.Data (en system.data.dll)

public sealed class ConstraintCollection : InternalDataCollectionBase
public final class ConstraintCollection extends InternalDataCollectionBase
public final class ConstraintCollection extends InternalDataCollectionBase

El acceso a la colección ConstraintCollection se obtiene a través de la propiedad DataTable.Constraints.

ConstraintCollection puede contener objetos UniqueConstraint y ForeignKeyConstraint para la tabla DataTable. Un objeto UniqueConstraint garantiza que los datos de una columna específica son siempre únicos, para mantener la integridad de los datos. La clase ForeignKeyConstraint determina lo que va a suceder en las tablas relacionadas cuando se actualice o elimine el objeto DataTable. Por ejemplo, si una fila se elimina, ForeignKeyConstraint determinará si las filas relacionadas también se eliminan (una cascada) o cualquier otra acción.

NotaNota

Al agregar un objeto DataRelation, que crea una relación entre dos tablas, a un objeto DataSet, se crean automáticamente tanto un objeto ForeignKeyConstraint como un objeto UniqueConstraint. La restricción UniqueConstraint se aplica a la columna de clave principal de la tabla DataTable primaria y la restricción se agrega a la colección ConstraintCollection de esa tabla. La restricción ForeignKeyConstraint se aplica a las columnas de clave principal y de clave externa y la restricción se agrega a la colección ConstraintCollection de la tabla secundaria.

La colección ConstraintCollection utiliza métodos de colección estándar, como Add, Clear y Remove. Además, se puede utilizar el método Contains para comprobar la existencia de una restricción concreta en la colección.

Cuando se agrega un objeto DataColumn con la propiedad Unique establecida en true a la colección DataColumnCollection de un objeto DataTable, se crea una restricción UniqueConstraint.

Cuando se agrega una relación DataRelation a la colección DataRelationCollection de un objeto DataSet, se crea una restricción ForeignKeyConstraint.

En el primer ejemplo, se crea una tabla DataTable y se agrega una columna DataColumn (con la propiedad Unique establecida en true) a la colección DataColumnCollection. En el segundo ejemplo, se crea un DataSet, dos objetos DataTable, cuatro columnas y una relación DataRelation. A continuación, se imprime el recuento de restricciones para mostrar que se han creado una restricción ForeignKeyConstraint y una restricción UniqueConstraint al agregar una relación DataRelation al DataRelationCollection del objeto DataSet.

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());
        }
    }
}

Este tipo es seguro para operaciones de lectura multiproceso. Debe sincronizar cualquier operación de escritura.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition

.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.

.NET Framework

Compatible con: 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 2.0, 1.0
¿Le ha resultado útil?
(Caracteres restantes: 1500)
Contenido de la comunidad Agregar