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
- Agregar columnas a una tabla
Describe cómo se definen las columnas de una tabla con objetos DataColumn. - Crear columnas de expresión
Explica cómo se puede usar la propiedad Expression de una columna para calcular valores basándose en los valores de otras columnas de la fila. - Crear columnas AutoIncrement
Describe cómo se puede establecer una columna para que incremente automáticamente los valores numéricos y, así, se garantice un valor de columna exclusivo por fila. - Definir una clave principal para una tabla
Describe cómo se especifican la clave principal de una tabla a partir de uno o varios objetos DataColumn. - Agregar restricciones a una tabla
Describe cómo se define una clave externa y restricciones UNIQUE para las columnas de una tabla.