Compartir a través de


Definir el esquema de DataTable

El esquema, o estructura, de una tabla se representa con columnas y restricciones. El esquema de un objeto DataTable se define con objetos DataColumn además de objetos ForeignKeyConstraint y UniqueConstraint. Las columnas de una tabla se pueden asignar a columnas de un origen de datos, pueden contener valores calculados de expresiones, aumentar sus valores automáticamente o contener valores de clave principal.

Distinción de mayúsculas y minúsculas

Las referencias a los nombres de columnas, relaciones y restricciones de una tabla hacen distinción entre mayúsculas y minúsculas. En una tabla puede haber dos o más columnas, relaciones y restricciones con el mismo nombre, pero con distinción entre mayúsculas y minúsculas. Por ejemplo, se puede tener Col1 y col1. En este caso, una referencia al nombre de una de las columnas tiene que coincidir exactamente con las mayúsculas y minúsculas del nombre de la columna, de lo contrario se inicia una excepción. Por ejemplo, si la tabla myTable contiene las columnas Col1 y col1, la referencia al nombre de Col1 sería myTable.Columns["Col1"] y al de col1 sería myTable.Columns["col1"]. Si se intentara hacer referencia a cualquiera de las columnas mediante myTable.Columns["COL1"] se generaría una excepción.

La regla de distinción entre mayúsculas y minúsculas no se aplica si sólo hay una columna, relación o restricción con un nombre concreto. Es decir, si no hay ningún otro objeto de columna, relación o restricción en la tabla que coincida con el nombre, ni siquiera por una diferencia de mayúsculas y minúsculas, de ese objeto de columna, relación o restricción concreto, se puede hacer referencia al nombre del objeto usando cualquier mayúscula o minúscula y no se generará una excepción. Por ejemplo, si la tabla sólo tiene Col1, se puede hacer referencia al nombre usando my.Columns["COL1"].

La propiedad CaseSensitive del objeto DataTable no afecta a este comportamiento. La propiedad CaseSensitive se aplica a los datos de la tabla y afecta a la ordenación, la búsqueda, el filtrado, el forzado de restricciones, etc. Las referencias a las columnas, relaciones y restricciones de una tabla no se ven afectadas por la propiedad CaseSensitive.

En esta sección