Partager via


Définition du schéma d'un DataTable

Le schéma, ou structure, d'une table est représenté par des colonnes et des contraintes. Vous définissez le schéma d'un DataTable à l'aide d'objets DataColumn, ainsi que d'objets ForeignKeyConstraint et UniqueConstraint. Les colonnes d'une table peuvent mapper aux colonnes d'une source de données. Elles contiennent des valeurs calculées à partir d'expressions, incrémentent automatiquement leurs valeurs ou contiennent des valeurs de clé primaire.

Respect de la casse

Les références par nom aux colonnes, relations et contraintes d'une table respectent la casse. Une table peut contenir plusieurs colonnes, relations ou contraintes dont les noms ne diffèrent que par la casse. Vous pouvez, par exemple, avoir Col1 et col1. Dans ce cas, une référence par nom à l'une des colonnes doit correspondre exactement à la casse du nom de la colonne. Sinon, une exception sera levée. Par exemple, si la table myTable contient les colonnes Col1 et col1, vous devez référencer Col1 par nom comme myTable.Columns["Col1"] et col1 comme myTable.Columns["col1"]. Si vous tentez de référencer l'une des colonnes comme myTable.Columns["COL1"] une exception sera levée.

La règle de respect de la casse ne s'applique pas s'il n'existe qu'une seule colonne, relation ou contrainte ayant un nom particulier. En d'autres termes, si aucun autre objet de colonne, relation ou contrainte de la table ne correspond au nom de cet objet de colonne, relation ou contrainte, 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 la table n'a que Col1, vous pouvez référencer cette colonne comme my.Columns["COL1"].

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

Dans cette section