ADO.Net
Arquitectura de ADO.Net
Capa Conectada
La clase genérica Connection se utiliza para establecer conexiones a los orígenes de datos.
La clase Command se encarga de enviar comandos de toda índole al origen de datos.
La clase DataReader está especializada en leer los resultados de los comandos.
La clase DataAdapter hace uso de las tres anteriores para actuar de puente entre la capa conectada y la desconectada como veremos después.
Capa Desconectada
A veces únicamente necesitamos un almacén de datos temporal pero que ofrezca características avanzadas de gestión y acceso a la información.
Finalmente otro motivo por el que es importante el uso de los datos desconectado de su origen es la transferencia de información entre capas de una aplicación.
Todo esto y mucho más es lo que nos otorga el uso de los objetos DataSet, núcleo central de la capa desconectada de ADO.NET.
Los objetos DataSet no dependen de proveedor de datos alguno y su funcionamiento es independiente de cómo hayan sido obtenidos los datos que contienen.
Objetos ADO.Net
Objeto Command
Estos tres métodos del objeto Command ejecutan una consulta SQL o procedimiento almacenado y pueden o no devolver diferentes tipos de datos.
En ADO .NET, ExecuteReader ejecuta una consulta SQL o un procedimiento almacenado y devuelve un DataReader.
El método ExecuteNonQuery ejecuta una consulta SQL o un procedimiento almacenado y no regresa registros
Utiliza el método ExecuteScalar para recuperar un valor único (por ejemplo, un valor agregado) desde una base de datos.
Objeto DataReader
DataReader es un flujo de sólo hacia delante y sólo lectura
devuelto de la base de datos. Representa los resultados de una consulta o un comando ejecutado
Creación de instancias por el método Command Execute
Realmente, no puede crear instancias de DataReader de manera directa.
Depende del Command hasta que termina la lectura
Este consciente de que la clase Command no puede procesar ninguna otra solicitud mientras está leyendo los datos, se bloquea hasta que haya terminado.
Objeto DataSet
El DataSet es una copia en memoria de los datos. Un DataSet no tiene conocimiento de una conexión de datos. Una vez que el DataSet se ha llenado, no sabe de donde provinieron los datos. Puede agregar datos a un DataSet desde varias fuentes.
Vista relacional de datos
Contiene tablas, columnas, filas, restricciones,
vistas y relaciones
Modelo desconectado
No tiene conocimientos sobre la fuente
de datos
Índice en forma de arreglo
Escritura sólida
Soporta la unión de datos
Soporta las actualizaciones por lotes
Se conecta a la fuente de datos a través del DataAdapter
Concepto
ADO.NET es un conjunto de clases relacionadas entre sí que están especializadas en ofrecer toda la funcionalidad que un programador necesita para realizar acceso a datos y manejarlos una vez los ha obtenido.
Clases dependientes de DataSet
DataTable: representa una tabla o relación de datos. Se puede asimilar a una tabla de un gestor de datos. Los datos obtenidos de una consulta de tipo SELECT de SQL se almacenan en un objeto de esta clase.
DataColumn: ofrece información sobre cada uno de los campos de los registros almacenados en un DataTable, como su nombre o su tipo.
DataRow: representa un registro de la tabla virtual definida por el DataTable. Contiene tantos elementos como campos tiene la tabla, cada uno del tipo definido por el objeto DataColumn correspondiente.
Constraint: las clases Constraint se emplean para definir resticciones en los tipos de datos contenidos en un DataTable.
DataRelations: define la relación existente entre dos objetos DataTable. Normalmente se suelen utilizar un identificador común a ambas tablas aunque pueden ser combinaciones de más de uno de ellos.
DataView: representa una vista concreta de un DataTable. Normalmente se trata de ordenaciones o filtros sobre los datos originales. Todas las tablas disponen de una vista por defecto (propiedad DefaultView) que ofrece los datos tal y como se han introducido en ésta y es la vista que se usa habitualmente.