ADO .NET
ADO.NET es una evolucin de la arquitectura de acceso a datos
usada en el modelo de programacin Microsoft ActiveX Data
Objects (ADO). ADO.NET no reemplaza a ADO para el programador
COM; ms bien provee al programador .NET con acceso a base de
datos relacionales ,XML y data de aplicacin.
En este mdulo veremos:
El modelo de objetos de ADO.NET
Accesando datos con ADO.NET
Creacin de un DataAdapter que utiliza un sentencia SELECT
Creacin de un DataAdapter que utilice un procedimiento almacenado
Cmo llenar una tabla de un DataSet utilizando un DataAdapter?
Qu son los comandos de modificacin de datos?
XML y DataSates
Mtodos del objeto Dataset basados en XML
Sincronizacin de un DataSet con un objeto XMLDataDocument
Cmo sincronizar un DataSet con un objeto XMLDataDocument?
Manejando los errores provenientes de la Base de Datos
El modelo de objetos de
ADO.NET
Almacenamiento de datos
Existen los siguientes tipos de datos a
almacenar:
No estructurados.
Estructurados, datos no-jerrquicos.
Archivos separados por comas (CSV), Hojas de
clculo de Microsoft Excel, Archivos de Microsoft
Exchange, Archivos de Active Directory y otros.
Jerrquicos
Documentos XML.
Qu es un entorno conectado?
Un entorno conectado es aquel en el que los
usuarios mantienen una conexin permanente a la
BD.
Ventajas:
Facilita el control de seguridad.
Es sencillo controlar la concurrencia.
Desventajas:
Debe mantener una conexin permanente a la
red.
Escalabilidad.
Qu es un entorno desconectado?
En un entorno desconectado, un conjunto de datos
del servidor puede ser copiado y modificado
independientemente.
Ventajas
Puede trabajar todo el tiempo que se considere
conveniente.
Otros usuarios pueden emplear la conexin
Mejora la escalabilidad y performance de las
aplicaciones.
Desventajas
Los datos no siempre estan actualizados.
Los conflictos en actualizaciones pueden ocurrir y deben
ser resueltos.
Namespace System.Data
El namespace System.Data constituye el corazn del acceso a datos del
Framework de .NET. Aqu se muestran algunas de las clases ms utilizadas
para el acceso y la manipulacin de informacin desde una base de datos SQL
Server:
Clase
Descripcin
SqlConnection
SqlCommand
SqlDataAdapter
SqlReader
DataSet
DataAdapter
DataAdapter
SelectCommand
Database
InsertCommand
UpdateCommand
DeleteCommand
DataSet
TableMappings
DataAdapter
Sabe cmo obtener los datos
de la fuente de datos y
guardar los cambios
DataAdapter
Connection
Expone 2 mtodos:
Connection
SelectCommand
SelectCommand
UpdateCommand
InsertCommand
InsertCommand
DeleteCommand
DeleteCommand
TableMappings
DataSet Object
Equivalent al Recordset de
ADO pero ms potente
Modelo Relacional
Contiene tablas, columnas,
filas, constraints,
vistas y relaciones
Modelo desconectado
DataSet
Tables
Table
Columns
Column
Constraints
Constraint
Rows
No tienen conocimiento de
Row
la fuente de datos
Relations
Indexacin tipo Arreglo
Relation
Tipos de datos
Soporta Databinding
Soporta actualizaciones en batch
Se conecta a la fuente de datos mediante el DataAdapter
Productos
Clientes
SqlDataAdapter
DataSet
Categorias
Productos
Pedidos
OleDbDataAdapter
Empleados
Archivo
XML
Clientes
Pedidos
XmlDataDocument
XML Web
service
DataTable
DataRelation
DataRow
Constraints
Extrae tablas
Con el Managed
Provider
Original
DataStore
Table2
DataSet
DataSet
Table1
Establece las
relaciones
Hace cambios a
los datos
Table1
Table2
Table2
Objeto Command
Mtodos del Objeto Command:
ExecuteReader Ejecuta y retorna un DataReador
ExecuteNonQuery Ejecuta y no retorna nada
ExecuteScalar Ejecuta y retorna el primer valor
Dim sSQL As String = "select CompanyName from customers where customerid = '"
& DropDownList1.SelectedItem.Value & "'"
Dim sConnectionString As String = "Provider=SQLOLEDB;Data
Source=localhost;uid=sa;pwd=;database=NWTradersTravel"
Dim oConnection As New OleDb.OleDbConnection(sConnectionString)
Dim oCommand As New OleDb.OleDbCommand(sSQL, oConnection)
oCommand.Connection.Open()
TextBox2.Text = oCommand.ExecuteScalar()
oConnection.Close()
DataReader Object
DataView
Permite establecer filtros y criterios de
ordenado en una vista de una Tabla
Una vista viva de un DataTable
Cualquier nmero de DataViews distintos
pueden ser creados para una misma Tabla
3.
4.
5.
Imports System.Data.SqlClient
Dim daProducts As New SqlDataAdapter()
Dim cnNorthwind As New & _
SqlConnection("data source= (local);initial catalog= Northwind;"& _
"integrated security=SSPI")
Dim cmSelect As New SqlCommand("SELECT * FROM Products",
cnNorthwind)
daProducts.SelectCommand = cmSelect
Prctica
4.
Imports System.Data
Imports System.Data.SqlClient
Dim daProdCat As New SqlDataAdapter()
Dim cmSelect As New SqlCommand()
cmSelect.Connection = cnNorthwind
cmSelect.CommandText = "GetProductsAndCategories
cmSelect.CommandType = CommandType.StoredProcedure
daProdCat.SelectCommand = cmSelect
Ejemplo 1
Dim cmUpdate As New SqlCommand("UPDATE Customers " & _
"SET CustomerID = @ID, CompanyName = @Name " & _
"WHERE (CustomerID = @OrigID)",cnNorthwind)
cmUpdate.Parameters.Add(New SqlParameter("@ID", _
SqlDbType.NChar,5,ParameterDirection.Input, _
False,0,0,"CustomerID",DataRowVersion.Current,Nothing))
cmUpdate.Parameters.Add(New SqlParameter("@Name", _
SqlDbType.NVarChar,40,ParameterDirection.Input,False, _
0,0,"CompanyName",DataRowVersion.Current, Nothing))
cmUpdate.Parameters.Add(New SqlParameter("@OrigID", _
SqlDbType.NChar,5,ParameterDirection.Input,False,0,0, _
"CustomerID",DataRowVersion.Original,Nothing))
daCustomers.UpdateCommand = cmUpdate
Ejemplo - 2
Dim cmDelete As New SqlCommand("DELETE FROM
Customers " & _
"WHERE (CustomerID = @ID)",cnNorthwind)
cmDelete.Parameters.Add(New SqlParameter("@ID", _
SqlDbType.NChar,5,ParameterDirection.Input,False,0,0,
_
"CustomerID",DataRowVersion.Original,Nothing))
daCustomers.DeleteCommand = cmDelete
XML y Datasets
Continuacin
Creacin de una vista XML del contenido de un
DataSet
Puede crear una vista XML (un objeto XmlDataDocument) del
contenido de un DataSet y luego manipular o representar los
datos utilizando los mtodos XML o relacionales del objeto
DataSet. Las dos vistas se sincronizan automticamente
cada vez que cambian.
Sincronizacin de un DataSet
con un XmlDataDocument
DataSet con un
XmlDataDocument (Parte I)
El objeto DataSet suministra una representacin relacionada de los
datos. Para un acceso a datos jerrquico puede utilizar las clases
XML disponibles en el Framework de .NET. Anteriormente las
representaciones jerrquicas y relacionales de datos haban sido
utilizadas por separado. Sin embargo, el Framework de .NET ofrece
un acceso sincronizado y en tiempo real a ambas
representacionesde datos, mediante los objetos DataSet y
XmlDataDocument. Cuando un objeto DataSet es sincronizado con
un objeto XmlDataDocument, ambos objetos estn trabajando con
un nico conjunto de datos. Esto significa que si se realiza un
cambio en el DataSet, este cambio se ver reflejado en el
XmlDataDocument y viceversa. La relacin que existe entre los
objetos DataSet y XmlDataDocument crea una gran flexibilidad al
permitir a una aplicacin utilizar un conjunto determinado de datos y
poder disponer de toda la gama de sevicios que posee el DataSet.
DataSet con un
XmlDataDocument (Parte II)
El sincronizar un XmlDataDocument con un DataSet preserva la
fidelidad de un documento XML. Si un DataSet es llenado con
informacin de un documento XML utilizando el mtodo ReadXml,
esa informacin puede diferir drsticamente del documento original
si luego es devuelta al documento utilizando el mtodo WriteXml.
Esa diferencia de informacin se puede presentar debido a que el
DataSet no mantiene el formato del documento XML original, como
por ejemplo, los espacios en blanco o la jerarquizacin y orden de
los elementos. El DataSet tampoco contiene los elementos del
documento XML original que no son iguales al esquema XML que
posee y que ignora. Sincronizar ambos objetos permite mantener
ese formato y esa estructura del documento XML original en el
XmlDataDocument, mientras que el DataSet slo contiene los datos
y la informacin de esquema apropiada al DataSet.
Resumen
ADO.NET es la evolucin de ADO
Es desconectado, para acompaar el
modelo basado en Web
Muy flexible para trabajar con Datos
Aumenta las capacidades de organizar
lgicamente los datos
Amplio soporte para XML
Lo que permite mayores habilidades para
trabajar y compartir datos
1. T estas creando una aplicacin Web que leer una Base de Datos
SQL Server 6.5. La aplicacin generar una serie de reportes a partir
de la BD. Deseas que estos reportes se ejecuten lo ms rpido
posible. Qu debes hacer?