Vous êtes sur la page 1sur 13

ADO.

NET es la ms reciente en una larga lnea de tecnologas de acceso a bases de datos que empez
hace varios aos con la interfaz de programacin de aplicaciones (API) de conectividad abierta para
bases de datos (ODBC).
.NET Framework incluye esta nueva tecnologa de acceso a datos, la cual es una mejora en la evolucin
de Microsoft

ActiveX

Data Objects (ADO). ADO.NET est diseada para aplicaciones distribuidas que
puedan necesitar operar en el Web. Esta funcin distintiva hace que ADO.NET sea totalmente diferente
de ADO. La arquitectura de su aplicacin determinar si usa ADO.NET o ADO.
Como parte de .NET Framework, Microsoft ofrece una biblioteca de clase para fines generales llamada la
Biblioteca de clase del marco de trabajo, el cual cubre todas las APIs existentes de Windows y ms. En
particular, incluye un nmero de bibliotecas frecuentemente utilizadas que ahora estn disponibles a
travs de objetos COM por separado. Entre stas se encuentran los modelos de objeto XML y ADO que
se han integrado en un grupo de clases llamado ADO.NET.
ADO.NET trata de unificar algunas de las mejores prcticas de hoy bajo el abrigo de .NET Framework. El
modelo general de programacin para acceso a datos es completo e increblemente poderoso.
Despus de terminar este mdulo, usted podr:
Describir ADO.NET y su arquitectura.
Diferenciar entre ADO y ADO.NET.
Describir los objetos nuevos y modificados de ADO.NET.
Describir los distintos Proveedores de datos de .NET.



ADO.NET no es una revisin de Microsoft ActiveX Data Objects (ADO) sino una forma nueva de
manipular datos que se basa en datos desconectados del Lenguaje de marcacin ampliado (XML).
Aunque el modelo de objetos ADO es relativamente fcil de usar, no proporciona todas las funciones
necesarias para desarrollar aplicaciones Web robustas y escalables cuando se usa desde Active Server
Pages (ASP). Esto es porque el modelo de objetos ADO fomenta las operaciones orientadas a
conexiones. Por ejemplo, tendra que escribir una gran cantidad de cdigo para recuperar y manipular
datos desde tres tablas relacionadas utilizando tres Conjuntos de registros desconectados.



En una aplicacin tradicional cliente/servidor, los componentes generalmente abren conexiones a
fuentes de datos, y las conexiones permanecen abiertas siempre que se est ejecutando la aplicacin.
Las conexiones abiertas a fuentes de datos no slo consumen recursos y aumentan el trfico en la red,
sino que tambin reducen el rendimiento y escalabilidad de la aplicacin.
Datasets desconectados
ADO.NET ha sido diseado para funcionar con Datasets desconectados para ayudar a vencer los
problemas antes mencionados. Las aplicaciones estn conectadas a la fuente de datos slo lo suficiente
www.WillyDev.Net
para recolectar y actualizar datos. ADO.NET, como ADO, proporciona una interfaz de acceso a datos
para comunicarse con fuentes de datos que cumplen con OLE DB, como Microsoft

SQL Server 2000.


Las aplicaciones del consumidor de uso compartido de datos pueden usar ADO.NET para conectarse a
estas fuentes de datos y recuperar, manipular y actualizar datos. Las aplicaciones tambin pueden usar
OLE DB para manipular datos guardados en formatos no relacionales, como Microsoft Excel.
Escalabilidad
ADO.NET tambin soporta la escalabilidad que requieren las aplicaciones que comparten datos y estn
basadas en el Web. Las aplicaciones Web deben dar servicio a decenas, cientos o inclusive miles de
usuarios. ADO.NET no retiene seguros extensos de bases de datos o conexiones activas que
monopolizan los recursos limitados. Esto permite que el nmero de usuarios crezca con slo aumentos
pequeos en las demandas de recursos de un sistema.
XML como el Formato de transmisin universal
ADO.NET usa XML como el formato de transmisin universal. Esto garantiza la interoperabilidad de las
plataformas siempre y cuando el componente receptor se ejecute en una plataforma en la que est
disponible un analizador XML. Cuando ocurre la transmisin a travs de XML, el receptor ya no tiene que
ser un objeto COM. El componente receptor ya no tiene ninguna restriccin arquitectnica. Cualquier
componente de software puede compartir datos ADO.NET siempre y cuando use el mismo esquema XML
que el formato para los datos transmitidos.



