Вы находитесь на странице: 1из 8

Acceso a datos con ADO.

NET
ADO.NET es un conjunto de clases que exponen servicios de acceso a datos al
programador de .NET. ADO.NET proporciona un conjunto variado de componentes
para crear aplicaciones distribuidas de uso compartido de datos. Forma parte integral
de .NET Framework, y proporciona acceso a datos relacionales, datos XML y datos de
aplicaciones. ADO.NET es compatible con diversas necesidades de programacin,
incluida la creacin de clientes de bases de datos clientes y objetos empresariales de
nivel medio utilizados por aplicaciones, herramientas, lenguajes o exploradores de
Internet.

Informacin general acerca de ADO.NET


ADO.NET proporciona acceso coherente a orgenes de datos como Microsoft SQL
Server, as como a orgenes de datos expuestos mediante OLE DB y XML. Las
aplicaciones para usuarios que comparten datos pueden utilizar ADO.NET para
conectar a estos orgenes de datos y recuperar, manipular y actualizar los datos.
ADO.NET separa limpiamente el acceso a datos de la manipulacin de datos y crea
componentes discretos que se pueden usar por separado o conjuntamente. ADO.NET
incluye proveedores de datos de .NET Framework para conectarse a una base de
datos, ejecutar comandos y recuperar resultados. Esos resultados se procesan
directamente o se colocan en un objeto DataSet de ADO.NET con el fin de exponerlos
al usuario para un propsito especfico, junto con datos de varios orgenes, o de
utilizarlos de forma remota entre niveles. El objeto DataSet de ADO.NET tambin
puede utilizarse independientemente de un proveedor de datos de .NET Framework
para administrar datos que son locales de la aplicacin o que proceden de un origen
XML.
ADO.NET proporciona a los programadores que escriben cdigo administrado una
funcionalidad parecida a la que ADO proporciona a los programadores de COM nativo.
Para obtener una descripcin de las diferencias entre ADO y ADO.NET, vea "ADO.NET
para el programador de ADO"

Objetivos de diseo para ADO.NET


A medida que la programacin de aplicaciones ha evolucionado, las nuevas
aplicaciones se han convertido en aplicaciones de correspondencia imprecisa basadas
en el modelo de aplicacin Web. Las aplicaciones de hoy en da utilizan cada vez ms
XML para codificar datos que se van a pasar a travs de conexiones de red. Las
aplicaciones Web usan HTTP para las comunicaciones entre niveles y, por tanto,
deben controlar expresamente el mantenimiento del estado de una solicitud a otra.
Este nuevo modelo es muy diferente del estilo de programacin con conexin y de
correspondencia precisa que caracterizaba la poca cliente-servidor, en la que una
conexin permaneca abierta durante toda la vida del programa y no haca falta
controlar el estado.
ADO.NET se dise con el propsito de satisfacer las necesidades de este nuevo
modelo de programacin: arquitectura de datos sin mantener una conexin abierta,
estrecha integracin con XML, representacin comn de datos con la posibilidad de
1

combinar datos procedentes de mltiples y variados orgenes, y servicios optimizados


para interactuar con una base de datos, todo ello nativo de .NET Framework.
Aprovechar los conocimientos actuales de ADO
El diseo de ADO.NET satisface muchos de los requisitos del modelo de desarrollo de
aplicaciones de hoy en da. Al mismo tiempo, el modelo de programacin sigue siendo
lo ms parecido posible a ADO, de manera que los programadores actuales de ADO
no tienen que empezar a aprender desde cero una tecnologa de acceso a datos
totalmente nueva. ADO.NET forma parte intrnseca de .NET Framework sin que al
programador de ADO le parezca completamente extraa.
ADO.NET coexiste con ADO. Aunque la mayora de las nuevas aplicaciones basadas
en .NET se escribirn mediante ADO.NET, ADO sigue estando disponible para el
programador de .NET a travs de los servicios de interoperabilidad COM de .NET.
Para obtener una descripcin de las diferencias entre ADO y ADO.NET, vea "ADO.NET
para el programador de ADO"
Integrar la compatibilidad con XML
La compatibilidad con XML est integrada en los cimientos de ADO.NET. Las
clases de XML incluidas en .NET Framework y ADO.NET forman parte de la
misma arquitectura: estn integradas en muchos niveles. Ya no es necesario
elegir entre el conjunto de servicios de acceso a datos y los
correspondientes servicios de XML; la capacidad para cruzar de uno a otro
es inherente al diseo de ambos.

