Vous êtes sur la page 1sur 12

ADO.

NET CONCEPTOS BASICOS


Introduccin
La mayora de las aplicaciones actuales guardan su informacin en
bases de datos por lo que necesitan acceder a ellas ya sea de forma
local o remota.

















Qu es ADO.NET?
Visual Basic .NET utiliza la tecnologa ADO.NET (Activex Data Object)
que permite el acceso a bases de datos mediante proveedores para
sistemas administradores de bases de datos que funcionan en el entorno
.NET.

ADO.NET es un avanzado modelo de Bases de Datos para acceder a
SGBDR.
Incluye una serie de proveedores que actan como intermediarios entre
la base de datos y la aplicacin:
SqlClient
OracleClient
OleDB
ODBC
Como cualquier otro modelo de acceso a datos, ADO.NET es un conjunto
de clases relacionadas entre s que estn especializadas en ofrecer toda
la funcionalidad que un programador necesita para realizar acceso a
datos y manejarlos una vez los ha obtenido.

Las clases genricas expuestas por ADO.NET se encuentran bajo el
espacio de nombres System.Data. Este espacio de nombres define
clases genricas de acceso a datos que posteriormente son extendidas
para ofrecer caractersticas y funciones especficas de cada proveedor.

El objeto ms importante a la hora de trabajar con el nuevo modelo de
acceso a datos es el DataSet. Sin exagerar demasiado podramos
calificarlo casi como un motor de datos relacionales en memoria.
Arquitectura de ADO.NET
El concepto ms importante que hay que tener claro sobre
ADO.NET es su modo de funcionar, que se revela claramente al
analizar su arquitectura:











Existen dos capas fundamentales dentro de su arquitectura: la capa
conectada y la desconectada.




























La capa conectada
La capa conectada de ADO.NET contiene objetos especializados en la
conexin con los orgenes de datos. As, la clase genrica Connection
se utiliza para establecer conexiones a los orgenes de datos. La clase
Command se encarga de enviar comandos de toda ndole al origen de
datos. Por fin 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
despus.

Estas clases son abstractas, es decir, no tienen una implementacin real
de la que se pueda hacer uso directamente. Es en este punto en donde
entran en juego los proveedores de datos. Cada origen de datos tiene
un modo especial de comunicarse con los programas que los utilizan,
adems de otras particularidades que se deben contemplar.

Los proveedores de acceso a datos es la capa inferior de la parte
correspondiente al acceso de datos y es la responsable de establecer la
comunicacin con las fuentes de datos, proporcionan el puente entre las
bases de datos y las aplicaciones.

Se utilizan para conectarse a la base de datos, recuperar informacin y
ejecutar rdenes contra la misma y son dependientes del gestor de
datos utilizado

La plataforma .NET proporciona "de serie" los siguientes proveedores de
acceso a datos.
Proveedor Espacio de nombres Descripcin
ODBC .NET Data
Provider
System.Data.Odbc Permite conectar nuestras
aplicaciones a fuentes de datos a
travs de ODBC.
OLE DB .NET Data
Provider
System.Data.OleDb Realiza la conexin utilizando un
proveedor OLEDB, al igual que el
ADO clsico.
Oracle Client .NET
Data Provider
System.Data.OracleClient Proveedor de datos para acceder
a Oracle.
SQL Server .NET
Data Provider
System.Data.SqlClient Permite la conexin optimizada a
SQL SERVER





Los proveedores de acceso a datos que distribuye Microsoft en ADO.NET
y algunos desarrollados por otras empresas o terceros, contienen los
mismos objetos, aunque los nombres de stos, sus propiedades y
mtodos, pueden ser diferentes.

As, por ejemplo, las clases especficas para acceder a SQL Server se
llaman SqlConnection, SqlCommand, SqlDataReader y
SqlDataAdapter y se encuentran bajo el espacio de nombres
System.Data.SqlClient.


Veamos una a una los diferentes objetos:

EL OBJETO CONNECTION
Este objeto es el encargado de establecer una conexin fsica con una
base de datos determinada.
Para establecer la conexin con una determinada fuente de datos, no
slo debemos establecer la cadena de conexin correctamente, sino que
adems deberemos usar los parmetros de conexin y el proveedor de
acceso a datos adecuado.
Tanto si se trabaja en modo conectado como sin conexin, lo
primero que se debe hacer con una fuente de datos es abrir una
conexin en ella. Esto implica que se crea un objeto Connection que
conecta con la base de datos especificada.