ADO.NET evolucion de la tecnologa Microsoft ActiveX Data Objects (ADO), que proporciona acceso a
datos independientemente de la plataforma. La ventaja bsica de la arquitectura ADO.NET es que
permite a los desarrolladores manipular datos sin importar la ubicacin de los mismos. La siguiente
figura ilustra la arquitectura ADO.NET.

Nota Se han realizado algunos cambios bastante significativos a las aplicaciones ADO
existentes para convertirlas en ADO.NET. Los cambios no tienen que realizarse
inmediatamente a las aplicaciones ADO existentes para que se ejecuten bajo ASP.NET,
como funciones ADO bajo ASP.NET. El trabajo necesario para convertir aplicaciones ADO en
ADO.NET vale la pena, ya que ADO.NET puede mejorar de manera importante al
rendimiento de su aplicacin.
www.WillyDev.Net
La pieza central de cualquier solucin de software usando ADO.NET es el Dataset. Un Dataset es una
copia en la memoria de los datos de la base de datos. Un Dataset puede contener datos de cualquier
cantidad de tablas o vistas de bases de datos. El Dataset constituye una vista desconectada de la base
de datos porque existe en la memoria sin una conexin activa a una base de datos que contenga las
tablas o vistas correspondientes. Esta arquitectura desconectada permite una mayor escalabilidad
solamente con usar los recursos del servidor de la base de datos cuando se lean o escriban desde la
base de datos.
La ventaja ms grande de utilizar un Dataset es que proporciona una vista de la base de datos con
varias tablas y sus relaciones, todas sin tener una conexin activa a la base de datos. Puede pensar en
un Dataset como una base relacional miniatura dentro de la memoria. Normalmente, se crea un
Dataset y se llena de manera programtica. Contiene varias tablas, cada una de las cuales corresponde
a una tabla o vista de la base de datos.
En aplicaciones con n niveles, normalmente los datos se pasan desde la base de datos a un objeto de
negocios de nivel medio y luego a la interfaz. Para acomodar el intercambio de datos, ADO.NET usa un
formato de persistencia y transmisin con base en XML. Es decir, para transmitir datos de un nivel a
otro, una solucin ADO.NET expresa los datos en memoria (el Conjunto de datos) como XML y
despus enva el XML a otro componente.
La siguiente ilustracin muestra los componentes principales de una solucin ADO.NET.

La arquitectura ADO.NET aprovecha XML. Debido a que XML es el formato para transmitir datos,
cualquier aplicacin Web que pueda leer el formato XML puede procesar datos.