Arquitectura de ADO.NET
Tradicionalmente, el procesamiento de datos ha dependido principalmente
de un modelo de dos niveles basado en una conexin. A medida que el
procesamiento de datos utiliza cada vez ms arquitecturas de varios
niveles, los programadores estn pasando a un enfoque sin conexin con el
fin de proporcionar una escalabilidad mejor para sus aplicaciones.
XML y ADO.NET
ADO.NET aprovecha la eficacia de XML para proporcionar acceso a datos sin
mantener una conexin abierta. ADO.NET fue diseado teniendo en cuenta las clases
de XML incluidas en .NET Framework: ambos son componentes de una nica
arquitectura.
ADO.NET y las clases de XML incluidas en .NET Framework convergen en el objeto
DataSet. El DataSet se puede llenar con datos procedentes de un origen XML, ya sea
ste un archivo o una secuencia XML. El DataSet se puede escribir como XML
compatible con el del Consorcio World Wide Web (W3C), incluyendo su esquema
como esquema XSD (Lenguaje de definicin de esquemas XML), independientemente
2

del origen de los datos incluidos en el DataSet. Puesto que el formato nativo de
serializacin del DataSet es XML, es un medio excelente para mover datos de un nivel
a otro, por lo que el DataSet es idneo para utilizar datos y contextos de esquemas de
interaccin remota desde y hacia un servicio Web XML.

Componentes de ADO.NET
Los componentes de ADO.NET estn diseados para separar el acceso a datos de la
manipulacin de datos. ADO.NET tiene dos componentes principales que cumplen
esta funcin: el DataSet y el proveedor de datos de .NET Framework, que es un
conjunto de componentes entre los que se incluyen los objetos Connection,
Command, DataReader y DataAdapter.
El DataSet de ADO.NET es el componente central de la arquitectura sin conexin de
ADO.NET. El DataSet est expresamente diseado para el acceso a datos
independientemente del origen de datos. Como resultado, se puede utilizar con
mltiples y distintos orgenes de datos, con datos XML o para administrar datos locales
de la aplicacin. El DataSet contiene una coleccin de uno o ms objetos DataTable
formados por filas y columnas de datos, as como informacin sobre claves
principales, claves externas, restricciones y relaciones relativas a los datos incluidos
en los objetos DataTable.
Elegir un DataReader o un DataSet
A la hora de decidir si su aplicacin debe utilizar un DataReader (vea Recuperar datos
mediante DataReader) o un DataSet (vea Crear y utilizar DataSets), debe tener en
cuenta el tipo de funcionalidad que su aplicacin requiere. Use un DataSet para hacer
lo siguiente:

Utilizar datos de forma remota entre un nivel y otro o desde un servicio Web
XML.

Interactuar con datos dinmicamente, por ejemplo para enlazar con un control
de Windows Forms o para combinar y relacionar datos procedentes de varios
orgenes.

Almacenar datos en memoria cach localmente, dentro de su aplicacin.

Proporcionar una vista XML jerrquica de datos relacionales y utilizar


herramientas como una transformacin XSL o una consulta Xpath (XML Path
Language) en sus datos. Para obtener ms informacin, vea XML y DataSet.

Realizar procesamientos exhaustivos de datos sin necesidad de tener una


conexin abierta con el origen de datos, lo que libera la conexin para que la
utilicen otros clientes.

Si no necesita la funcionalidad proporcionada por el DataSet, puede mejorar el


rendimiento de su aplicacin si utiliza el DataReader para devolver sus datos de slo
avance y de slo lectura. Aunque el DataAdapter usa el DataReader para rellenar el
contenido de un DataSet (vea Llenar un DataSet desde un DataAdapter), al utilizar el
DataReader puede mejorar el rendimiento porque no usar la memoria que utilizara el
DataSet, adems de evitar el procesamiento necesario para crear y rellenar el
contenido del DataSet.

