Partager via


ConstraintCollection Classe

Définition

Représente une collection de contraintes pour un 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
Héritage
ConstraintCollection
Attributs

Exemples

Le premier exemple crée un DataTable, et ajoute un DataColumn (avec sa Unique propriété définie sur true) à l’objet DataColumnCollection. Le deuxième exemple crée un DataSet, deux DataTable objets, quatre colonnes et un DataRelation. Le nombre de contraintes est ensuite imprimé pour montrer qu’un et un sont créés lorsqu’un DataRelation est ajouté à l’objet DataSetDataRelationCollection.UniqueConstraintForeignKeyConstraint

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

Remarques

L’accès ConstraintCollection est accessible via la DataTable.Constraints propriété.

Il ConstraintCollection peut contenir à la fois UniqueConstraint et ForeignKeyConstraint des objets pour le DataTable. Un UniqueConstraint objet garantit que les données d’une colonne spécifique sont toujours uniques pour préserver l’intégrité des données. Détermine ForeignKeyConstraint ce qui se produit dans les tables associées lorsque les données du fichier sont DataTable mises à jour ou supprimées. Par exemple, si une ligne est supprimée, elle ForeignKeyConstraint détermine si les lignes associées sont également supprimées (une cascade) ou un autre cours d’action.

Note

Lorsque vous ajoutez une DataRelation relation qui crée une relation entre deux tables à un DataSet, une ForeignKeyConstraint et une UniqueConstraint sont créées automatiquement. Il UniqueConstraint est appliqué à la colonne de clé primaire dans le parent DataTableet la contrainte est ajoutée à cette table ConstraintCollection. Il ForeignKeyConstraint est appliqué à la colonne de clé primaire et à la colonne de clé étrangère, et la contrainte est ajoutée à la table ConstraintCollectionenfant.

Utilise ConstraintCollection des méthodes de collection standard telles que Add, Clearet Remove. En outre, la Contains méthode peut être utilisée pour rechercher l’existence d’une contrainte particulière dans la collection.

A UniqueConstraint est créé lorsqu’une DataColumn propriété avec son Unique jeu true de propriétés est ajoutée à l’objet d’un DataTableDataColumnCollectionobjet .

A ForeignKeyConstraint est créé lorsqu’un DataRelation objet est ajouté à DataSet l’objet DataRelationCollection.

Propriétés

Nom Description
Count

Obtient le nombre total d’éléments d’une collection.

(Hérité de InternalDataCollectionBase)
IsReadOnly

Obtient une valeur qui indique si l’objet InternalDataCollectionBase est en lecture seule.

(Hérité de InternalDataCollectionBase)
IsSynchronized

Obtient une valeur qui indique si la InternalDataCollectionBase synchronisation est effectuée.

(Hérité de InternalDataCollectionBase)
Item[Int32]

Obtient la Constraint collection à l’index spécifié.

Item[String]

Obtient la Constraint collection avec le nom spécifié.

List

Obtient les éléments de la collection sous forme de liste.

List

Obtient les éléments de la collection sous forme de liste.

(Hérité de InternalDataCollectionBase)
SyncRoot

Obtient un objet qui peut être utilisé pour synchroniser la collection.

(Hérité de InternalDataCollectionBase)

Méthodes

Nom Description
Add(Constraint)

Ajoute l’objet spécifié Constraint à la collection.

Add(String, DataColumn, Boolean)

Construit un nouveau UniqueConstraint avec le nom spécifié, DataColumnet la valeur qui indique si la colonne est une clé primaire et l’ajoute à la collection.

Add(String, DataColumn, DataColumn)

Construit un nouveau ForeignKeyConstraint avec le nom, la colonne parente et la colonne enfant spécifiés et ajoute la contrainte à la collection.

Add(String, DataColumn[], Boolean)

Construit un nouveau UniqueConstraint avec le nom, le tableau d’objets DataColumn et la valeur spécifiés qui indique si la colonne est une clé primaire et l’ajoute à la collection.

Add(String, DataColumn[], DataColumn[])

Construit un nouveau ForeignKeyConstrainttableau, avec les tableaux spécifiés de colonnes parentes et de colonnes enfants, et ajoute la contrainte à la collection.

AddRange(Constraint[])

Copie les éléments du tableau spécifié ConstraintCollection à la fin de la collection.

CanRemove(Constraint)

Indique si une Constraint peut être supprimée.

Clear()

Efface la collection d’objets Constraint .

Contains(String)

Indique si l’objet Constraint spécifié par son nom existe dans la collection.

CopyTo(Array, Int32)

Copie tous les éléments du courant InternalDataCollectionBase dans un index unidimensionnel Array, en commençant à l’index spécifié InternalDataCollectionBase .

(Hérité de InternalDataCollectionBase)
CopyTo(Constraint[], Int32)

Copie les objets de collection dans une instance unidimensionnelle Array commençant à l’index spécifié.

Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
GetEnumerator()

Obtient une IEnumerator valeur pour la collection.

(Hérité de InternalDataCollectionBase)
GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
IndexOf(Constraint)

Obtient l’index du Constraint.

IndexOf(String)

Obtient l’index du Constraint nom spécifié.

MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
OnCollectionChanged(CollectionChangeEventArgs)

Déclenche l’événement CollectionChanged.

Remove(Constraint)

Supprime le spécifié Constraint de la collection.

Remove(String)

Supprime l’objet Constraint spécifié par le nom de la collection.

RemoveAt(Int32)

Supprime l’objet à l’index Constraint spécifié de la collection.

ToString()

Retourne une chaîne qui représente l’objet actuel.

(Hérité de Object)

Événements

Nom Description
CollectionChanged

Se produit chaque fois que l’objet ConstraintCollection est modifié en raison d’objets Constraint ajoutés ou supprimés.

Méthodes d’extension

Nom Description
AsParallel(IEnumerable)

Active la parallélisation d’une requête.

AsQueryable(IEnumerable)

Convertit un IEnumerable en IQueryable.

Cast<TResult>(IEnumerable)

Convertit les éléments d’un IEnumerable en type spécifié.

OfType<TResult>(IEnumerable)

Filtre les éléments d’une IEnumerable en fonction d’un type spécifié.

S’applique à

Cohérence de thread

Ce type est sécurisé pour les opérations de lecture multithread. Vous devez synchroniser toutes les opérations d’écriture.

Voir aussi