ADO.NET es un ADO ms escalable e interoperable. La clave para enriquecer ADO con una mayor
www.WillyDev.Net
interoperabilidad y escalabilidad es la nocin de desconexin. Los DataSets desconectados ayudan a
mantener los recursos del sistema mientras que permiten que el cdigo de programacin del lado del
cliente implemente funcionalidades interesantes y atractivas, como clasificacin, filtro y modelos de
documento/vista.
ADO.NET difiere de ADO en muchos aspectos. Una de las diferencias fundamentales es que ADO tiene
un depsito de datos para la representacin en memoria de los datos en la base de datos - el RecordSet.
ADO.NET ofrece dos depsitos de datos, el DataReader y el DataSet. DataReader es equivalente a un
RecordSet en ADO de slo lectura y de slo hacia delante. La analoga ms cercana de un DataSet es
un RecordSet desconectado, aunque es mucho ms que eso. Analizamos ambos depsitos de datos con
ms detalle posteriormente en este mdulo. ADO.NET no tiene equivalente a RecordSets conectados y
actualizables de ADO. Esto se debe principalmente a que las aplicaciones distribuidas requieren de una
arquitectura escalable, lo cual requiere liberar conexiones de la base de datos tan pronto como se
recuperan los datos.
DataSets almacena datos en una memoria cach desconectada. La estructura de un DataSet es similar
a la de una base de datos. Contiene una coleccin de tablas e informacin sobre relaciones entre tablas.
La clase DataSet tiene una coleccin de tablas y una coleccin de relaciones. Cada tabla en la coleccin
de tablas tiene una coleccin de columnas y una coleccin de filas que representan los datos que se
mantienen en el DataSet. Estos objetivos representan el esquema del DataSet. La coleccin de filas
mantiene registro de su estado original junto con su estado actual de tal manera que el DataSet pueda
dar seguimiento a los cambios que han ocurrido. De manera adicional, el DataSet puede estar
serializado o no hacia o desde XML.
Nmero de tablas
Un RecordSet en ADO parece una tabla nica. Si un RecordSet va a contener datos de varias tablas de
la base de datos, deber usar una consulta JOIN, que ensambla los datos de las distintas tablas de la
base de datos en una sola tabla de resultado.
En contraste, un DataSet en ADO.NET es una coleccin de una o ms tablas. Las tablas dentro de un
DataSet se llaman tablas de datos; especficamente, son objetos DataTable.
Relaciones
Tpicamente, un DataSet tambin contiene relaciones. Una relacin entre un DataSet es anloga a una
relacin de una tecla ajena en una base de datos. En ADO.NET, una DataRelation representa la relacin.
Moverse a travs de datos
En ADO.NET, los mtodos que utiliza para leer o modificar datos difiere de los mtodos de programacin
que usa en ADO. En ADO, explora de manera secuencial a travs de las filas del RecordSet. En
ADO.NET, emplea un paradigma de navegacin, movindose de una fila de una tabla de datos a la fila o
filas correspondientes de otra tabla de datos siguiendo la relacin.
Datos desconectados
En ADO.NET, el DataSet proporciona acceso desconectado a los datos de la base de datos. En ADO, el
RecordSet puede proporcionar acceso desconectado, pero tpicamente se usa para proporcionar acceso
conectado.
Transmisin de datos
Para transmitir un RecordSet desconectado de ADO de un componente a otro, utiliza la clasificacin
COM. Para transferir un DataSet de ADO.NET, simplemente transmita un archivo XML. De hecho,
cuando serializa un DataSet a un flujo, el resultado es una representacin XML de ese DataSet. Esto es
www.WillyDev.Net
muy potente porque XML puede transmitirse fcilmente sobre el Web y las aplicaciones que se ejecutan
en cualquier plataforma pueden leerse y actualizarse utilizando un analizador XML.



Microsoft ActiveX Data Objects para .NET Framework (ADO.NET) es un conjunto de clases que
expone los servicios de acceso a datos al programador .NET. ADO.NET es una parte integral de .NET
Framework, proporcionando acceso a datos relacionales, XML y datos de aplicaciones. ADO.NET
soporta una variedad de necesidades de desarrollo, incluyendo la creacin de clientes front-end de base
de datos y objetos de nivel medio de negocios que utilizan las aplicaciones, herramientas, lenguajes y
exploradores de Internet.
ADO.NET no es solamente otra API para acceder a datos; ADO.NET le permite acceder a datos en el
Web, mientras que aprovecha el poder de la plataforma .NET.
Al disear la plataforma .NET, Microsoft modific el modelo ADO para hacerlo menos centrado en la
base de datos y ms capaz de funcionar en un ambiente acoplado libremente. En ADO.NET, Microsoft
hizo que ADO fuera consistente con la plataforma .NET. Sin importar si escribe Web Forms, Windows
Forms o servicios Web XML, si cuenta con una fuente de datos en su sistema, ADO.NET siempre
presenta el mismo conjunto de clases. Si decide mantenerse con ADO, an as puede utilizar .NET para
importar clases ADO. Sin embargo, esto involucrar una llamada al cdigo no administrado, el cual
disminuir el rendimiento de su aplicacin.
ADO como existe hoy y los Conjuntos de registros de ADO son herramientas tiles para manipular
datos en un escenario basado en Windows y en COM. Desafortunadamente, han perdido cada vez ms
su atractivo cuando un sistema evoluciona en la direccin de una interoperabilidad total en Internet. Por
ejemplo, los servicios Web XML no aceptan Conjutos de registros de ADO. El modelo ADO.NET
ayuda a vencer los inconvenientes existentes en ADO.
Existen dos partes principales del modelo ADO.NET: Los Proveedores de datos .NET y los objetos
ADO.NET.



