Compartir a través de


Agregar un objeto DataTable a un objeto DataSet

ADO.NET permite crear objetos DataTable y agregarlos a un DataSet existente. Es posible establecer información de restricciones para una DataTable mediante las propiedades PrimaryKey y Unique.

Ejemplo

En el siguiente ejemplo se construye un DataSet, se agrega un objeto DataTable nuevo al DataSet y, a continuación, se agregan tres objetos DataColumn a la tabla. Por ultimo, el código establece una columna como columna de clave principal.

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}

Distinción entre mayúsculas y minúsculas

Pueden existir dos o más tablas o relaciones con el mismo nombre, pero que difieran en mayúsculas y minúsculas, en un DataSet. En estos casos, las referencias a tablas y relaciones por nombre distinguen mayúsculas y minúsculas. Por ejemplo, si el DataSet dataSet contiene las tablas Table1 y table1, se hace referencia por nombre a Table1 como dataSet.Tables["Table1"] y se hace referencia a table1 como dataSet.Tables["table1"]. Si se intentara hacer referencia a cualquiera de las tablas mediante dataSet.Tables["TABLE1"] se generaría una excepción.

El comportamiento de distinción entre mayúsculas y minúsculas no se aplica si sólo hay una tabla o relación con un nombre concreto. Por ejemplo, si DataSet solo tiene Table1, se puede hacer referencia a ésta mediante dataSet.Tables["TABLE1"].

Nota

La propiedad CaseSensitive del DataSet no afecta a este comportamiento. La propiedad CaseSensitive se aplica a los datos del DataSet y afecta a la ordenación, la búsqueda, el filtrado, la aplicación de restricciones, etc.

Compatibilidad con los espacios de nombres

En las versiones de ADO.NET anteriores a la versión 2.0, dos tablas no podían tener el mismo nombre, aunque se encontrasen en espacios de nombres diferentes. Esta limitación se quitó en ADO.NET 2.0. Un DataSet puede contener dos tablas con el mismo valor de propiedad TableName, pero con valores de propiedad Namespace diferentes.

Consulte también