Sei sulla pagina 1di 26

Capítulo III

Programación
profiesional ADO .NET con
acceso a base datos

Programación
Visual II
Objetivo
Caracterizar el componente ADO .NET,
mediante el análisis de sus principios
básicos de funcionamiento y su estructuras.
Para poder acceder a las base de datos.
Temas a Tratar
Introducción a ADO .NET
Base de datos relacionales
Escenario en modo conectado
Escenario en modo desconectado
Proveedores acceso a datos
Arquitectura de ADO .NET
Clases de ADO .NET
Acceso a Datos: ADO.NET
System.Data
Common SqlClient
OracleClient OleDb
Odbc SqlTypes

System.Xml
XSLT Serialization
XPath Schema
Acceso a Bases de Datos Relacionales
Escenario Conectado
Un entorno conectado es uno en el cual los
usuarios están constantemente conectados
a la fuente de datos
Ventajas:
 Mayor seguridad
 Mejor control de concurrencia
 Los datos se mantienen actualizados
Desventajas:
 Se requiere una conexión constante (consume
recursos del servidor)
 Escalabilidad
Acceso a Bases de Datos Relacionales
Escenario Desconectado
En un entorno desconectado, una parte de
los datos del repositorio central se copia y
modifica en forma local, para luego
sincronizarse con éste.
Ventajas
 Se puede trabajar en forma independiente
 Mayor escalabilidad y performance
Desventajas
 Los datos no están sinconizados
 Resolución manual de conflictos
ADO.NET- Proveedores de Acceso
a Datos
SQL Server/Access (System.Data.SqlClient)
OLE DB (System.Data.OleDb)
ODBC (System.Data.Odbc)
Oracle (System.Data.OracleClient)
Otros provistos por terceros (MySQL,
PostgreSQL, DB2, etc..)
ADO.NET vs. ADO
ADO.NET – Accediendo a datos
Conectado
En un escenario conectado,
los recursos se mantienen
en el servidor hasta que la
conexión se cierra
1) Abrir Conexión
2) Ejecutar Comando
3) Procesar Filas en
DataReader
4) Cerrar Reader
5) Cerrar Conexión
ADO.NET – Accediendo a datos
Desconectado
En un escenario desconectado, los
recursos no se mantienen en el
servidor mientras los datos se
procesan
1) Abrir Conexión
2) Llenar DataSet mediante
DataAdapter
3) Cerrar Conexión
4) Procesar DataSet
5) Abrir Conexión
6) Actualizar fuente de datos
mediante DataAdapter
7) Cerrar Conexión
ADO.NET - Arquitectura
ADO.NET- Clases más comunes

Maneja lala conección


Maneja conección aa una
una base
base de
de
Base de Datos datos
datos
Ejecuta comandos
Ejecuta comandos contra
contra una
una base
base
de datos
de datos
XxxConnection
XxxConnection Intercambia datos
datos entre
entre un
un dataset
dataset
Intercambia
yy una
una base
base de
de datos
datos
XxxCommand
XxxCommand
Copia local
Copia local de
de datos
datos relacionales
relacionales

XxxDataAdapter Provee acceso


Provee acceso aa datos
datos
XxxDataAdapter
read-only, Forward-only
read-only, Forward-only

DataSet
DataSet XxxDataReader
XxxDataReader
ADO.NET- DataSet

DataSet DataTable

DataColumn

DataTable
DataRow

Relaciones
Esquema XML Restricciones
Práctica – Conexión a bases de
datos en acces
Conexión a BD
OleDbConnection cn = new OleDbConnection();
cn.ConnectionString = "Data
Source=\"C:\\Prueba_Access\\Prueba_Access\\Base\\SISF
AC.mdb\";Provider=\"Microsoft.Jet.OLEDB.4.0\";";
cn.Open();//Abre mi conexion a la bd
cn.Close();//

"Data Source=(local); Initial Catalog=SISCOM; Integrated Security=True";