Un Proveedor de datos .NET se utiliza para conectarse a bases de datos, ejecutar comandos y recuperar
resultados. Esos resultados se procesan directamente o se colocan en un Conjunto de datos de
ADO.NET para que se expongan al usuario de manera ad-hoc, combinados con datos de varias fuentes o
para estar remotos entre niveles. El Proveedor de datos .NET est diseado para ser ligero, creando una
capa mnima entre la fuente de datos y su cdigo, aumentando el rendimiento sin sacrificar la
funcionalidad.
Cuatro objetos centrales componen un Proveedor de datos .NET, como se muestra en la siguiente tabla:
Conexin, Comando, Lector de datos y Adaptador de datos.
www.WillyDev.Net
.NET Framework incluye Microsoft SQL Server .NET Data Provider y el Proveedor de datos .NET de
OLE DB.



Microsoft SQL Server .NET Data Provider utiliza su propio protocolo para comunicarse con SQL
Server. SQL Server .NET Data Provider es ligero y se desempea bien al acceder a una fuente de datos
SQL Server directamente sin agregar un OLE DB o una capa de Conectividad abierta para bases de
datos (ODBC).
Para utilizar SQL Server .NET Data Provider, debe tener acceso a Microsoft SQL Server 7.0 posterior.
Las clases de SQL Server .NET Data Provider se localizan en el espacio de nombre
System.Data.SqlClient. Para versiones anteriores de Microsoft SQL Server, utilice OLE DB .NET Data
Provider con SQL Server OLE DB Provider (SQLOLEDB).
Para usar SQL Server .NET Data Provider, necesita incluir el espacio de nombre
System.Data.SqlClient en sus aplicaciones.
[Visual Basic]
Imports System.Data.SqlClient

