Vous êtes sur la page 1sur 31

Acceso a datos con Microsoft ADO.

NET

Descripcin

Introduccin a ADO.NET Conectar a una base de datos Acceder a datos con DataSets Utilizar mltiples tablas

Acceder a datos con DataReaders

Leccin: introduccin al uso de ADO.NET


Multimedia: modelo de objetos ADO.NET Utilizar DataSets frente a DataReaders Prctica: cundo utilizar DataSets o DataReaders

Uso de DataSets frente a DataReaders


DataSet DataReader Slo lectura Basado en una instruccin SQL de una base de datos Conectado Vinculado a un nico control Slo hacia delante Acceso ms rpido Codificacin manual

Acceso lectura/escritura a datos


Incluye mltiples tablas de distintas bases de datos Desconectado Vinculado a mltiples controles Bsqueda de datos hacia delante y hacia atrs Acceso ms lento Soportado por las herramientas de Visual Studio .NET

Prctica: cundo utilizar DataSets o DataReaders

Los estudiantes:

Seleccionarn la mejor opcin de acceso a datos para determinados escenarios

Tiempo: 5 minutos

Leccin: conexin a una base de datos


Seguridad SQL Server Crear la conexin Demostracin: establecer la seguridad SQL Server

Seguridad SQL Server


Servidor Web Configuracin ASP.NET predeterminada Aqu est el nombre de usuario y la contrasea o Cliente Enviar el nombre de usuario y contrasea en texto claro.

Autenticacin modo mixto

Servidor SQL Cada cuenta de usuario se agrega a grupo login de SQL Server
No enviar el nombre de usuario y contrasea. Enviar slo que el usuario ha sido autenticado. Servidor SQL Slo la cuenta ASPNET tiene concedido acceso

Autenticacin slo Windows


Servidor Web Autenticacin Windows

Crear la conexin

Uso de SqlConnection
Dim strConn As String = "data source=localhost; " & _ "initial catalog=northwind; integrated security=true" Dim conn As New SqlConnection(strConn) string strConn = "data source=localhost; " + "initial catalog=northwind; integrated security=true"; SqlConnection conn = new SqlConnection(strConn);

Establecer los parmetros de la cadena de conexin


Timeout de conexin Fuente de datos Catlogo inicial Seguridad integrada

Contrasea Persistir informacin seguridad

Proveedor
ID de usuario

Demostracin: establecer la seguridad de SQL Server


Abrir SQL Server Enterprise Manager Establecer el modo de autenticacin Probar con seguridad integrada Probar con seguridad en modo mixto

Leccin: acceder a datos con DataSets


Crear un DataAdapter Crear un DataSet Demostracin: utilizar programticamente un DataSet Utilizar un DataView Prctica: organizar cdigo para crear un DataSet Vincular un DataSet a un control enlazado a lista Prctica dirigida por el instructor: visualizar un DataSet

Gestin de errores

Crear un DataAdapter

Almacenar la consulta en un DataAdapter


Dim da As New SqlDataAdapter _ ("select * from Authors", conn)

SqlDataAdapter da = new SqlDataAdapter ("select * from Authors",conn);

El constructor DataAdapter establece la propiedad SelectCommand


da.SelectCommand.CommandText da.SelectCommand.Connection da.SelectCommand.CommandText; da.SelectCommand.Connection;

Establecer las propiedades InsertCommand, UpdateCommand y DeleteCommand si fuera necesario

Crear un DataSet

Crear y poblar un DataSet con DataTables

El mtodo Fill ejecuta el SelectCommand


Dim ds As New DataSet() da.Fill(ds, "Authors")

DataSet ds = new DataSet(); da.Fill(ds, "Authors");

Acceder a 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

ds.Tables["Authors"].Rows.Count; string str="";

foreach(DataRow r in ds.Tables["Authors"].Rows) { str += r[2]; str += r["au_lname"]; }

Demostracin: utilizar programticamente un DataSet


Crear una conexin Crear DataAdapter

Crear DataSet
Leer los datos del DataSet programticamente

Utilizar un DataView

Un DataView puede personalizarse para presentar un subconjunto de datos de un DataTable

La propiedad DefaultView devuelve el DataView predeterminado de la tabla


Dim dv As DataView = ds.Tables("Authors").DefaultView DataView dv = ds.Tables["Authors"].DefaultView;

Establecer una vista distinta de un DataSet


Dim dv As New DataView (ds.Tables("Authors")) dv.RowFilter = "state = 'CA'" DataView dv = new DataView(ds.Tables["Authors"]); dv.RowFilter = "state = 'CA'";

Prctica: organizar cdigo para crear un DataSet

Los estudiantes:

Reordenarn lneas de cdigo para crear un DataSet

Tiempo: 5 minutos

Vincular un DataSet a un control enlazado a lista

Crear el control
<asp:DataGrid id="dg" runat="server" />

Vincular a un DataSet o un DataView


dg.DataSource = ds dg.DataMember = "Authors" dg.DataBind() dg.DataSource = ds; dg.DataMember = "Authors"; dg.DataBind();

Prctica dirigida por el instructor: mostrar un DataSet