Dispone entre otras de las siguientes propiedades y mtodos:
Propiedades:

ConnectinString. Cadena utilizada para conectar con la fuente de
datos.

ConectionTimeout. Nmero de segundos despus del cual una
conexin fallida se interrumpe. Es de slo lectura, ya que este valor se
configura en la propiedad ConnectionString. El valor predeterminado es
de 15 segundos.

Mtodos:
Open. Abre la conexin.

Close. Cierrra la conexin y libera todas las fuentes de datos asociadas.

BeginTransation. Comienza una transaccin de base de datos
utilizando el nivel de aislamientos especificado en el argumento
opcional.

EL OBJETO COMMAND
Una vez abierta una conexin se puede elegir entre trabajar en modo
conectado o desconectado.
En modo conectado, lo normal es crear un objeto Command que
contenga una consulta a una base de datos y a continuacin ejecutar el
mtodo Executexxxx que corresponda con el tipo de consulta:
De seleccin para obtener datos de la BD
De accin para actualizar datos en la BD

Propiedades:
Connection. Obtiene o establece el objeto Connection de este
comando.

CommandText. String. Obtiene o establece la instruccin SQL, nombre
de la tabla o procedimiento almacenado, que se va a ejecutar en el
origen de datos.

CommandType. Obtiene o establece un valor que indica el tipo de
consulta. Es decir, cmo se interpreta la propiedad CommandText. Sus
valores pueden ser:
Text. Sentencia SQL (por defecto)
StoredProcedure. Procedimiento almacenado
TableDirec. Tabla

Mtodos:
Cancel. Cancela la ejecucin del comando.

Para lectura de datos:
ExecuteNonQuery. Ejecuta la consulta de accin y devuelve el nmero
de filas afectadas.

ExecuteReader. Ejecuta una consulta de seleccin y devuelve un
objeto DataReader que permite acceder al resultset (Conjunto de filas y
columnas obtenidas por la consulta).
ExecuteScalar. Ejecuta la consulta y devuelve un valor escalar. Es
decir, devuelve la primera columna de la primera fila del conjunto de
resultados devuelto por la consulta.
Funciona con cualquier consulta SQL y devuelve el primer campo de la
primera fila.

EL OBJETO DATAADAPTER
Este objeto es quizs el objeto ms complejo y a la vez complicado de
todos los que forman parte de un proveedor de acceso a datos en .NET.
Cuando deseamos establecer una comunicacin entre una fuente de
datos y un DataSet, utilizamos como intermediario a un objeto
DataAdapter.


A su vez, un DataAdapter contiene 4 objetos que debemos conocer:

SelectCommand es el objeto encargado de realizar los trabajos
de seleccin de datos con una fuente de datos dada.
En s, es el que se encarga de devolver y rellenar los datos de una
fuente de datos a un DataSet.
DeleteCommand es el objeto encardago de realizar las acciones
de borrado de datos.
InsertCommand es el objeto encardago de realizar las acciones
de insercin de datos.
UpdateCommand es el objeto encardago de realizar las acciones
de actualizacin de datos.

Los objetos DeleteCommand, InsertCommand y UpdateCommand son
los objetos que se utilizan para manipular y transmitir datos de una
fuente de datos determinada, al contrario del objeto SelectCommand
que tan slo interacta con la fuente de datos para recuperar una
porcin o todos los datos indicados en el objeto Command
anteriormente comentado.

EL OBJETO DATAREADER
Este objeto es el utilizado en una sola direccin de datos. Establece una
conexin en un modo de solo lectura.
Se trata de un objeto de acceso a datos muy rpido.
Este objeto puede usar a su vez el objeto Command o el mtodo
ExecuteReader.


LA CAPA DESCONECTADA
Una vez que ya se han recuperado los datos desde un origen de datos la
conexin a ste ya no es necesaria. Sin embargo sigue siendo necesario
trabajar con los datos obtenidos de una manera flexible.

Es aqu cuando la capa de datos desconectada entra en juego. Adems,
en muchas ocasiones es necesario tratar con datos que no han sido
obtenidos desde un origen de datos relacional con el que se requiera
una conexin.

A veces nicamente necesitamos un almacn de datos temporal pero
que ofrezca caractersticas avanzadas de gestin y acceso a la
informacin.

