Vous êtes sur la page 1sur 32

m 

6 

ƥ Introducir Microsoft® ADO.NET


ƥ Mostrar la evolución de
ADO a ADO.NET
ƥ Introducir los componentes primarios
de ADO.NET
m 6
 

› 
 

   

 ›
!"#$% › """ """



›  
 
m 6  m 6

ƥ ADO
½ Diseñado para acceso conectado
½ Vinculado al modelo físico de los datos
½ El RecordSet es el contenedor central de datos
½ El RecordSet es una tabla que contiene todos los
datos
G Obtener datos de más de una tabla u origen, requiere un
JOIN en la base
G Los datos son Ơaplanadosơ: pierden sus relaciones y la
navegación suele ser secuencial
½ Los tipos de datos se encuentran relacionados con
tipos COM/COM+
½ Los datos se comparten por Ơmarshalling COMơ
½ Hay problemas para enviar información a través de
Ơmurallas de fuegoơ (DCOM, datos binarios)
m 6  m 6

ƥ ADO.NET
½ Diseñado para acceso desconectado
½ ¡Se puede modelar la información por lógica!
½ El  t Set reemplaza al RecordSet
½ El  t Set puede contener múltiples tablas
G No se requieren JOIN
G Se preservan las relaciones: La navegación es relacional
½ Los tipos de datos sólo están vinculados al esquema
de XML
½ No se requieren conversiones de tipos de datos
½ XML, como HTML, es texto plano: ƠPasa las barrerasơ
  m 6

ƥ Interoperabilidad por el uso de XML
½ Estándar abierto
½ Texto descifrable por ƠHumanosơ
½ Los datos se describen a sí mismos
½ Se usa en todas las transferencias de datos en
ADO.NET
ƥ Escalabilidad por el  t Set desconectado
½ No se mantienen conexiones por períodos
largos
½ No se producen Ơbloqueosơ en la base de datos
½ Trabaja como la Web ƠToco y me voyơ
ƥ Facilidad en el Mantenimiento
½ Separación de la lógica de datos y la interfaz del
usuario
×  
ƥ El modelo de Objetos de ADO.NET
½ 6  DataSet
½ Proveedores administrados
ƥ Namespaces relacionados con
ADO.NET
½ System.Data
½ System.Data.OleDb
½ System.Data.Internal
½ System.Data.Sql
½ System.Data.SqlTypes
  
m 6

!"#$%

 "

"'%( "& "   "!



     
m 6

ƥ  t Set
ƥ Proveedores administrados
J   
ƥ Contiene las bases de ADO.NET
ƥ Namespace centrado en Datos
ƥ Provee los mecanismos para trabajar con y
sobre los datos
½ Clases y métodos para manipular los datos
½ Habilidad para crear vistas de los datos
½ Formas para representar lógicamente los datos
½ Permite la utilización de XML para ver, compartir
y almacenar datos
J   
 " Contiene las clases Ơprincipalesơ de ADO.NET
 Persistencia en memoria de los datos

% Persistencia en memoria de la tabla de la base de datos

 ) Permite manipular una fila en un  t  e

  Permite definir columnas en un  t  e

 Puede relacionar 2  t  es entre sí

* ) Presenta una vista del  t Set


J   J
 %
%
 )

   
* )
   


%

%
J    J 
ƥ Un repositorio en memoria de datos desde un
origen
ƥ Forma común de representar y manipular datos
½ Contendor universal
½ No sólo para base de datos
ƥ Representación lógica o física de los datos;
depende de:
½ La consulta / Conjunto de resultados
½ Donde existen  t  es y Re tions
ƥ Diseñado para estar desconectado del origen
½ Conectar, ejecutar la consulta, desconectar
ƥ Se utiliza XML para leer y almacenar, tanto los
datos como el Esquema
J    J 
ƥ Se usan colecciones para agregar Tablas y
relaciones
ƥ Propiedades importantes:
½  es:
Devuelve la colección de objetos  t  e
½ Re tions:
Devuelve la colección de  t Re tions
½ Relacionadas con XML
J    J 

Contenedor Universal de datos


DataSet: No sólo para bases
de datos
J      
ƥ Puede ser vinculado a una tabla física de una base
ƥ Y relacionarla con otras a través de  t Re tions
ƥ Bloqueo concurrente optimista
ƥ Propiedades importantes:
½ ×ons: Devuelve la colección de  t ×ons como
×ons×oection
½ Rows: Devuelve objetos  t Row como una
Rows×oection
½   rentRe tions: Devuelve una Re tions×oection
½ ×onstr ints: Devuelve la ×onstr ints×oection de la
tabla
½  t Set: Devuelve el conjunto de datos de la
 t  e
½  ri ryKey: Obtiene los  t ×ons que conforman
la clave primaria de la tabla
J   J   
ƥ Crear una  t  e y agregarla al  t Set
DataSet ds = new DataSet();

// Crear el objeto ³Clientes´.


DataTable dt= new DataTable( ³Clientes´ );

// Crear y agregar columnas


// 1. Explícitamente
DataColumn dc = new DataColumn( ³ID´, Int16 );
dt.Columns.Add( dc );

// 2. Implícitamente.
dt.Columns.Add( ³Nombre´, String );
dt.Columns.Add( ³Apellido´, String );

// Agregar el objeto DataTabla al DataSet


ds.Tables.Add( dt );
J      
ƥ Utilizada para crear relaciones lógicas
½ Entre dos (2) objetos  t  e
½ Requiere un objeto  t ×on de cada  t  e
½ El tipo de datos À t ype) de ambas  t ×ons
debe ser el mismo
GNo es posible relacionar un |nt32 con un String
½ Se le asigna un nombre (¡por el desarrollador!)
G DataRelation dr=new DataRelation _
(³miRelacion´,...)
ƥ Permite navegación por relaciones
ƥ Re tions×oection contiene todas las
 t Re tions
½ Se accede a través de la propiedad Re tions del
 t Set
J      
ƥ Como crear un  t Re tion:
½ Obtener los objetos  t ×on a relacionar
½ Crear y nombrar un  t Re tion usando las
columnas
½ Agregar la relación al  t Set

// Obtener las columnas a utilizar...


DataColumn colPadre, colHija;
colPadre= DataSet.Tables["Clientes"].Columns["ID"];
colHija = DataSet.Tables[³Pedidos³].Columns["IDCliente"];

// Crear el DataRelation llamado ³CliPedidos´...


DataRelation dr;
dr = New DataRelation(³CliPedidos", colPadre,
colHija);
// Agregar la relación al DataSet...
ds.Relations.Add( dr );
J    J !"
ƥ El  t Set puede leer y escribir XML desde sus
datos y del esquema
½ O sea: es posible crear o modificar un  t Set usando
XML
ƥ Método de lectura con formato XML:
½ ËetX: Obtiene los datos del  t Set
(incluyendo el esquema)
½ ËetXSche : obtiene el esquema XSD del
DataSet
ƥ Para escribir: 3riteX, 3riteXSche
J    #$
ƥ Crea múltiples vistas de los objetos  t  e
ƥ Vinculable a controles
ƥ Propiedades importantes:
½ |te: Obtiene una fila de una tabla determinada
½  e: Obtiene o asigna el objeto  t  e
½ Sort: obtiene o asigna la/s columna/s y el
ordenamiento
½ RowFiter: Obtiene o asigna la expresión para filtrar la
vista
½ RowSt teFiter: Indica o asigna el estado del filtro
G ëone, Unch nged, ëew, eeted, Modified×rrent, y
otros
J    #$
ƥ Creando objetos DataView
DataView vista1 = new DataView( miTabla );
DataView vista2 = new DataView( miTabla );

// La vista ordenada por Apellido


vista1.Sort = ³Apellido ASC´;

// Filtrar para ver sólo los modificados


vista2.RowStateFilter= DataViewRowState.ModifiedOriginal;

// Vincular a un control de usuario...


DataGrid myGrid = new DataGrid();
myGrid.SetDataBinding( view1, ³Clientes´);

//...
J%  % &#$
 %
%
 )
* )
 
 
  

 %

%
m 6
' m
ƥ Una colección de clases que permiten
acceder a los orígenes de datos:
½ Microsoft SQL ServerƬ 2000, SQL Server 7,
y MSDE
½ Otros proveedores OLEDB
Por ejemplo: Oracle
½ Establece la conexión entre los DataSets y el
repositorio de los datos
ƥ Dos proveedores base:
½ OLEDB: Namespace Syste t e
½ SQL Server: Namespace Syste t Sq
' 

 "
"& "!
  6 
   6  
  6 
  6 

ƥ Dependen de
Syste t |ntern  t ×oectionB se
para varias clases heredadas
6 ×
J×
ƥ Representa una única sesión con un origen
de datos
ƥ Exponen funcionalidad de transacciones
ƥ Ejemplo de Conexión e×onnection:
String conStr="Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=NWIND_RW.MDB";
OleDbConnection aConn = new OleDbConnection(conStr);
aConn.Open();
// Execute Queries using OleDbDataSetCommand Class
aConn.Close();
6 m 
ƥ Es un ƠPuenteơ entre el  t Set y el origen de
datos
½ Hereda de la clase  t d pter
ƥ Es el mecanismo para actualizar un  t Set
hacia su origen


  

6 m 
ƥ Propiedades de InterDs:
½ Objetos e×o nd que contienen los
procedimientos (o sentencias SQL), para las distintas
acciones
G eete×o nd:
G |nsert×o nd:
G Seect×o nd:
G Upd te×o nd:
½  eM ppings: Definen las relaciones de los
 t  e obtenidos por los comandos OleDb de Select
ƥ Hereda mDtodos de la clase DbDataAdapter
½ public virtual int Fill( DataSet ?  );
½ public virtual int Update( DataSet ?   );
6 ×
ƥ Representa una consulta a ejecutar en la base de
datos
ƥ Propiedades:
½ ×onnection: Conexión utilizada (Objeto
OleDbConnection)
½ ×o ndext: Sentencia a ejecutar
½ ×o ndype: Tipo de sentencia asignada
GTexto, Procedimiento Almacenado, o Nombre de la
tabla
½ ×o ndieot: Cantidad de segundos para que se
considere Ơfuera de tiempoơ la ejecución de una
sentencia
6   
ƥ Permite acceso secuencial, de sólo lectura
ƥ Modelo de programación más Ơlivianoơ
½ Con menor sobrecarga que el
e t d pter
ƥ Se obtiene por el método ExecteRe der
de un e×o nd
ƥ Depende del e×o nd hasta
finalizar la lectura
½ Mantiene la conexión abierta
6   
ƥ Propiedades Importantes:
½ Fied×ont: Cantidad de Columnas del
conjunto de datos
½ |s×osed: Indica el estado del Conjunto de
datos
½ Recordsffected: La cuenta de registros
obtenidos
ƥ Métodos para obtener Datos:
½ Por tipo de dato e índice de la columna:
ËetString, Ëet|nt32, etc.
½ Re d: Desplaza al siguiente registro

ƥ ADO.NET es la evolución de ADO
ƥ Es desconectado, para acompañar el
modelo basado en Web
ƥ Muy flexible para trabajar con Datos
ƥ Aumenta las capacidades de organizar
lógicamente los datos
ƥ Amplio soporte para XML
½ Lo que permite mayores habilidades para
trabajar y compartir datos
ƥ Interactúa con una gran variedad de
orígenes