Proveedores de datos de .NET Framework


Un proveedor de datos de .NET Framework sirve para conectarse a una base de
datos, ejecutar comandos y recuperar resultados. Esos resultados se procesan
directamente o se colocan en un DataSet de ADO.NET con el fin de exponerlos al
usuario para un propsito especfico, junto con datos de varios orgenes, o de
utilizarlos de forma remota entre niveles. El diseo del proveedor de datos de .NET
Framework hace que sea ligero, de manera que cree un nivel mnimo entre el origen
de datos y su cdigo, con lo que aumenta el rendimiento sin sacrificar la funcionalidad.
En la tabla siguiente se describen los cuatro objetos centrales que constituyen un
proveedor de datos de .NET Framework.
Objeto

Descripcin

Connection

Establece una conexin a un origen de datos determinado.

Command

Ejecuta un comando en un origen de datos. Expone Parameters y


puede ejecutarse en el mbito de un
objeto Transaction deConnection.

DataReader

Lee una secuencia de datos de slo avance y slo lectura desde un


origen de datos.

DataAdapter

Llena un DataSet y realiza las actualizaciones necesarias en el


origen de datos.

Proveedor de datos de .NET Framework para SQL Server


El proveedor de datos de .NET Framework para SQL Server utiliza su propio protocolo
para establecer comunicaciones con SQL Server. Es ligero y presenta un buen
rendimiento porque est optimizado para tener acceso a SQL Server directamente, sin
agregar una capa OLE DB u ODBC. En la siguiente ilustracin se compara el
proveedor de datos de .NET Framework para SQL Server y el proveedor de datos
de .NET Framework para OLE DB. El proveedor de datos de .NET Framework para
OLE DB se comunica con un origen de datos OLE DB tanto a travs del componente
4

de servicio OLE DB, que proporciona agrupacin de conexiones y servicios de


transaccin, como del proveedor OLE DB correspondiente al origen de datos.
Comparacin entre el proveedor de datos de .NET Framework para
SQL Server y el proveedor de datos de .NET Framework para OLE
DB

Para utilizar el proveedor de datos de .NET Framework para SQL Server, debe tener
acceso a Microsoft SQL Server 7.0 o posterior. Las clases del proveedor de datos
de .NET Framework para SQL Server estn ubicadas en el espacio de nombres
System.Data.SqlClient. Para las versiones anteriores de Microsoft SQL Server, use el
proveedor de datos de .NET Framework para OLE DB con el proveedor OLE DB de
SQL Server (SQLOLEDB).
Proveedor de datos de .NET Framework para ODBC
El proveedor de datos de .NET Framework para ODBC utiliza el Administrador de
controladores ODBC nativos para permitir el acceso a datos mediante la
interoperabilidad COM. El proveedor de datos de ODBC admite tanto transacciones
locales como transacciones distribuidas. En el caso de las transacciones distribuidas,
el proveedor de datos de ODBC se inscribe automticamente y de forma
predeterminada en una transaccin y obtiene los detalles de la misma a travs de los
servicios de componentes de Windows 2000. Para obtener ms informacin,
vea Realizar transacciones.
En la siguiente tabla se muestran los controladores ODBC que se han probado con
ADO.NET.
Controlador
SQL Server
Microsoft ODBC para Oracle
Microsoft Access Driver (*.mdb)

Las clases del proveedor de datos de .NET Framework para ODBC estn ubicadas en
el espacio de nombres System.Data.Odbc.
5

Proveedor de datos de .NET Framework para Oracle


El proveedor de datos de .NET Framework para Oracle permite el acceso a datos de
orgenes de datos de Oracle mediante el software de conectividad de cliente de
Oracle. El proveedor de datos es compatible con la versin 8.1.7 y posteriores del
software de cliente de Oracle. Dicho proveedor admite tanto transacciones locales
como transacciones distribuidas (el proveedor de datos se inscribe automticamente
en las transacciones distribuidas existentes, pero actualmente no admite el mtodo
EnlistDistributedTransaction). Para obtener ms informacin, vea Realizar
transacciones.

