Share via


Ajout d'un DataTable à un DataSet

ADO.NET vous permet de créer des objets DataTable et de les ajouter à un DataSet existant. Vous pouvez définir des informations de contrainte pour un DataTable en utilisant les propriétés PrimaryKey et Unique d'objets DataColumn, qui sont ajoutés à la collection Columns du DataTable.

L'exemple suivant construit un DataSet, ajoute un nouvel objet DataTable au DataSet, puis ajoute trois objets DataColumn à la table. Enfin, ce code définit une colonne en tant que colonne clé primaire.

Dim custDS As DataSet = New DataSet("CustomerOrders")

Dim ordersTable As DataTable = custDS.Tables.Add("Orders")

Dim pkCol 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() {pkCol}
[C#]
DataSet custDS = new DataSet("CustomerOrders");

DataTable ordersTable = custDS.Tables.Add("Orders");

DataColumn pkCol = ordersTable.Columns.Add("OrderID", typeof(Int32));
ordersTable.Columns.Add("OrderQuantity", typeof(Int32));
ordersTable.Columns.Add("CompanyName", typeof(string));

ordersTable.PrimaryKey = new DataColumn[] {pkCol};

Respect de la casse

Les références par nom aux tables et relations d'un DataSet respectent la casse. Un DataSet peut contenir plusieurs tables ou relations dont les noms ne diffèrent que par la casse. Vous pouvez, par exemple, avoir Table1 et table1. Dans ce cas, une référence par nom à l'une des tables doit correspondre exactement à la casse du nom de la table. Sinon, une exception sera levée. Par exemple, si le DataSet monDS contient les tables Table1 et table1, vous devez référencer Table1 par nom comme monDS.Tables["Table1"] et table1 comme monDS.Tables ["table1"]. Si vous tentez de référencer l'une des tables comme monDS.Tables ["TABLE1"], une exception sera levée.

La règle de respect de la casse ne s'applique pas s'il n'existe qu'une seule table ou relation ayant un nom particulier. En d'autres termes, si aucun autre objet de table ou de relation du DataSet ne correspond au nom de cet objet de table ou de relation, ne serait-ce que par une différence de casse, vous pouvez référencer l'objet par nom sans respecter la casse sans qu'une exception ne soit levée. Par exemple, si le DataSet ne comprend que Table1, vous pouvez référencer cette table comme monDS.Tables["TABLE1"].

La propriété CaseSensitive du DataSet n'affecte pas ce comportement. La propriété CaseSensitive s'applique aux données du DataSet et affecte les contraintes de tri, de recherche, de filtrage, d'application, etc. Les références aux tables ou relations d'un DataSet ne sont pas affectées par la propriété CaseSensitive.

Voir aussi

Création et utilisation de DataSets | DataSet, classe | DataTable, classe