Partager via


ConstraintCollection Classe

Définition

Représente une collection de contraintes pour 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 DataTableet ajoute un DataColumn (avec sa Unique propriété définie sur true) au 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 indiquer 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

Le ConstraintCollection est accessible via la DataTable.Constraints propriété .

le ConstraintCollection peut contenir à la fois des UniqueConstraint objets et ForeignKeyConstraint 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 DataTable sont mises à jour ou supprimées. Par exemple, si une ligne est supprimée, le ForeignKeyConstraint détermine si les lignes associées sont également supprimées (une cascade) ou un autre plan d’action.

Notes

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

utilise des ConstraintCollection 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.

Un UniqueConstraint est créé lorsqu’un DataColumn avec sa Unique propriété définie sur true est ajouté à l’objet d’un DataTableDataColumnCollectionobjet .

Un ForeignKeyConstraint est créé lorsqu’un DataRelation est ajouté à l’objet DataRelationCollectionDataSet .

Propriétés

Count

Obtient le nombre total d'éléments dans 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 l’objet InternalDataCollectionBase est synchronisé.

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

Obtient Constraint à partir de la collection, à l'index spécifié.

Item[String]

Obtient de la collection le Constraint portant le nom spécifié.

List

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

List

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

(Hérité de InternalDataCollectionBase)
SyncRoot

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

(Hérité de InternalDataCollectionBase)

Méthodes

Add(Constraint)

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

Add(String, DataColumn, Boolean)

Construit un nouveau UniqueConstraint portant le nom spécifié, DataColumn, ainsi qu'une 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, puis 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 s'il s'agit d'une colonne de clé primaire, et l'ajoute à la collection.

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

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

AddRange(Constraint[])

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

CanRemove(Constraint)

Indique si Constraint peut être supprimé.

Clear()

Efface de la collection tout objet 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 InternalDataCollectionBase en cours dans un Array unidimensionnel, en commençant à l'index InternalDataCollectionBase spécifié.

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

Copie les objets de collection dans une instance unidimensionnelle Array en 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 un IEnumerator de la collection.

(Hérité de InternalDataCollectionBase)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

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

Obtient l'index du Constraint spécifié.

IndexOf(String)

Obtient l'index du Constraint spécifié par son nom.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

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

Déclenche l’événement CollectionChanged.

Remove(Constraint)

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

Remove(String)

Supprime de la collection l'objet Constraint spécifié par son nom.

RemoveAt(Int32)

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

ToString()

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

(Hérité de Object)

Événements

CollectionChanged

Se produit chaque fois que ConstraintCollection est modifié en raison de l'ajout ou de la suppression d'objets Constraint.

Méthodes d’extension

Cast<TResult>(IEnumerable)

Effectue un cast des éléments d'un IEnumerable vers le type spécifié.

OfType<TResult>(IEnumerable)

Filtre les éléments d'un IEnumerable en fonction du type spécifié.

AsParallel(IEnumerable)

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

AsQueryable(IEnumerable)

Convertit un IEnumerable en IQueryable.

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