Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ado Net
Ado Net
NET
En esta sesin
Veremos conceptos de ADO.NET para acceso a datos, con ejemplos de uso en aplicaciones ASP.NET
Agenda
Modelo de objetos de ADO.NET Introduccin al uso de ADO.NET Conectndose a una base de datos Accediendo datos mediante DataSets Usando mltiples tablas Accediendo datos con DataReaders
Qu es ADO.NET?
n
ADO.NET Provee un conjunto de clases para trabajar con datos ADO.NET es:
l l
Una evolucin ms flexible de ADO Un sistema diseado para entornos desconectados Un modelo de programacin con soporte de XML Un conjunto de clases, interfaces, estructuras, y enumeraciones que manejan el acceso a datos dentro del .NET Framework
ADO.NET provee:
l l
Usando Namespaces
Use la instruccin Imports para importar namespaces Imports System.Data
Imports System.Data.SqlClient
DataSet
DataTable
SqlDataAdapter OleDbDataAdapter
Qu es un Dataset?
DataSet
DataTable DataTable
DataTable
SqlDataAdapter
SqlConnection
Almacenamiento fsico
OleDbConnection
OleDb Database
SqlDataAdapter
DataSet
Connection
sp_SELECT
sp_UPDATE Database
sp_INSERT
sp_DELETE
Generando un DataSet
Se puede generar un dataset
a travs de la interface de usuario
Crear un dataset que permite acceder datos como un objeto
a travs de cdigo
Dim ds As y luego New DataSet() llenar el DataSet desde los DataAdapter(s) DataAdapter1.Fill(ds) DataAdapter2.Fill(ds)
Controles enlazados
n
Son controles que se conectan a un origen de datos y muestran la informacin Entre ellos se encuentran:
l l l l
l l l
DataAdapter1.Fill(ds) lstEmployees.DataBind()
Creando la conexin
Uso de SqlConnection
Dim strConn As String = _ "data source=localhost; " & _ "initial catalog=northwind; " & _ "integrated security=true" Dim conn As New SqlConnection(strConn)
Creacin de un DataSet
n
Acceso a un DataTable
ds.Tables("Authors").Rows.Count Dim r As DataRow Dim str As String For Each r in ds.Tables("Authors").Rows str &= r(2) str &= r("au_lname") Next
El DataView puede ser personalizado para presentar un subconjunto de informacin La propiedad DefaultView retorna la vista por defecto del DataTable
Dim dv As DataView dv = ds.Tables("Authors").DefaultView
Crear el control
<asp:DataGrid id="dg" runat="server" />
Control de errores
La conexin no puede abrirse
El connection string es invlido El servidor o la base de datos no se encuentra Fall el login
conn1
DataSet
Orders
conn2
Creando relaciones
Identificar la columna padre
Dim parentCol As DataColumn = _ ds.Tables("Customers").Columns("CustomerID")
Crear el DataRelation
Dim dr As New DataRelation _ ("name", parentCol, _ childCol) ds.DataRelations.Add(dr)
parentCol
Customers table
DataRelation
DataSet
DataSet
GetParentRow
Qu es un DataReader?
n n n n n
Forward-only, read-only Acceso rpido a los datos Conectado al origen La conexin la maneja usted mismo Los datos se manejan por cdigo o a travs de controles enlazados Usa pocos recursos
Creando un DataReader
Para usar un DataReader:
1 2 3 4 5
Crear y abrir una conexin a una base de datos Crear el objeto Command Crear el DataReader desde el objeto Command Invocar el mtodo ExecuteReader Usar el objeto DataReader Cerrar el objeto DataReader Cerrar el objeto Connection
Acceso a los campos l Por la posicin o el nombre del campo l Funciones Get, tienen mayor performance
Do While myReader.Read() str &= myReader(1) str &= myReader("field") str &= myReader.GetDateTime(2) Loop
n n
dgAuthors.DataSource = dr dgAuthors.DataBind()
Tiene una gua para la implementacin del layer de acceso a datos usando ADO.NET
Prcticas de buena performance Prcticas de manejo de recursos
Ejemplo
[Visual Basic] Imports Microsoft.ApplicationBlocks.Data ... Dim ds As DataSet = SqlHelper.ExecuteDataset( _ connectionString, _ CommandType.StoredProcedure, _ "getProductsByCategory", _ new SqlParameter("@CategoryID", categoryID)) [C#] using Microsoft.ApplicationBlocks.Data; ... DataSet ds = SqlHelper.ExecuteDataset( connectionString, CommandType.StoredProcedure, "getProductsByCategory", new SqlParameter("@CategoryID", categoryID));
Revisin
Modelo de objetos de ADO.NET Introduccin al uso de ADO.NET Conectndose a una base de datos Accediendo datos mediante DataSets Usando mltiples tablas Accediendo datos con DataReaders