Académique Documents
Professionnel Documents
Culture Documents
OBJETIVOS
En un documento en Word elabore un cuadro comparativo
entre objetos datatablecollection, dataadapter y objetos
datareader. Enva tu archivo a travs de este medio.
ADO.NET
ADO.NET es un conjunto de clases que exponen servicios de acceso a datos para el
programador de .NET. ADO.NET ofrece abundancia de componentes para la creacin de
aplicaciones de uso compartido de datos distribuidas. Constituye una parte integral de .NET
Framework y proporciona acceso a datos relacionales, XML y de aplicaciones. ADO.NET
satisface diversas necesidades de desarrollo, como la creacin de clientes de base de datos
de aplicaciones para usuario y objetos empresariales de nivel medio que utilizan
aplicaciones, herramientas, lenguajes o exploradores de Internet.
Arquitectura de ADO.NET
Componentes de ADO.NET
Existen dos componentes de ADO.NET que se pueden utilizar para obtener acceso a datos y
manipularlos:
Proveedor
datos
de
Framework
OLE DB
Proveedor
datos
de
Framework
ODBC
Proveedor
datos
de
Framework
Oracle
Descripcin
Connection
DataReader
DataAdapter
CommandBuil
der
Conexiones
Para establecer la comunicacin con bases
representan mediante clases especficas
SqlConnection. Los comandos viajan por
resultados en forma de secuencias que puede
insertar en un objeto DataSet.
de
de
las
leer
Desconectar();
(int)
(int)
Objetos DataReader
El objeto DataReader es, en cierto modo, sinnimo de un cursor de slo lectura y slo hacia
delante para datos. La API de DataReader es compatible con datos sin formato y con datos
jerrquicos. Cuando se ejecuta un comando en la base de datos, se devuelve un objeto
DataReader. El formato del objeto DataReader devuelto es distinto de un conjunto de
registros. Por ejemplo, podra utilizarse el objeto DataReader para mostrar los resultados
de una lista de bsqueda en una pgina Web.
La recuperacin de datos mediante DataReader implica crear una instancia del objeto
Command y de un DataReader a continuacin, para lo cual se llama a
Command.ExecuteReader a fin de recuperar filas de un origen de datos.
En el ejemplo siguiente se muestra cmo se utiliza un SqllDataReader, donde command
representa un objeto SqlCommand vlido.
Un DataAdapter se utiliza para recuperar datos de un origen de datos y llenar tablas con un
DataSet. El DataAdapter tambin resuelve los cambios realizados en el DataSet de vuelta
al origen de datos. Mediante el objeto Connection del proveedor de datos de .NET
Framework, DataAdapter se conecta a un origen de datos y utiliza objetos Command para
recuperar datos del origen de datos y resolver los cambios a dicho origen.
Ejemplo:
La propiedad PrimaryKey de una DataTable recibe como valor una matriz de uno o varios
objetos DataColumn, como se muestra en los ejemplos siguientes. En el primer ejemplo se
define una sola columna como clave principal.
DataColumn[] columns = new DataColumn[1];
columns[0] = DTarticulos.Columns["CodArt"];
DTarticulos.PrimaryKey = columns;
DTVentas.Columns["NroVta"].AutoIncrement = true;
DTVentas.Columns["NroVta"].AutoIncrementSeed = -1;
DTVentas.Columns["NroVta"].AutoIncrementStep = -1;
El mtodo Select se puede utilizar para devolver filas con valores de RowState o valores
de campo distintos. En el ejemplo siguiente se devuelve una matriz DataRow que hace
referencia a todas las filas que se han eliminado y se devuelve otra matriz DataRow que
hace referencia a todas las filas, ordenadas por Nombre, donde la columna CodArt es
mayor que 5.
DataRow[] deletedRows = DTarticulos.Select(
valores de clave principal de las filas del DataSet, el mtodo Fill agrega una nueva fila con
un RowState de Unchanged.
Ejemplo
Void Actualizar_BD(string Tabla, SqlDataAdapter DA)
{
SqlCommandBuilder builder = new SqlCommandBuilder(DA);
DataTable DTNewRows = DS.Tables[Tabla].GetChanges(DataRowState.Added);
DataTable DTModifRows = DS.Tables[Tabla].GetChanges(DataRowState.Modified);
DataTable DTDeletedRows = DS.Tables[Tabla].GetChanges(DataRowState.Deleted);
If (DTNewRows!= null)
{
DA.Update(DTNewRows)
DTNewRows.Dispose();
}
If (DTModifRows!= null)
{
DA.Update(DTModifRows)
DTModifRows.Dispose();
}
If (DTDeletedRows!= null)
{
DA.Update(DTDeletedRows)
DTDeletedRows.Dispose();
}
DS.Tables[Tabla].AcceptChanges();
}
Console.WriteLine();