Sei sulla pagina 1di 8

TEMA 6.

Fundamentos de ADO.NET

Indice
Introduccin. Arquitectura ADO.NET
Clases fundamentales de ADO.NET

1. Introduccin
ADO.NET consiste en un conjunto de clases que permiten a las
aplicaciones .NET conectar con fuentes de datos (normalmente bases de
datos relacionales), ejecutar comandos y manipular los datos.

Las libreras de ADO.NET se pueden utilizar de dos formas diferentes:


- Acceso a Datos Conectado (connected layer)
Nuestro cdigo base explcitamente conecta y desconecta del origen de
datos. Se mantiene la conexin abierta mientras se manipulan los datos.
Los objetos que se utilizan son : Connection, Command y DataReader.

- Acceso a Datos Desconectado (disconnected layer)


Se trabaja con una copia externa de los datos, que mantiene el objeto
DataSet. Los datos se obtienen a travs del objeto DataAdapter. Una vez
obtenidos los datos la conexin al origen de datos se cierra
automticamente. Los cambios realizados en el DataSet se trasmiten al
origen de datos a travs del objeto DataAdapter.
1. Introduccin
ADO.NET DATA PROVIDERS
Un proveedor de datos(data provider) es un conjunto de clases que permiten el acceso a
una base de datos especfica, ejecutar comandos SQL, y obtener datos. Esencialmente un
data provider hace de puente entre la aplicacin y el origen de datos.

Las clases que conforman un proveedor de datos incluyen:


- Connection
Este objeto se utiliza para establecer la conexin a un origen de datos.

- Command
Este objeto se utiliza para ejecutar sentencias SQL o procedimientos almacenados.

- DataReader
Este objeto proporciona un acceso rpido, de slo lectura, y slo hacia delante, de los
datos obtenidos de una consulta.

- DataAdapter
Este objeto realiza dos tareas. En primer lugar se puede utilizar para rellenar un
DataSet (una coleccin sin conexin, de tablas y relaciones), con informacin
obtenida de un origen de datos. Y en segundo lugar se puede utilizar para aplicar
cambios a un origen de datos, de acuerdo a las modificaciones hechas en el
DataSet.

1. Introduccin
Acceso a datos a travs de un proveedor de datos de ADO.NET

Proveedor de Datos
Objeto Connection Objeto DataAdapter
Transaction Select Command
Cliente
Objeto Command Insert Command
Parameter Collection
Update Command

Objeto DataReader
Delete Command

Base de
datos
1. Introduccin
En ADO.NET no hay un proveedor de datos genrico. En ADO.NET
existen diferentes proveedores de datos.
Cada proveedor de datos tiene una implementacin propia de las clases
Connection, Command, DataReader y DataAdapter, optimizadas para el
SGBD.

El framework .NET contiene


4 proveedores:
- SQL Server Provider
- OLE DB Provider
- Oracle Provider
- ODBC Provider

Por ejemplo: si se necesita crear una conexin a una base de datos


SQL Server, se utilizar la clase llamada SqlConnection.

2. Clases fundamentales en ADO.NET


Las clases en ADO.NET estn agrupadas en varios namespaces. Cada
proveedor de datos tiene su propio namespace. Las clases genricas
como DataSet, se almacenan en el namespace System.Data

Namespace Descripcin
System.Data Contiene las clases que modelan
columnas, relaciones, tablas, datasets,
filas, vistas y restricciones. Tambin
contiene los interfaces implementados
por los objetos de datos basados en
conexin
System.Data.Common Contienen las clases que implementan
algunos de los interfaces del
System.Data. Los proveedores de datos
heredan de estas clases para
implementar sus versiones
especializadas.
2. Clases fundamentales en ADO.NET
Namespace Descripcin

System.Data.OleDB Contiene las clases necesarias para conectar con un


proveedor OLE DB. Se incluyen OleDbCommand,
OleDbConnection and OleDbDataAdapter.

System.Data.SqlClient Contiene las clases necesarias para conectar con una


base de datos SQL Server. Se incluyen SqlCommand,
SqlConnection and SqlDataAdapter.

System.Data.OracleClient Contiene las clases necesarias para conectar con una


base de datos Oracle. Se incluyen OracleCommand,
OracleConnection and OracleDataAdapter.

System.Data.Odbc Contiene las clases necesarias para conectar con la


mayora de drivers ODBC. Se incluyen OdbcCommand,
OdbcConnection and OdbcDataAdapter.

System.Data.SqlTypes Contiene las estructuras que equivalen a los tipos


nativos de datos en SQL Server.

2. Acceso a datos conectado


La interaccin con la base de datos se realiza utilizando los
objetos, Connection, Command y Data Reader del proveedor de
datos.

Pasos para conectar a una base de datos y leer los registros:


1. Configurar y abrir un objeto Connection.
2. Configurar un objeto Command, especificando el objeto
Connection sobre el que se ejecuta.
3. Llamada a ExecuteReader(), del objeto Command.
4. Procesar cada registro utilizando el mtodo Read() del
Data Reader.

