DataSet DataSet (System.Data)

Transcripción

DataSet DataSet (System.Data)
Profesor: Pablo Ulman (Polshu)
DataSet
DataSet (System.Data):
El DataSet de ADO.NET es una representación de datos residente en memoria que proporciona un modelo de programación
relacional coherente independientemente del origen de datos que contiene. Un DataSet representa un conjunto completo de
datos, incluyendo las tablas que contienen, ordenan y restringen los datos, así como las relaciones entre las tablas.
Hay varias maneras de trabajar con un DataSet, que se pueden aplicar de forma independiente o conjuntamente.
 Crear mediante programación una DataTable, DataRelation y una Constraint (restricción) en un DataSet y rellenar
las tablas con datos.
 Llenar el DataSet con tablas de datos de un origen de datos relacional existente mediante DataAdapter.
 Cargar y hacer persistente (guardar) el contenido de DataSet mediante XML.
También se puede transportar un DataSet con establecimiento inflexible de tipos mediante un servicio Web XML
(WebService). El diseño del DataSet lo convierte en idóneo para el transporte de datos mediante servicios Web XML.
V1.0
Profesor: Pablo Ulman (Polshu)
DataSet
Algunos métodos del DataSet:

Clear:
Borra cualquier dato de DataSet mediante el procedimiento de quitar todas las filas de todas las tablas.

Clone:
Copia la estructura de DataSet, incluidos todos los esquemas, relaciones y restricciones de DataTable. No copia ningún
dato.

Copy:
Copia la estructura y los datos para este objeto DataSet.

HasChanges
Obtiene un valor que indica si DataSet presenta cambios, incluyendo filas nuevas, eliminadas o modificadas.

Merge
Combina un objeto DataSet especificado y su esquema en el objeto DataSet actual.

WriteXml(string filename, XmlWriteMode mode)
Escribe los datos actuales y, de forma opcional, el esquema para el objeto DataSet en el archivo indicado mediante la
enumeración XmlWriteMode especificada. Para escribir el esquema, establezca el valor del parámetro mode en
WriteSchema.
WriteSchema: Escribe el contenido actual de DataSet como datos XML con la estructura relacional como un esquema
XSD en línea. Si el DataSet sólo tiene un esquema sin datos, únicamente se escribe el esquema en línea. Si el DataSet
no tiene un esquema actual, no se escribe nada.
IgnoreSchema: Escribe el contenido actual de DataSet como datos XML, sin un esquema XSD. Si no se cargan datos en
el DataSet, no se escribe nada.
DiffGram: Escribe el DataSet completo como un DiffGram, incluidos los valores originales y actuales. Para generar un
DiffGram que contenga únicamente valores modificados, llame a GetChanges y, a continuación, llame a WriteXml como
un DiffGram del DataSet devuelto.
Ejemplo:
DataSet dsViajes;
dsViajes = Viajes.ObtenerTodosDS();
dsViajes.WriteXml(@"F:\Temp\Datos.xml", XmlWriteMode.WriteSchema);
V1.0
Profesor: Pablo Ulman (Polshu)

DataSet
ReadXml(string filename, XmlReadMode mode)
Lee el esquema y los datos XML del DataSet mediante el archivo y el XmlReadMode especificados.
Auto (default): Realiza la acción más apropiada de las que se muestran a continuación.
Si los datos constituyen un DiffGram, establece XmlReadMode en DiffGram, o bien si el conjunto de datos ya tiene un
esquema o el documento contiene un esquema en línea, establece XmlReadMode en ReadSchema.
O bien, si el conjunto de datos aún no tiene un esquema y el documento no contiene un esquema en línea, establece
XmlReadMode en InferSchema.
ReadSchema: Lee cualquier esquema en línea y carga los datos. Si el DataSet ya contiene un esquema, se pueden
agregar al mismo las nuevas tablas, aunque se producirá una excepción si cualquier tabla del esquema en línea ya
existe en el DataSet.
IgnoreSchema: Omite cualquier esquema en línea y lee los datos del esquema del DataSet existente. Si los datos
constituyen un DiffGram, IgnoreSchema tiene la misma funcionalidad que DiffGram.
InferSchema: Omite cualquier esquema en línea, deduce el esquema a partir de los datos y los carga. Si el DataSet ya
contiene un esquema, se extiende el esquema actual mediante la adición de nuevas tablas o la adición de columnas a
las tablas existentes. Se producirá una excepción si la tabla deducida ya existe con un espacio de nombres distinto, o si
cualquiera de las columnas deducidas entra en conflicto con las columnas existentes.
DiffGram: Lee un DiffGram, aplicando los cambios del DiffGram a DataSet. La semántica es idéntica a la de una
operación Merge. Al igual que ocurre con la operación Merge, se conservan los valores RowState. La entrada a
ReadXml mediante DiffGrams sólo se puede obtener si se utiliza la salida de WriteXml como un DiffGram.
El DataSet de destino debe tener el mismo esquema que el DataSet en el que se llama a WriteXml como DiffGram. De lo
contrario, se producirá un error en la operación de combinación de DiffGram y se producirá una excepción.
Fragment: Lee fragmentos XML, como los que se generan al ejecutar consultas FOR XML, en una instancia de SQL
Server. Al establecer XmlReadMode en Fragment, se lee el espacio de nombres predeterminado como el esquema en
línea.
InferTypedSchema: Omite cualquier esquema en línea, deduce el esquema con establecimiento inflexible de tipos a
partir de los datos y los carga. Si el tipo no se puede deducir de los datos, se interpreta como datos de cadena. Si el
DataSet ya contiene un esquema, se extiende el esquema actual mediante la adición de nuevas tablas o columnas a las
tablas existentes. Se producirá una excepción si la tabla deducida ya existe con un espacio de nombres distinto, o si
cualquiera de las columnas deducidas entra en conflicto con las columnas existentes.
Algunas propiedades del DataSet:

DataSetName:
Obtiene o establece el nombre del objeto DataSet actual.

Relations:
Obtiene la colección de relaciones que vincula las tablas y permite el desplazamiento desde las tablas primarias a las
secundarias.

Tables:
Obtiene la colección de tablas incluidas en DataSet.
V1.0
Profesor: Pablo Ulman (Polshu)
V1.0
DataSet
Profesor: Pablo Ulman (Polshu)
DataSet
DataTable (System.Data):
Una DataTable representa una tabla de datos en memoria.
Si se va a crear un DataTable mediante programación, en primer lugar se debe definir su esquema agregando objetos
DataColumn al DataColumnCollection (al que se obtiene acceso mediante la propiedad Columns). Para obtener más
información sobre la adición de objetos DataColumn, vea Agregar columnas a una tabla.
Para agregar filas a DataTable, en primer lugar se debe utilizar el método NewRow para devolver un nuevo objeto DataRow.
El método NewRow devuelve una fila con el esquema de DataTable, tal como lo define el DataColumnCollection de la tabla.
El número máximo de filas que puede almacenar un objeto DataTable es 16.777.216. Para obtener más información, vea
Agregar datos a una tabla.
DataTable también contiene una colección de objetos Constraint que se pueden utilizar para asegurar la integridad de los
datos. Para obtener más información, vea Agregar restricciones a una tabla.
DataRow (Clase)
Representa una fila de datos en un DataTable.
Los objetos DataRow y DataColumn son componentes principales de un DataTable. Utilice el objeto DataRow y sus
propiedades y métodos para recuperar, evaluar, insertar, eliminar y actualizar los valores de DataTable. DataRowCollection
representa los objetos DataRow reales de DataTable y DataColumnCollection contiene los objetos DataColumn que
describen el esquema de DataTable. Utilice la propiedad Item sobrecargada para devolver o establecer el valor de
DataColumn.
Utilice las propiedades HasVersion y IsNull para determinar el estado de un valor de fila concreto y la propiedad RowState
para determinar el estado de la fila con relación a su objeto DataTable primario.
Para crear un DataRow nuevo, utilice el método NewRow del objeto DataTable. Después de crear un DataRow nuevo, utilice
el método Add para agregar el nuevo DataRow a DataRowCollection. Por último, llame al método AcceptChanges del objeto
DataTable para confirmar la adición. Para obtener más información sobre la adición de datos a un DataTable, vea Agregar
datos a DataTable.
Puede eliminar un DataRow de DataRowCollection llamando al método Remove de DataRowCollection, o bien llamando al
método Delete del objeto DataRow. El método Remove quita de la colección la fila. En cambio, Delete marca el DataRow
que se va a quitar. La eliminación real se produce cuando se llama al método AcceptChanges. Al llamar a Delete, se puede
comprobar mediante programación qué filas están marcadas para eliminación antes de eliminarlas.
V1.0
Profesor: Pablo Ulman (Polshu)
DataSet
DataColumn (Clase)
Representa el esquema de una columna en un DataTable.
El DataColumn es el bloque constructivo fundamental para crear el esquema de un DataTable. Para construir el esquema,
se agregan uno o varios objetos DataColumn al DataColumnCollection.
Cada DataColumn tiene una propiedad DataType que determina el tipo de datos que contiene el DataColumn. Por ejemplo,
se puede restringir el tipo de datos a enteros, cadenas o decimales. Puesto que los datos incluidos en el objeto DataTable
normalmente se vuelven a combinar en su origen de datos original, se debe hacer coincidir los tipos de los datos con los del
origen de datos
Propiedades como AllowDBNull, Unique y ReadOnly aplican restricciones en la entrada y actualización de datos, lo que
contribuye a garantizar la integridad de éstos. También se pueden utilizar las propiedades AutoIncrement,
AutoIncrementSeed y AutoIncrementStep para controlar la generación automática de datos.
También se puede garantizar que los valores de un objeto DataColumn son únicos mediante la creación de una restricción
UniqueConstraint y su adición a la colección ConstraintCollection del objeto DataTable al que pertenece el objeto
DataColumn.
Para crear una relación entre objetos DataColumn, cree un objeto DataRelation y agréguelo al DataRelationCollection de un
DataSet.
También se puede utilizar la propiedad Expression del objeto DataColumn para calcular los valores de una columna o para
crear una columna agregada.
DataRowView (Miembros)
Representa una vista personalizada de DataRow.
Cuando se muestran datos, como en un control DataGrid, sólo se puede mostrar una versión de cada fila. La fila que se
muestra es un DataRowView.
DataRowView sólo puede tener uno de los cuatro estados de versión diferentes: Default, Original, Current y Proposed.
Tras invocar BeginEdit en un DataRow, cualquier valor que se haya editado se convertirá en el valor Proposed. Hasta que se
invoque a CancelEdit o a EndEdit, la fila tendrá una versión Original y otra Proposed. Si se invoca a CancelEdit, se
descartará la versión propuesta y el valor volverá a ser Original. Si se invoca a EndEdit, el objeto DataRowView dejará de
tener una versión Proposed. En su lugar, el valor propuesto se convertirá en el valor actual. Los valores predeterminados
sólo se encuentran disponibles en las filas que tienen columnas con valores predeterminados definidos.
V1.0

Documentos relacionados