Finalmente otro motivo por el que es importante el uso de los datos
desconectado de su origen es la transferencia de informacin entre
capas de una aplicacin. stas pueden encontrarse distribuidas por
diferentes equipos, e incluso en diferentes lugares del mundo gracias a
Internet.

Por ello es necesario disponer de algn modo genrico y eficiente de
poder transportar los datos entre diferentes lugares, utilizarlos en
cualquiera de ellos y posteriormente tener la capacidad de conciliar los
cambios realizados sobre ellos con el origen de datos del que proceden.

Todo esto y mucho ms es lo que nos otorga el uso de los objetos
DataSet, ncleo central de la capa desconectada de ADO.NET.

EL DATASET

Almacena en la memoria cach del cliente los resultados de la consulta
SQL establecida en un adaptador de datos. Los datos estn disponibles
en modo desconectado Y Forman una pequea base de datos con
informacin necesaria para la aplicacin.

Unin entre capa conectada y desconectada

La clase DataAdapter se ha incluido anteriormente en la capa conectada
porque est implementada por cada proveedor de un modo diferente.

En realidad es una clase que pone sus pies en ambos mundos
(conectado y sin conexin) y sirve de nexo entre ellos.

Un DataAdapter sabe cmo manejar correctamente los objetos
proporcionados por su proveedor especfico (fundamentalmente los
vistos: Connection, Command y DataReader) y proporciona mtodos
para trasegar informacin desde el servidor a DataSets desconectados y
viceversa haciendo uso de dichos objetos especficos del proveedor.

As, por ejemplo, el mtodo Fill de un DataAdapter se utiliza para
introducir los resultados de una consula dentro de un DataSet para
luego trabajar con ellos sin preocuparnos de su origen.

Del mismo modo su mtodo Update se utiliza para conciliar
automticamente con el origen de datos los datos modificados en un
DataSet mientras no haba conexin.

Como hemos dicho antes un DataSet podra asimilarse a un pequeo
gestor de datos en memoria.

Como tal un DataSet permite mantener diversas tablas as como las
relaciones entre ellas, incluso forzando que se cumplan restricciones de
creacin y actualizacin, como en una base de datos "real". Para ello se
apoya en el uso de otras clases especializadas que son las siguientes:


DataTable: representa una tabla o relacin 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 informacin 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. Por ejemplo se puede
usar un objeto de esta clase para indicar que un determinado campo
debe ser nico o que se trata de una clave externa que debe ser tenida
en cuenta en actualizaciones o borrados en cascada.

DataRelations: define la relacin existente entre dos objetos
DataTable. Normalmente se suelen utilizar un identificador comn a
ambas tablas aunque pueden ser combinaciones de ms de uno de ellos.
De este modo se sabe cmo obtener informacin de una tabla a partir
de informacin en otra. Por ejemplo el identificador de una factura (su
nmero, por ejemplo) puede servir para relacionar su registro con los
registros de detalle de factura que estn contenidos en otra tabla.

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 dfecto (propiedad
DefaultView) que ofrece los datos tal y como se han introducido en sta
y es la vista que se usa habitualmente.


Entre los mtodos ms destacables de la clase DataSet podemos
mencionar los siguientes.

Clear ( ). Elimina todos los datos almacenados en el objeto DataSet,
vaciando todas las tablas contenidas en el mismo.

AcceptChanges ( ). Confirma todos los cambios realizados en las
tablas y relaciones contenidas en el objeto DataSet, o bien los ltimos
cambios que se han producido desde la ltima llamada al mtodo
AcceptChanges.

GetChanges ( ). Devuelve un objeto DataSet que contiene todos los
cambios realizados desde que se carg con datos, o bien desde que se
realiz la ltima llamada al mtodo
AcceptChanges.

HasChanges ( ). Devuelve true o false para indicar si se han realizado
cambios al contenido del DataSet desde que fue cargado o bien desde
que se realiz la ltima llamada al mtodo
AcceptChanges.

RejectChanges( ). Abandona todos los cambios realizados en las
tablas contenidas en el objeto DataSet desde que fue cargado el objeto
o bien desde la ltima vez que se lanz el mtodo AcceptChanges.

Merge( ). Toma los contenidos de un DataSet y los mezcla con los de
otro DataSet, de forma que contendr los datos de ambos objetos
DataSet.

Vous aimerez peut-être aussi