Ajout d'un DataTable à un DataSet (ADO.NET)
Mise à jour : November 2007
ADO.NET vous permet de créer des objets DataTable et de les ajouter à un objet DataSet existant. Vous pouvez définir des informations de contrainte pour un objet DataTable en utilisant les propriétés PrimaryKey et Unique.
Exemple
L'exemple suivant construit un objet DataSet, ajoute un nouvel objet DataTable à l'objet DataSet, puis ajoute trois objets DataColumn à la table. Enfin, ce code définit une colonne en tant que colonne clé primaire.
Dim customerOrders As DataSet = New DataSet("CustomerOrders")
Dim ordersTable As DataTable = customerOrders.Tables.Add("Orders")
Dim pkOrderID As DataColumn = ordersTable.Columns.Add( _
"OrderID", Type.GetType("System.Int32"))
ordersTable.Columns.Add("OrderQuantity", Type.GetType("System.Int32"))
ordersTable.Columns.Add("CompanyName", Type.GetType("System.String"))
ordersTable.PrimaryKey = New DataColumn() {pkOrderID}
DataSet customerOrders = new DataSet("CustomerOrders");
DataTable ordersTable = customerOrders.Tables.Add("Orders");
DataColumn pkOrderID =
ordersTable.Columns.Add("OrderID", typeof(Int32));
ordersTable.Columns.Add("OrderQuantity", typeof(Int32));
ordersTable.Columns.Add("CompanyName", typeof(string));
ordersTable.PrimaryKey = new DataColumn[] { pkOrderID };
Respect de la casse
Un objet DataSet peut contenir plusieurs tables ou relations dont les noms ne diffèrent que par la casse. Dans ces cas, les références par nom aux tables et relations respectent la casse. Par exemple, si l'objet DataSetdataSet contient les tables Table1 et table1, vous devez référencer Table1 par nom comme dataSet.Tables["Table1"] et table1 comme dataSet.Tables ["table1"]. Si vous tentez de référencer l'une des tables comme dataSet.Tables["TABLE1"], une exception sera levée.
Le comportement de respect de la casse ne s'applique pas s'il n'existe qu'une seule table ou relation ayant un nom particulier. Par exemple, si l'objet DataSet ne comprend que Table1, vous pouvez le référencer comme dataSet.Tables["TABLE1"].
Remarque : |
---|
La propriété CaseSensitive de l'objet DataSet n'affecte pas ce comportement. La propriété CaseSensitive s'applique aux données de l'objet DataSet et affecte les contraintes de tri, de recherche, de filtrage, d'application, etc. |
Prise en charge des espaces de noms
Dans les versions d'ADO.NET antérieures à 2.0, deux tables ne pouvaient pas porter le même nom, même si elles se trouvaient dans des espaces de noms différents. Cette limite a été supprimée dans ADO.NET 2.0. Un objet DataSet peut contenir deux tables avec la même valeur de propriété TableName mais des valeurs de propriété Namespace différentes.