Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

ConstraintCollection Class

Represents a collection of constraints for a DataTable.

Namespace:  System.Data
Assembly:  System.Data (in System.Data.dll)
public sealed class ConstraintCollection : InternalDataCollectionBase

The ConstraintCollection type exposes the following members.

  NameDescription
Public propertySupported by the XNA FrameworkCountGets the total number of elements in a collection. (Inherited from InternalDataCollectionBase.)
Public propertySupported by the XNA FrameworkIsReadOnlyGets a value that indicates whether the InternalDataCollectionBase is read-only. (Inherited from InternalDataCollectionBase.)
Public propertySupported by the XNA FrameworkIsSynchronizedGets a value that indicates whether the InternalDataCollectionBase is synchonized. (Inherited from InternalDataCollectionBase.)
Public propertySupported by the XNA FrameworkItem[Int32]Gets the Constraint from the collection at the specified index.
Public propertySupported by the XNA FrameworkItem[String]Gets the Constraint from the collection with the specified name.
Protected propertySupported by the XNA FrameworkListGets the items of the collection as a list. (Inherited from InternalDataCollectionBase.)
Public propertySupported by the XNA FrameworkSyncRootGets an object that can be used to synchronize the collection. (Inherited from InternalDataCollectionBase.)
Top
  NameDescription
Public methodSupported by the XNA FrameworkAdd(Constraint)Adds the specified Constraint object to the collection.
Public methodSupported by the XNA FrameworkAdd(String, DataColumn, Boolean)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.
Public methodSupported by the XNA FrameworkAdd(String, DataColumn, DataColumn)Constructs a new ForeignKeyConstraint with the specified name, parent column, and child column, and adds the constraint to the collection.
Public methodSupported by the XNA FrameworkAdd(String, DataColumn[], Boolean)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.
Public methodSupported by the XNA FrameworkAdd(String, DataColumn[], DataColumn[])Constructs a new ForeignKeyConstraint, with the specified arrays of parent columns and child columns, and adds the constraint to the collection.
Public methodSupported by the XNA FrameworkAddRangeCopies the elements of the specified ConstraintCollection array to the end of the collection.
Public methodSupported by the XNA FrameworkCanRemoveIndicates whether a Constraint can be removed.
Public methodSupported by the XNA FrameworkClearClears the collection of any Constraint objects.
Public methodSupported by the XNA FrameworkContainsIndicates whether the Constraint object specified by name exists in the collection.
Public methodSupported by the XNA FrameworkCopyTo(Array, Int32)Copies all the elements of the current InternalDataCollectionBase to a one-dimensional Array, starting at the specified InternalDataCollectionBase index. (Inherited from InternalDataCollectionBase.)
Public methodSupported by the XNA FrameworkCopyTo(Constraint[], Int32)Copies the collection objects to a one-dimensional Array instance starting at the specified index.
Public methodSupported by the XNA FrameworkEquals(Object)Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected methodSupported by the XNA FrameworkFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodSupported by the XNA FrameworkGetEnumeratorGets an IEnumerator for the collection. (Inherited from InternalDataCollectionBase.)
Public methodSupported by the XNA FrameworkGetHashCodeServes as a hash function for a particular type. (Inherited from Object.)
Public methodSupported by the XNA FrameworkGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodSupported by the XNA FrameworkIndexOf(Constraint)Gets the index of the specified Constraint.
Public methodSupported by the XNA FrameworkIndexOf(String)Gets the index of the Constraint specified by name.
Protected methodSupported by the XNA FrameworkMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodSupported by the XNA FrameworkRemove(Constraint)Removes the specified Constraint from the collection.
Public methodSupported by the XNA FrameworkRemove(String)Removes the Constraint object specified by name from the collection.
Public methodSupported by the XNA FrameworkRemoveAtRemoves the Constraint object at the specified index from the collection.
Public methodSupported by the XNA FrameworkToStringReturns a string that represents the current object. (Inherited from Object.)
Top
  NameDescription
Public eventSupported by the XNA FrameworkCollectionChangedOccurs whenever the ConstraintCollection is changed because of Constraint objects being added or removed.
Top

The ConstraintCollection is accessed through the DataTable.Constraints property.

The ConstraintCollection can contain both UniqueConstraint and ForeignKeyConstraint objects for the DataTable. A UniqueConstraint object makes sure that data in a specific column is always unique to preserve the data integrity. The ForeignKeyConstraint determines what will occur in related tables when data in the DataTable is either updated or deleted. 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.

NoteNote

When you add a DataRelation that creates a relationship between two tables to a DataSet, both a ForeignKeyConstraint and a UniqueConstraint are created automatically. The UniqueConstraint is applied to the primary key column in the parent DataTable, and the constraint is added to that table's ConstraintCollection. 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.

The ConstraintCollection uses standard collection methods such as Add, Clear, and Remove. In addition, the Contains method can be used to look for the existence of a particular constraint in the collection.

A UniqueConstraint is created when a DataColumn with its Unique property set to true is added to a DataTable object's DataColumnCollection.

A ForeignKeyConstraint is created when a DataRelation is added to a DataSet object's DataRelationCollection.

The first example creates a DataTable, and adds a DataColumn (with its Unique property set to true) to the DataColumnCollection. The second example creates a DataSet, two DataTable objects, four columns, and a DataRelation. 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());
        }
    }
}


.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

This type is safe for multithreaded read operations. You must synchronize any write operations.

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft. All rights reserved.