Ajout d'un nouveau DataTable à un DataSet
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.
DataSet customerOrders = new("CustomerOrders");
DataTable ordersTable = customerOrders.Tables.Add("Orders");
DataColumn pkOrderID =
ordersTable.Columns.Add("OrderID", typeof(int));
ordersTable.Columns.Add("OrderQuantity", typeof(int));
ordersTable.Columns.Add("CompanyName", typeof(string));
ordersTable.PrimaryKey = new DataColumn[] { pkOrderID };
Dim customerOrders As 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}
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 le dataSet DataSet contient les tables Table1 et table1, vous devez référencer Table1 par nom sous la forme dataSet.Tables["Table1"] et table1 sous la forme dataSet.Tables["table1"]. Si vous tentez de référencer l’une des tables sous la forme dataSet.Tables["TABLE1"], une exception est 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 la référencer sous la forme dataSet.Tables["TABLE1"].
Notes
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.