Crear una conexin Crear un DataAdapter

Crear un DataSet
Crear un DataView Vincular DataSet y DataView a controles DataGrid

Gestin de errores

La conexin no se abre

La cadena de conexin no es vlida El servidor o la base de datos no se encuentran Fallo de inicio de sesin Sintaxis SQL no vlida Nombre de tabla o campo no vlido

El DataAdapter no puede crear un DataSet


Cdigo de ejemplo

Leccin: utilizar mltiples tablas


Almacenar mltiples tablas Crear relaciones Navegar programticamente entre tablas utilizando relaciones Navegar visualmente entre tablas utilizando relaciones Prctica dirigida por el instructor: mostrar datos de mltiples tablas

Almacenar mltiples tablas

Agregar la primera tabla


daCustomers = New SqlDataAdapter _ ("select * from Customers", conn1) daCustomers.Fill(ds, "Customers")

Agregar la(s) siguiente(s) tabla(s)


daOrders = New SqlDataAdapter _ ("select * from Orders", conn2) daOrders.Fill(ds, "Orders")
Customers

conn1
DataSet
Orders

conn2

Crear relaciones

Identificar la columna primaria

Dim parentCol As DataColumn = _ ds.Tables("Customers").Columns("CustomerID")

Identificar la columna secundaria

Dim childCol As DataColumn = _ ds.Tables("Orders").Columns("CustomerID")

Crear DataRelation

parentCol

Tabla Customers

DataRelation

Dim dr As New DataRelation _ ("name", parentCol, _ childCol) ds.DataRelations.Add(dr)

DataSet

childCol Tabla Orders

Cdigo de ejemplo C#

Navegar programticamente entre tablas utilizando relaciones

ds.Tables(index).Rows(index).GetChildRows("relation") ds.Tables(index).Rows(index).GetParentRow("relation")
ds.Tables[index].Rows[index].GetChildRows("relation"); ds.Tables[index].Rows[index].GetParentRow("relation");

Customers GetChildRows

Orders

DataSet

GetParentRow

Navegar visualmente entre tablas utilizando relaciones


Dim tableView As DataView Dim currentRowView As DataRowView

tableView = New DataView(ds.Tables("Customers")) currentRowView = tableView(dgCustomers.SelectedIndex) dgChild.DataSource = currentRowView.CreateChildView("CustOrders")


DataView tableView; DataRowView currentRowView; tableView = new DataView(ds.Tables["Customers"]); currentRowView = tableView[dgCustomers.SelectedIndex]; dgChild.DataSource = currentRowView.CreateChildView("CustOrders"); Customers DataRowView

Orders

DataView

CreateChildView

DataSet

Prctica dirigida por el instructor: mostrar datos de mltiples tablas


Programticamente:

Crear un DataSet

Crear un DataRelation
Mostrar registros secundarios utilizando DataRelation Invocar CreateChildView

Visualmente:

Leccin: Acceso a datos con DataReaders


Qu es un DataReader? Crear un DataReader Leer datos de un DataReader Vincular un DataReader a un control enlazado a lista

Prctica: organizar cdigo para crear un DataReader


Demostracin: mostrar datos utilizando DataReaders

Qu es un DataReader?

Slo hacia delante, slo lectura

Acceso rpido a datos


Conexin a una fuente de datos Gestin de la conexin por s mismo

Gestin de los datos por s mismo, o vincularlos a un control enlazado a lista


Utiliza menos recursos del servidor

Crear un DataReader

Para utilizar un DataReader:


1 1. Crear y abrir la conexin a la base de datos 2 2. Crear un objeto Command 3 3. Crear un DataReader desde el objeto Command 4 4. Invocar el mtodo ExecuteReader 5 5. Utilizar el objeto DataReader 6 6. Cerrar el objeto DataReader 7 7. Cerrar el objeto Connection

Utilizar el controlador de errores TryCatchFinally

Cdigo de ejemplo

Leer datos de un DataReader

Invocar Read para cada registro

Devuelve false cuando no hay ms registros

Acceso a campos Parmetro es la posicin ordinal o nombre del campo Las funciones Get ofrecen un mejor rendimiento
while { str str str } (myReader.Read()) += myReader[1]; += myReader["field"]; += myReader.GetDateTime(2);

Do While myReader.Read() str &= myReader(1) str &= myReader("field") str &= myReader.GetDateTime(2) Loop

Cerrar el DataReader Cerrar la conexin

Vincular un DataReader a un control enlazado a lista

Crear el control
Vincular a un DataReader
dgAuthors.DataSource = dr; dgAuthors.DataBind();

<asp:DataGrid id="dgAuthors" runat="server" />

dgAuthors.DataSource = dr dgAuthors.DataBind()

Prctica: organizar cdigo para crear un DataReader

Los estudiantes:

Reordenarn lneas de cdigo para crear un DataReader

Tiempo: 5 minutos

Demostracin: mostrar datos utilizando DataReaders


Crear un objeto SqlConnection Crear un objeto DataReader

Vincular el DataReader a un Cuadro de lista


Generar los elementos del Cuadro de lista a partir de datos proporcionados por el DataReader

Vous aimerez peut-être aussi