[C#]
using System.Data.SqlClient;



El Proveedor de datos .NET de OLE DB utiliza OLE DB nativo a travs de interoperacin COM que
habilita el acceso a datos. El Proveedor de datos .NET de OLE DB soporta transacciones tanto manuales
como automticas. Para transacciones automtica, el Proveedor de datos .NET de OLE DB se enumera
automticamente en una transaccin y obtiene detalles de la transaccin desde Windows 2000
Component Services.
Objeto Descripcin
Conexin Establece una conexin a una fuente especfica de datos.
Comando Ejecuta un comando en una fuente de datos. Expone Parmetros y puede
enumerar una Transaccin desde una Conexin.
Lector de datos Lee un flujo slo hacia delante y slo de lectura de datos desde una fuente de datos.

Adaptador de
datos
Llena un Conjunto de datos y resuelve actualizaciones con la fuente de datos.
www.WillyDev.Net
Para utilizar el Proveedor de datos .NET de OLE DB, tambin debe utilizar un proveedor de OLE DB.
Las clases del Proveedor de datos .NET de OLE DB se localizan en el espacio de nombre
System.Data.OleDb. Para usar el Proveedor de datos .NET de OLE DB, necesita incluir el espacio de
nombre System.Data.OleDb en sus aplicaciones.
[Visual Basic]
Imports System.Data.SqlClient

[C#]
using System.Data.SqlClient;



Dependiendo del diseo y la fuente de datos de su aplicacin, su eleccin de Proveedor de datos .NET
puede mejorar el rendimiento, capacidad e integridad de su aplicacin. La siguiente tabla muestra las
ventajas y limitaciones de cada Proveedor de datos .NET.



ADO.NET tiene algunos de los mismos objetos que ADO (como los objetos Connection y Command), e
introduce objetos nuevos, como DataSets, DataReaders y DataSetCommands.

Proveedor Detalles
Proveedor de datos .NET
de SQL Server
Se recomienda para aplicaciones de nivel medio que utilizan Microsoft
SQL Server 7.0 posterior.
Se recomienda para aplicaciones de nivel nico que utilizan Microsoft
Data Engine (MSDE) o Microsoft SQL Server 7.0 posterior.
Se recomienda por encima de del Proveedor OLE DB de SQL Server
(SQLOLEDB) con el Proveedor de datos .NET de OLE DB.
Para Microsoft SQL Server 6.5 anterior, deber usar el Proveedor OLE
DB de SQL Server con el Proveedor de datos .NET de OLE DB.
Proveedor de datos .NET
de OLE DB
Se recomienda para aplicaciones de nivel medio que utilizan Microsoft
SQL Server 6.5 anterior u Oracle.
Se recomienda para aplicaciones de nivel nico que utilizan bases de
datos Microsoft Access.
No se recomienda para usarse con bases de datos de Microsoft Access en
una aplicacin de nivel medio.
Actualmente, no hay soporte para el Proveedor OLE DB para ODBC
(MSDASQL).
www.WillyDev.Net


El objeto Connection se utiliza para establecer una conexin a una base de datos. El objeto
Connection tiene propiedades, como DataSource, UserID y Password que se necesitan para acceder
a una fuente de datos en particular. Una vez que se ha establecido una conexin a la fuente de datos,
los Comandos pueden ejecutarse contra la fuente de datos, y los conjuntos resultantes que se devuelven
en la forma de flujos pueden leerlos los Lectores de datos o almacenarse en objetos DataSet.
Existen dos tipos de objetos de Connection en ADO.NET: SqlConnection y OLEDBConnection.
Para crear un objeto SqlConnection en una aplicacin Visual Basic
1. Agregue una referencia al espacio de nombre System.Data.SqlClient, como se muestra en el
siguiente cdigo de Visual Basic:
Imports System.Data.SqlClient
2. Cree un objeto SqlConnection al pasar la fuente de datos, la informacin de seguridad y el
catlogo inicial al constructor, como se muestra en el siguiente cdigo de muestra:
Dim nwindConn As SqlConnection = _
New SqlConnection("Data Source=localhost; & Integrated Security=SSPI;" & _
"Initial Catalog=northwind")
3. Abra la conexin, usando el mtodo Open, como se muestra en el siguiente cdigo:
nwindConn.Open()



Un objeto Commmand representa un comando que se ejecutar contra una fuente de datos. Para una
fuente de datos SQL Server, esto pudiera ser una instruccin T-SQL o el nombre de un procedimiento
almacenado.
Si el comando que se ejecuta devuelve filas de datos, puede leer los datos utilizando un objeto
DataReader. Para comandos SQL, usara un objeto SqlDataReader. Tambin puede utilizar
parmetros de entrada y salida y regresar valores.
El objeto Commmand expone varios mtodos Execute que puede usar para realizar la accin
propuesta:
ExecuteReader: Ejecuta una consulta SQL o un procedimiento almacenado y devuelve un objeto
DataReader.
ExecuteNonQuery: Ejecuta una consulta SQL o un procedimiento almacenado y no regresa
registros.
ExecuteScalar: Recupera un valor nico (por ejemplo, un valor agregado) desde una base de
www.WillyDev.Net
datos. Esto requiere menos cdigo que utilizar el mtodo ExecuteReader y luego realizar las
operaciones necesarias para generar el valor nico utilizando los datos devueltos por un
SqlDataReader. Una consulta ExecuteScalar tpica puede formatearse como en el siguiente
ejemplo de Visual C#:
nwindCmd.CommandText = "Select count(*) as " & _
"NumberOfRegions from region";
Int count = (int) nwindCmd.ExecuteScalar();
En ADO.NET, puede usar dos tipos de objetos de comandos: SqlCommand y OleDbCommand.
Para crear un SqlCommand y ejecutar un comando SQL
1. Cree un objeto de tipo SqlCommand al pasar el comando SQL para que se ejecute y el objeto
Connection para que lo use el constructor, como se muestra en el siguiente cdigo de Visual
Basic:
Dim nwindCmd As SqlCommand = _
New SqlCommand("Select * from Customers", nwindConn)
2. Ejecute el mtodo ExecuteReader del objeto SqlCommand y almacene el flujo de filas que se
devuelve en un objeto SQLReader, como se muestra en la siguiente muestra de cdigo de
Visual Basic:
Dim nwindReader As SqlDataReader = _
nwindCmd.ExecuteReader(CommandBehavior.CloseConnection)
While nwindReader.Read()
MsgBox(nwindReader.GetString(0)
End While
nwindReader.Close()
nwindConn.Close()



Un DataReader es una vista de datos de slo lectura y slo hacia adelante. Proporciona una forma
simple y ligera de atravesar RecordSets. Por ejemplo, utilizar DataReader es una forma ideal para
mostrar simplemente los resultados de una lista de bsqueda en una pgina Web.
Cuando se recupera una gran cantidad de datos, mantener abierta la memoria se vuelve un problema.
Por ejemplo, leer 10,000 filas de una base de datos hace que una Tabla de datos asigne y mantenga
memoria para esas 10,000 filas por el tiempo de vida de la tabla. Si 1,000 usuarios hacen esto contra la
www.WillyDev.Net
misma mquina al mismo tiempo, se vuelve crtico el uso de la memoria. Para resolver estas
situaciones, el DataReader est diseado para producir un flujo de slo lectura y slo hacia delante
desde la base de datos. El DataReader recupera lotes de registros y los coloca en la memoria cach,
recuperando ms registros segn los necesite.
Un DataReader se devuelve despus de ejecutar un comando. Trabaja de manera similar a un
Conjunto de registros en ADO, permitindole simplemente recorrer los registros, como se muestra en el
siguiente cdigo de Visual Basic:
Dim nwindReader As SqlDataReader = _
nwindCmd.ExecuteReader(CommandBehavior.CloseConnection)
While nwindReader.Read()
MsgBox(nwindReader.GetString(0))
End While
nwindReader.Close()
ADO.NET incluye dos tipos de objetos DataReader: el SqlDataReader para datos SQL y el
OleDbDataReader para datos OLE. El objeto DataReader es especfico para la base de datos. El
comportamiento de SqlDataReader puede diferir del comportamiento de OleDbDataReader y de los
objetos DataReader adicionales que se introduzcan en el futuro.
Utilice los objetos OleDbCommand y SqlCommand y el mtodo ExecuteReader para transferir datos a
un DataReader.
Lectura de datos de un DataReader
Despus de que haya invocado el mtodo ExecuteReader del objeto Command, acceder a un registro
en el DataReader al invocar el mtodo Read. El posicionamiento predeterminado en el DataReader
est antes del primer registro; por lo tanto, debe invocar Read antes de acceder a cualquier dato.
Cuando ya no hay disponibles ms registros, el mtodo Read devuelve un valor nulo.
Lectura de campos desde el registro actual
Para obtener datos de campos en el registro, invoque un mtodo Get apropiado - por ejemplo,
GetDataTime, GetDouble, GetInt32 o GetString. El parmetro del mtodo Get es el valor ordinal del
campo que desea leer.
Por ejemplo, el siguiente cdigo de muestra C# lee los campos de nombre y apellido, ambos valores de
cadena, desde el primer registro del DataReader, al utilizar el mtodo GetString():
nwindReader.Close()
lblName.Text = nwindReader.GetString(1) + ", " + _
nwindReader.GetString(2)
Tambin puede hacer referencia a los campos de datos en el registro actual de DataReader por
nombre, y luego invocar una funcin apropiada de conversin, como se ilustra en el siguiente cdigo
muestra:
www.WillyDev.Net
nwindReader("au_fname").ToString()
Recorrer todos los registros
Para recorrer todos los registros en un DataReader, puede utilizar un circuito While, como se ilustra en
el siguiente cdigo muestra:
While nwindReader.Read()
'do something with the data
End While
Cerrar el DataReader
Mientras est en uso el DataReader, est ocupada la conexin asociada que sirve al DataReader. Por
lo tanto, debe invocar Close en el DataReader cuando termine de usarlo.
nwindReader.Close()



El DataSet es el componente central de la arquitectura desconectada de ADO.NET. El objeto DataSet
es vital para dar soporte a escenarios desconectados de datos distribuidos con ADO.NET. Es una
representacin de datos que residen en la memoria que proporciona un modelo consistente de
programacin relacional sin importar la fuente de datos. Como resultado, se puede utilizar con varias
fuentes de datos y datos XML, o se puede utilizar para administrar datos locales de la aplicacin.
El DataSet contiene una coleccin de uno o ms objetos DataTable conformados de filas y columnas de
datos as como de informacin principal de teclas, teclas ajenas, limitaciones y relaciones sobre los datos
en los objetos DataTable (ver figura). Los primeros cuatro de stos componen el esquema relacional del
DataSet, mientras que Rows es en donde se almacenan los datos reales.
www.WillyDev.Net

El DataSet tambin expone un modelo rico de programacin que slo es posible porque todos los datos
que se almacenarn en una memoria cach local son conocidos.
Durante el tiempo de ejecucin, los datos pasan de la base de datos a un objeto de negocios de nivel
medio y luego a la interfaz. Para acomodar el intercambio de datos, ADO.NET utiliza un formato de
persistencia y transmisin con base en XML. Es decir, para transmitir datos de un nivel a otro, una
solucin ADO.NET expresa los datos en memoria (el DataSet) como XML y despus enva el XML a otro
componente.
Utiliza el objeto SqlDataAdapter o OleDbDataAdapter para llenar un DataSet.



Aunque el objeto DataSet proporciona una herramienta para almacenamiento de datos en la memoria,
necesita otra herramienta para crear y empezar las distintas tablas. Esta herramienta es el objeto
DataAdapter. Representa una consola centralizada que oculta los detalles de trabajar con conexiones y
comandos.
El objeto DataAdapter permite la recuperacin y guardado de datos entre un objeto DataSet y el
almacn de datos fuente. Es responsable de jalar los datos desde el almacn fsico y colocarlos en las
tablas y relaciones de datos. El objeto DataAdapter tambin es responsable de transmitir cualquier
actualizacin, insercin o eliminacin de la base de datos fsica.
Se puede utilizar cualquier nmero de DataAdapters junto con un DataSet. Cada DataAdapter se
puede utilizar para llenar una o ms DataTables y resolver actualizaciones nuevamente en la fuente de
datos correspondiente. Se pueden agregar Relaciones de datos y Limitaciones al DataSet de manera
local, permitindole relacionar datos de varias fuentes de datos que no sean similares. Por ejemplo, un
DataSet puede contener datos de una base de datos Microsoft SQL Server, una base de datos DB2 de
IBM expuesta a travs de OLE DB y una fuente de datos que agilice el XML. Uno o ms DataAdapters
www.WillyDev.Net
manejaran la comunicacin en cada fuente de datos.
El DataAdapter tiene cuatro propiedades que recuperan datos de la fuente de datos y los actualiza en la
fuente de datos utilizando objetos Command. Estos son SelectCommand, UpdateCommand,
DeleteCommand e InsertCommand.
Estos objetos Command se utilizan cuando desea realizar varias actualizaciones a la vez. En lugar de
tener un procedimiento almacenado que haga todo, puede colocar instrucciones SQL en cada objeto e
invocar el mtodo Update.
El objeto DataAdapter existe en dos formas: objetos SQL DataAdapter y objetos OleDbDataAdapter.
La fuente de datos es Microsoft SQL Server versin 7.0 ( posterior) para objetos SQL DataAdapter y
es cualquier otro proveedor OLE DB para objetos OleDbDataAdapter.



Para mostrar los datos retenidos en un DataSet, necesita utilizar un objeto DataView. Un DataView
proporciona una vista personalizada de una tabla de datos. Puede considerar el DataView como el
equivalente de RecordSet desconectado de ADO, ya que contiene una vista nica encima de los datos
de la tabla. Puede usar un DataView para especificar criterios de filtrado y clasificacin y para buscar y
editar un DataSet.
DataView permite a los programadores establecer un orden de clasificacin predeterminado y filtrar
tablas individuales. Se pueden crear cualquier nmero de DataViews para habilitar distintas vistas de la
misma tabla. Adems, DataView permite que los DataViews se vinculen y utilicen para DataBinding.
Cada DataTable en un DataSet tiene una propiedad DefaultView, la cual devuelve la vista
predeterminada de la tabla. Puede acceder al DataView predeterminado en un DataSet de la siguiente
forma:
Dim dv As DataView
dv = ds.Tables("Authors").DefaultView
Tambin puede crear una vista de un subconjunto de datos en una DataTable. Por ejemplo, puede
establecer la propiedad RowFilter en una DataView para recuperar slo autores de California, de la
siguiente forma:
Dim dv as DataView
dv = New DataView (ds.Tables("Authors"))
dv.RowFilter = "state = 'CA'"



www.WillyDev.Net

Vous aimerez peut-être aussi