Assembly : System.Data (dans system.data.dll)
SyntaxePublic NotInheritable Class ConstraintCollection Inherits InternalDataCollectionBase
Dim instance As ConstraintCollection
public sealed class ConstraintCollection : InternalDataCollectionBase
public ref class ConstraintCollection sealed : public InternalDataCollectionBase
public final class ConstraintCollection extends InternalDataCollectionBase
public final class ConstraintCollection extends InternalDataCollectionBase
NotesConstraintCollection est accessible via la propriété DataTable.Constraints.
ConstraintCollection peut contenir à la fois des objets UniqueConstraint et ForeignKeyConstraint pour DataTable. Un objet UniqueConstraint garantit que les données d'une colonne spécifique sont toujours uniques afin de préserver leur intégrité. ForeignKeyConstraint détermine ce qui se passe dans les tables connexes lorsque les données de DataTable sont mises à jour ou supprimées. Par exemple, si une ligne est supprimée, ForeignKeyConstraint détermine si les lignes connexes sont également supprimées (en cascade), ou si une autre action est exécutée.
Remarque |
|---|
| Si vous ajoutez un DataRelation qui crée une relation entre deux tables à DataSet, cela crée automatiquement un ForeignKeyConstraint et un UniqueConstraint. UniqueConstraint est appliqué à la colonne de clé primaire du DataTable parent et la contrainte est ajoutée au ConstraintCollection de cette table. ForeignKeyConstraint est appliqué à la colonne de clé primaire ainsi qu'à la colonne clé étrangère, et la contrainte est ajoutée au ConstraintCollection de la table enfant. |
ConstraintCollection utilise des méthodes de collection standard, telles que Add, Clear et Remove. En outre, la méthode Contains peut être utilisée pour rechercher l'existence d'une contrainte particulière dans la collection.
UniqueConstraint est créé lorsque DataColumn, ayant la valeur true affectée à sa propriété Unique, est ajouté au DataColumnCollection d'un objet DataTable.
ForeignKeyConstraint est créé lorsque DataRelation est ajouté au DataRelationCollection d'un objet DataSet.
ExempleLe premier exemple crée DataTable et ajoute DataColumn (ayant la valeur true affectée à sa propriété Unique) à DataColumnCollection. Le deuxième exemple crée DataSet, deux objets DataTable, quatre colonnes et DataRelation. Le nombre de contraintes est ensuite affiché pour indiquer que ForeignKeyConstraint et UniqueConstraint sont créés lorsque DataRelation est ajouté au DataRelationCollection de l'objet DataSet.
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
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()); } } }
Sécurité des threadsCe type est sécurisé pour les opérations de lecture multithread. Vous devez synchroniser les opérations d'écriture.
Plates-formesWindows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition
Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.
Informations de version
Remarque
Outils (masquer)
S'enregistrer
Liste des Membres
Qui est en ligne?
FAQ