DataSet de ADO.NET
El objeto DataSet es esencial para admitir escenarios de datos distribuidos de
ADO.NET sin mantener una conexin. El DataSet es una representacin residente en
memoria de datos que proporciona un modelo de programacin relacional coherente
independientemente del origen de datos. Se puede utilizar con mltiples y distintos
orgenes de datos, con datos XML o para administrar datos locales de la aplicacin. El
DataSet representa un conjunto completo de datos entre los que se incluyen tablas
relacionadas, restricciones y relaciones entre las tablas. En la siguiente ilustracin se
muestra el modelo de objeto DataSet.

Modelo de objeto DataSet

Los mtodos y objetos contenidos en un DataSet son coherentes con los del modelo
de base de datos relacional.
La DataRelationCollection
Un DataSet contiene relaciones en su objeto DataRelationCollection. Una relacin,
representada por el objeto DataRelation, asocia las filas de un DataTable con las filas
de otro DataTable. Es anlogo a una ruta de unin que podra existir entre las
columnas de claves externas y principales en una base de datos relacional.
Un DataRelation identifica columnas coincidentes en dos tablas de un DataSet.
ExtendedProperties
El DataSet (as como el DataTable y el DataColumn) tiene una propiedad
ExtendedProperties. ExtendedProperties es un PropertyCollection en el que se
puede colocar informacin personalizada, como la instruccin SELECT que sirve para
generar el conjunto de resultados, o una marca de fecha y hora de cundo se
generaron los datos. La coleccin ExtendedProperties se conserva con la
informacin del esquema del DataSet (as como el DataTable y el DataColumn).

Aplicacin de ejemplo de ADO.NET


A continuacin se muestra una sencilla aplicacin de ADO.NET que devuelve
resultados desde un origen de datos y los escribe en la consola o en el smbolo del
sistema. La mayor parte del cdigo de ejemplo proporcionado en Acceso a datos con
ADO.NET se puede colocar en una plantilla creada a partir de este ejemplo para ver
un ejemplo de una determinada caracterstica de ADO.NET en funcionamiento.

Para compilar y ejecutar la aplicacin de ejemplo de ADO.NET


1.- Cree un archivo de texto en blanco con el Bloc de notas o cualquier otro editor de
textos y llmelo sample.vb para cdigo de Visual Basic de ejemplo o sample.cs para
cdigo de C# de ejemplo.
2.- Copie y pegue el cdigo de Visual Basic o el cdigo de C# de ejemplo incluido en
este tema en el archivo de texto en blanco. Guarde el archivo.
3.- Abra un smbolo del sistema (seleccione Inicio, Ejecutar y escriba "command").
4.- En el smbolo del sistema, cambie el directorio por el que contiene el nuevo archivo
de texto. Por ejemplo:

5.- En el smbolo del sistema, escriba uno de los comandos siguientes para compilar
el ejemplo (la ruta de acceso a su archivo ser ligeramente distinta).

Para Visual Basic, utilice vbc.exe y el siguiente comando con el fin de hacer
referencia a las bibliotecas del sistema necesarias para ejecutar su aplicacin de
ADO.NET.

vbc.exe sample.vb /r:System.dll /r:System.Data.dll


/r:System.Data.OracleClient.dll /r:System.Xml.dll

Para C#, utilice csc.exe y el siguiente comando con el fin de hacer referencia a las
bibliotecas del sistema necesarias para ejecutar su aplicacin de ADO.NET.

csc.exe sample.cs /r:System.dll /r:System.Data.dll


/r:System.Data.OracleClient.dll /r:System.Xml.dll

6.- El compilador crear un ejecutable denominado sample.exe. Escriba "sample.exe"


en el smbolo del sistema para ejecutar el ejemplo compilado.

Fuente: https://msdn.microsoft.com/es-pe/library/aa719474(v=vs.71).aspx

Вам также может понравиться