SqlConnection conexion = new SqlConnection("workstation id=P4;packet


size=4096;user id=sa;password=integrador4;data source=P4;persist security
info=False;initial catalog=usuarios");
OleDbDataAdapter DataTable
DataTable mitabla = new DataTable();
DataSet tabla=new DataSet();

OleDbDataAdapter canal;
string sql = "SELECT * FROM CLIENTE";
canal = new OleDbDataAdapter(sql,cn);
canal.Fill(mitabla);
OleDbConnection cn = new OleDbConnection();
OleDbDataAdapter canal;
DataTable mitabla = new DataTable();
DataSet tabla=new DataSet(); Acceder a BD y mostrar
try
{
cn.ConnectionString = "Data
Source=\"C:\\Prueba_Access\\Prueba_Access\\Base\\SISFAC.mdb\";
Provider=\"Microsoft.Jet.OLEDB.4.0\";";
cn.Open();//Abre mi conexion a la base de datos
string sql = "SELECT * FROM CLIENTE";
canal = new OleDbDataAdapter(sql,cn);
canal.Fill(mitabla);
dataGridView1.DataSource = mitabla;
cn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
cn = null;
}
}
OleDbConnection cn = new OleDbConnection();
OleDbCommand comm = new OleDbCommand();
try
Registrar datos
{
cn.ConnectionString = "Data
Source=\"C:\\Prueba_Access\\Prueba_Access\\Bas
e\\SISFAC.mdb\";Provider=\"Microsoft.Jet.OLEDB.4 .0\";";
cn.Open();//Abre mi conexion a la base de datos
comm.CommandType = CommandType.Text;//SQL catch (Exception ex)
comm.CommandText = "INSERT INTO CLIENTE {
VALUES(@Cod,@Des,@Rep,@Dir,@Tel)";
comm.Connection = cn;
MessageBox.Show(ex.Message);
comm.Parameters.AddWithValue("@Cod",textBox1.Text);
}
comm.Parameters.AddWithValue("@Des",textBox2.Text);
comm.Parameters.AddWithValue("@Rep", textBox3.Text); finally
comm.Parameters.AddWithValue("@Dir", textBox4.Text); {
comm.Parameters.AddWithValue("@Tel", cn = null;
Convert.ToInt32(textBox5.Text)); }
comm.ExecuteNonQuery();//Ejecuteme sin devolver nada
MessageBox.Show("Datos guardados");
cn.Close();
}
Novedades en ADO.NET 2.0
API independiente del proveedor ADO.NET
 Modelada bajo el patrón “Abstract Factory”
Operaciones Asincrónicas
 Permite ejecutar comandos contra la base de datos de
manera asincrónica no bloqueante
Multiple Active Result Sets (MARS)
 Permite tener múltiples DataReaders abiertos sobre la
misma conexión
Novedades en ADO.NET 2.0
Integración y aprovechamiento de características de
SQL Server 2005
 Notification Services
 Service Broker
 Tipo de dato XML
 Soporte a Servicios Web
Mejoras en el DataSet y DataTable
 Performance
 Serialización
 Soporte a XML
ADO.NET 2.0 – API Independiente
Namespace System.Data.Common

DbCommand DbCommandBuilder DbConnection

DataAdapter DbDataAdapter DbDataReader

DbParameter DbParameterCollection DbTransaction


DbProviderFactory DbProviderFactories DbException
ADO.NET 2.0 – API Independiente
Interfaces IDb* (ej: IDbConnection)

Provider-
Independiente
clases base abstractas Db* (ej: DbConnection) del código de
la aplicación
en esta capa

Implementa la clase base Db*

Provider-
3rd
3rd específico en
Sql OleDb ODBC Oracle el código de la
Party 1 Party 2
aplicación en
esta capa
ADO.NET 2.0 - DataSet
Mejoras de performance
 Mantienen indices internos de los registros de sus
DataTables
Serialización binaria del contenido
 El DataSet 1.x es siempre serializado a XML
 Bueno para integrar datos, malo en
performance
 El DataSet 2.0 soporta serialización binaria
 Rápido y compacto
 DataSet.RemotingFormat = SerializationFormat.Binary
ADO.NET 2.0 - DataTable
Operaciones comunes del DataSet también
disponibles en el DataTable:
 ReadXml, ReadXmlSchema, WriteXml,
WriteXmlSchema, Clear, Clone, Copy, Merge,
GetChanges
DataTable es auto-serializable:
 Buen mecanismo para transmitir datos en una
aplicación distribuída
ADO.NET 2.0 - Actualizaciones
Batch
ADO.NET 2.0 permite ejecutar múltiples
instrucciones SQL sobre una base de datos
de forma batch, usando el sp_executesql
Reduce tráfico de red
DataAdapter.UpdateBatchSize =
batch_size
Trabaja con transacciones
Trabaja con los proveedores para SQL
Server y Oracle
© 2006 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Potrebbero piacerti anche