Prctica 1.
3. Acceso a datos desconectado
La interaccin con la base de datos se realiza utilizando los
objetos, Connection, Command y DataAdapter.

El DataAdapter obtiene los datos del origen de datos y los pasa al


objeto DataSet. (mtodo Fill)

Un DataSet contiene una copia en memoria de los datos


obtenidos a travs del DataAdapter.

Los datos se modifican en el DataSet, pero no son modificados


fsicamente en la base de datos hasta que explcitamente(mtodo
Update), no se le indica al DataAdapter que modifique el origen
de datos con los cambios realizados en el DataSet.

3. Acceso a datos desconectado


DATASET
Un objeto DataSet, se utiliza para trabajar en modo desconectado con un
origen de datos.
Se produce una conexin a la base de datos y se rellena el DataSet con una
copia de la informacin existente en la base de datos.
Los cambios realizados en el DataSet se mantienen en memoria.
Para realizar los cambios en la base de datos, necesitamos reconectar a la
BD y aplicar los cambios.
Los cambios se realizan en la base de datos a travs de un DataAdapter, en
el cual estn definidas las distintas operaciones para modificacin e insercin
de datos (SelectCommand, InsertCommand, UpdateCommand,
DeleteCommand).

Aplicacin Cliente

DataSet Data Adapter Database


3. Acceso a datos desconectado
DATASET. COMPONENTES DataSet
La clase DataSet incluye la coleccin DataRelationCollection
DataTableCollection
Tables de tablas de datos y la
coleccin Relations de objetos DataRelation
DataTable
DataRelation.
La clase DataTable incluye la Columns

coleccin Rows de filas de tabla, la DataColumn


coleccin Columns de columnas de
datos
La clase DataRow incluye la propiedad Rows
RowState, cuyos valores indican si la Row
fila cambi, y de qu modo, desde que
la tabla de datos se carg por primera
vez desde la base de datos. Entre los Constraints
posibles valores para la propiedad
Constraint
RowState se encuentran Deleted,
Modified, New y Unchanged.

3. Acceso a datos desconectado


DATASET. MTODOS

AcceptChanges() : Se aceptan los cambios realizados en el DataSet, desde que se carg,


o desde la ltima llamada a AcceptChanges()

RejectChanges() : Se deshacen los cambios realizados en el DataSet, desde que se


carg, o desde la ltima llamada a AcceptChanges()

Clear() : Se vacia el DataSet, eliminando cada fila de cada DataTable que contiene el
DataSet.

Clone() : Se clona la estructura del DataSet, incluyendo todos los DataTable, las relaciones
y las restricciones.
Copy() : Se copia tanto la estructura como los datos del DataSet.

GetChanges() : Se devuelve una copia del DataSet, que contiene todos los cambios
realizados desde la ltima vez que se carg o la desde la ltima vez que se llam a
AcceptChanges.
3. Acceso a datos desconectado
Ejemplo de Acceso a Datos.
Crear una aplicacin Consola y aadir el siguiente cdigo.
using System.Data;
using System.Data.SqlClient;
// En el Main, aadir
static void Main(string[] args)
{
string cnn = "Data Source=LOCALHOST\\SQLEXPRESS; Initial Catalog=Northwind;Integrated Security=true";
DataSet miDs=new DataSet("dsRegiones");
SqlDataAdapter miDa = new SqlDataAdapter("Select * from Region",cnn);
miDa.Fill(miDs, "Regiones");
// Imprimimos los nombre de columnas
for (int curCol = 0; curCol < miDs.Tables["Regiones"].Columns.Count; curCol++)
{
Console.Write(miDs.Tables["Regiones"].Columns[curCol].ColumnName.Trim() + "\t");
}
Console.WriteLine("\n-------- DATOS ------ ");
// Imprimimos las filas
for (int curRow = 0; curRow < miDs.Tables["Regiones"].Rows.Count; curRow++)
{
for (int curCol = 0; curCol < miDs.Tables["Regiones"].Columns.Count; curCol++)
{
Console.Write(miDs.Tables["Regiones"].Rows[curRow][curCol].ToString() + "\t\t");
}
Console.WriteLine();
}
Console.ReadKey();
}

4. Controles de Datos en Windows


Forms
Controles de datos:
DataGridview: Visualiza los datos en una tabla, que muestre en las columnas los
atributos y en la filas los registros del dataset. Permite la modificacin de registros.

BindingNavigator: Control que permite la navegacin entre registros y la edicin


y creacin de registros.

Los controles de datos se vinculan a un dataset que habremos configurado


previamente, mediante el men Data Add new Data Source

Vincularemos un control a un origen de datos de nuestra aplicacin mediante la


propiedad DataDataBindings del control.

Se genera un componente de datos TableAdapter que encapsula los objetos:


connection, command y dataAdapter asociados al dataSet.
4. Controles de Datos en Windows
Forms

DATAGRIDVIEW
BINDINGNAVIGATOR

Prctica 2: GridView.
Prctica 3: Visualizacin y desplazamiento de registros.
Prctica 4: BindingNavigator
Prctica 5: Formulario Maestro-Detalle.

Potrebbero piacerti anche