2. Descripción
Introducción a ADO.NET
Conectar a una base de datos
Acceder a datos con DataSets
Utilizar múltiples tablas
Acceder a datos con DataReaders
3. Lección: introducción al uso de ADO.NET
Multimedia: modelo de objetos ADO.NET
Utilizar DataSets frente a DataReaders
Práctica: cuándo utilizar DataSets o DataReaders
4. Uso de DataSets frente a DataReaders
Soportado por las herramientas
de Visual Studio .NET
Acceso más lento
Sólo hacia delante
Vinculado a un único control
Basado en una instrucción SQL
de una base de datos
Sólo lectura
Codificación manual
Acceso más rápido
Búsqueda de datos hacia
delante y hacia atrás
Vinculado a múltiples controles
Incluye múltiples tablas de
distintas bases de datos
Acceso lectura/escritura a
datos
DataReader
DataSet
Desconectado Conectado
5. Práctica: cuándo utilizar DataSets o DataReaders
Los estudiantes:
Seleccionarán la mejor opción de acceso
a datos para determinados escenarios
Tiempo: 5 minutos
6. Lección: conexión a una base de datos
Seguridad SQL Server
Crear la conexión
Demostración: establecer la seguridad SQL Server
7. Seguridad SQL Server
Cliente
Enviar el nombre de
usuario y contraseña
en texto claro.
No enviar el nombre de
usuario y contraseña.
Enviar sólo que el
usuario ha sido
autenticado.
Autenticación
modo mixto
Autenticación
sólo Windows
Servidor SQL
Sólo la cuenta ASPNET
tiene concedido acceso
Servidor Web
Autenticación Windows
o…
Servidor SQL
Cada cuenta de usuario se
agrega a grupo login de SQL Server
Servidor Web
Configuración ASP.NET
predeterminada
Aquí está el
nombre de usuario
y la contraseña
8. Crear la conexión
Uso de SqlConnection
Establecer los parámetros de la cadena de conexión
Timeout de conexión
Fuente de datos
Catálogo inicial
Seguridad integrada
Dim strConn As String = "data source=localhost; " & _
"initial catalog=northwind; integrated security=true"
Dim conn As New SqlConnection(strConn)
Contraseña
Persistir información seguridad
Proveedor
ID de usuario
string strConn = "data source=localhost; " +
"initial catalog=northwind; integrated security=true";
SqlConnection conn = new SqlConnection(strConn);
9. Demostración: establecer la seguridad de SQL Server
Abrir SQL Server Enterprise Manager
Establecer el modo
de autenticación
Probar con seguridad
integrada
Probar con seguridad
en modo mixto
10. Lección: acceder a datos con DataSets
Crear un DataAdapter
Crear un DataSet
Demostración: utilizar programáticamente un DataSet
Utilizar un DataView
Práctica: organizar código para crear un DataSet
Vincular un DataSet a un control enlazado a lista
Práctica dirigida por el instructor: visualizar un
DataSet
Gestión de errores
11. Almacenar la consulta en un DataAdapter
El constructor DataAdapter establece la propiedad
SelectCommand
Establecer las propiedades InsertCommand,
UpdateCommand y DeleteCommand si fuera necesario
Crear un DataAdapter
Dim da As New SqlDataAdapter _
("select * from Authors", conn)
da.SelectCommand.CommandText
da.SelectCommand.Connection
SqlDataAdapter da = new SqlDataAdapter
("select * from Authors",conn);
da.SelectCommand.CommandText;
da.SelectCommand.Connection;
12. Crear un DataSet
Crear y poblar un DataSet con DataTables
El método Fill ejecuta el SelectCommand
Acceder a DataTable
Dim ds As New DataSet()
da.Fill(ds, "Authors")
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
DataSet ds = new DataSet();
da.Fill(ds, "Authors");
ds.Tables["Authors"].Rows.Count;
string str="";
foreach(DataRow r in
ds.Tables["Authors"].Rows)
{
str += r[2];
str += r["au_lname"];
}
14. 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
Establecer una vista distinta de un DataSet
DataView dv = new DataView(ds.Tables["Authors"]);
dv.RowFilter = "state = 'CA'";
Dim dv As DataView = ds.Tables("Authors").DefaultView
Dim dv As New DataView (ds.Tables("Authors"))
dv.RowFilter = "state = 'CA'"
DataView dv = ds.Tables["Authors"].DefaultView;
15. Práctica: organizar código para crear un DataSet
Los estudiantes:
Reordenarán líneas de código para crear
un DataSet
Tiempo: 5 minutos
16. Vincular un DataSet a un control enlazado a lista
Crear el control
Vincular a un DataSet o un DataView
dg.DataSource = ds
dg.DataMember = "Authors"
dg.DataBind()
<asp:DataGrid id="dg" runat="server" />
dg.DataSource = ds;
dg.DataMember = "Authors";
dg.DataBind();
17. Práctica dirigida por el instructor: mostrar un DataSet
Crear una conexión
Crear un DataAdapter
Crear un DataSet
Crear un DataView
Vincular DataSet y DataView a controles
DataGrid
18. Gestión de errores
La conexión no se abre
La cadena de conexión no es válida
El servidor o la base de datos no se encuentran
Fallo de inicio de sesión
El DataAdapter no puede crear un DataSet
Sintaxis SQL no válida
Nombre de tabla o campo no válido
19. Lección: utilizar múltiples tablas
Almacenar múltiples tablas
Crear relaciones
Navegar programáticamente entre tablas utilizando
relaciones
Navegar visualmente entre tablas utilizando
relaciones
Práctica dirigida por el instructor: mostrar datos de
múltiples tablas
20. Almacenar múltiples tablas
Agregar la primera tabla
Agregar la(s) siguiente(s) tabla(s)
daCustomers = New SqlDataAdapter _
("select * from Customers", conn1)
daCustomers.Fill(ds, "Customers")
Orders
Customers
daOrders = New SqlDataAdapter _
("select * from Orders", conn2)
daOrders.Fill(ds, "Orders")
conn2
conn1
DataSet
21. Crear relaciones
Identificar la columna primaria
Identificar la columna secundaria
Crear DataRelation
Dim dr As New DataRelation _
("name", parentCol, _
childCol)
ds.DataRelations.Add(dr)
Dim parentCol As DataColumn = _
ds.Tables("Customers").Columns("CustomerID")
Dim childCol As DataColumn = _
ds.Tables("Orders").Columns("CustomerID")
Tabla Orders
Tabla Customers
DataSet
parentCol
childCol
DataRelation
23. 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")
Customers Orders
CreateChildView
DataRowView
DataView
DataSet
DataView tableView;
DataRowView currentRowView;
tableView = new DataView(ds.Tables["Customers"]);
currentRowView = tableView[dgCustomers.SelectedIndex];
dgChild.DataSource = currentRowView.CreateChildView("CustOrders");
24. Práctica dirigida por el instructor: mostrar datos de múltiples tablas
Programáticamente:
Crear un DataSet
Crear un DataRelation
Mostrar registros secundarios utilizando
DataRelation
Visualmente:
Invocar CreateChildView
25. Lección: 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
Práctica: organizar código para crear un DataReader
Demostración: mostrar datos utilizando DataReaders
26. ¿Qué es un DataReader?
Sólo hacia delante, sólo lectura
Acceso rápido a datos
Conexión a una fuente de datos
Gestión de la conexión por sí mismo
Gestión de los datos por sí mismo, o vincularlos a un
control enlazado a lista
Utiliza menos recursos del servidor
27. Crear un DataReader
Para utilizar un DataReader:
1. Crear y abrir la conexión a la base de datos
2. Crear un objeto Command
3. Crear un DataReader desde el objeto Command
4. Invocar el método ExecuteReader
5. Utilizar el objeto DataReader
6. Cerrar el objeto DataReader
7. Cerrar el objeto Connection
Utilizar el controlador de errores Try…Catch…Finally
1
2
3
4
5
6
7
28. Leer datos de un DataReader
Invocar Read para cada registro
Devuelve false cuando no hay más registros
Acceso a campos
Parámetro es la posición ordinal o nombre del campo
Las funciones Get ofrecen un mejor rendimiento
Cerrar el DataReader
Cerrar la conexión
Do While myReader.Read()
str &= myReader(1)
str &= myReader("field")
str &= myReader.GetDateTime(2)
Loop
while (myReader.Read())
{
str += myReader[1];
str += myReader["field"];
str += myReader.GetDateTime(2);
}
29. 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();
30. Práctica: organizar código para crear un DataReader
Los estudiantes:
Reordenarán líneas de código para crear
un DataReader
Tiempo: 5 minutos
31. Demostración: 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