acceso a datos con microsoft ado.net. descripción introducción a ado.net conectar a una base de...
TRANSCRIPT
![Page 1: Acceso a datos con Microsoft ADO.NET. Descripción Introducción a ADO.NET Conectar a una base de datos Acceder a datos con DataSets Utilizar múltiples](https://reader033.vdocuments.co/reader033/viewer/2022061216/54b1bebf4979590d128b45c4/html5/thumbnails/1.jpg)
Acceso a datos con Microsoft ADO.NET
![Page 2: Acceso a datos con Microsoft ADO.NET. Descripción Introducción a ADO.NET Conectar a una base de datos Acceder a datos con DataSets Utilizar múltiples](https://reader033.vdocuments.co/reader033/viewer/2022061216/54b1bebf4979590d128b45c4/html5/thumbnails/2.jpg)
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
![Page 3: Acceso a datos con Microsoft ADO.NET. Descripción Introducción a ADO.NET Conectar a una base de datos Acceder a datos con DataSets Utilizar múltiples](https://reader033.vdocuments.co/reader033/viewer/2022061216/54b1bebf4979590d128b45c4/html5/thumbnails/3.jpg)
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
![Page 4: Acceso a datos con Microsoft ADO.NET. Descripción Introducción a ADO.NET Conectar a una base de datos Acceder a datos con DataSets Utilizar múltiples](https://reader033.vdocuments.co/reader033/viewer/2022061216/54b1bebf4979590d128b45c4/html5/thumbnails/4.jpg)
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
DataReaderDataSet
Desconectado Conectado
![Page 5: Acceso a datos con Microsoft ADO.NET. Descripción Introducción a ADO.NET Conectar a una base de datos Acceder a datos con DataSets Utilizar múltiples](https://reader033.vdocuments.co/reader033/viewer/2022061216/54b1bebf4979590d128b45c4/html5/thumbnails/5.jpg)
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
![Page 6: Acceso a datos con Microsoft ADO.NET. Descripción Introducción a ADO.NET Conectar a una base de datos Acceder a datos con DataSets Utilizar múltiples](https://reader033.vdocuments.co/reader033/viewer/2022061216/54b1bebf4979590d128b45c4/html5/thumbnails/6.jpg)
Lección: conexión a una base de datos
Seguridad SQL Server
Crear la conexión
Demostración: establecer la seguridad SQL Server
![Page 7: Acceso a datos con Microsoft ADO.NET. Descripción Introducción a ADO.NET Conectar a una base de datos Acceder a datos con DataSets Utilizar múltiples](https://reader033.vdocuments.co/reader033/viewer/2022061216/54b1bebf4979590d128b45c4/html5/thumbnails/7.jpg)
Seguridad SQL Server
ClienteCliente
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ónmodo mixto
Autenticaciónmodo mixto
Autenticaciónsólo WindowsAutenticaciónsólo Windows
Servidor SQL Sólo la cuenta ASPNETtiene concedido acceso
Servidor SQL Sólo la cuenta ASPNETtiene concedido accesoServidor Web
Autenticación WindowsServidor Web
Autenticación Windows
o…o…
Servidor SQL Cada cuenta de usuario se
agrega a grupo login de SQL Server
Servidor SQL Cada cuenta de usuario se
agrega a grupo login de SQL Server
Servidor Web Configuración ASP.NET
predeterminada
Servidor Web Configuración ASP.NET
predeterminada
Aquí está el nombre de usuario
y la contraseña
![Page 8: Acceso a datos con Microsoft ADO.NET. Descripción Introducción a ADO.NET Conectar a una base de datos Acceder a datos con DataSets Utilizar múltiples](https://reader033.vdocuments.co/reader033/viewer/2022061216/54b1bebf4979590d128b45c4/html5/thumbnails/8.jpg)
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)
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);
string strConn = "data source=localhost; " + "initial catalog=northwind; integrated security=true";SqlConnection conn = new SqlConnection(strConn);
![Page 9: Acceso a datos con Microsoft ADO.NET. Descripción Introducción a ADO.NET Conectar a una base de datos Acceder a datos con DataSets Utilizar múltiples](https://reader033.vdocuments.co/reader033/viewer/2022061216/54b1bebf4979590d128b45c4/html5/thumbnails/9.jpg)
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
![Page 10: Acceso a datos con Microsoft ADO.NET. Descripción Introducción a ADO.NET Conectar a una base de datos Acceder a datos con DataSets Utilizar múltiples](https://reader033.vdocuments.co/reader033/viewer/2022061216/54b1bebf4979590d128b45c4/html5/thumbnails/10.jpg)
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
![Page 11: Acceso a datos con Microsoft ADO.NET. Descripción Introducción a ADO.NET Conectar a una base de datos Acceder a datos con DataSets Utilizar múltiples](https://reader033.vdocuments.co/reader033/viewer/2022061216/54b1bebf4979590d128b45c4/html5/thumbnails/11.jpg)
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)
Dim da As New SqlDataAdapter _("select * from Authors", conn)
da.SelectCommand.CommandText da.SelectCommand.Connection
da.SelectCommand.CommandText da.SelectCommand.Connection
SqlDataAdapter da = new SqlDataAdapter("select * from Authors",conn);
SqlDataAdapter da = new SqlDataAdapter("select * from Authors",conn);
da.SelectCommand.CommandText;da.SelectCommand.Connection;
da.SelectCommand.CommandText;da.SelectCommand.Connection;
![Page 12: Acceso a datos con Microsoft ADO.NET. Descripción Introducción a ADO.NET Conectar a una base de datos Acceder a datos con DataSets Utilizar múltiples](https://reader033.vdocuments.co/reader033/viewer/2022061216/54b1bebf4979590d128b45c4/html5/thumbnails/12.jpg)
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 ds As New DataSet()da.Fill(ds, "Authors")
Dim r As DataRowDim str As StringFor Each r in _ ds.Tables("Authors").Rows str &= r(2) str &= r("au_lname")Next
Dim r As DataRowDim str As StringFor Each r in _ ds.Tables("Authors").Rows str &= r(2) str &= r("au_lname")Next
ds.Tables("Authors").Rows.Countds.Tables("Authors").Rows.Count
DataSet ds = new DataSet();da.Fill(ds, "Authors");
DataSet ds = new DataSet();da.Fill(ds, "Authors");
ds.Tables["Authors"].Rows.Count;ds.Tables["Authors"].Rows.Count;
string str="";
foreach(DataRow r in ds.Tables["Authors"].Rows){ str += r[2]; str += r["au_lname"];}
string str="";
foreach(DataRow r in ds.Tables["Authors"].Rows){ str += r[2]; str += r["au_lname"];}
![Page 13: Acceso a datos con Microsoft ADO.NET. Descripción Introducción a ADO.NET Conectar a una base de datos Acceder a datos con DataSets Utilizar múltiples](https://reader033.vdocuments.co/reader033/viewer/2022061216/54b1bebf4979590d128b45c4/html5/thumbnails/13.jpg)
Demostración: utilizar programáticamente un DataSet
Crear una conexión
Crear DataAdapter
Crear DataSet
Leer los datos del DataSet programáticamente
![Page 14: Acceso a datos con Microsoft ADO.NET. Descripción Introducción a ADO.NET Conectar a una base de datos Acceder a datos con DataSets Utilizar múltiples](https://reader033.vdocuments.co/reader033/viewer/2022061216/54b1bebf4979590d128b45c4/html5/thumbnails/14.jpg)
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'";
DataView dv = new DataView(ds.Tables["Authors"]);dv.RowFilter = "state = 'CA'";
Dim dv As DataView = ds.Tables("Authors").DefaultView Dim dv As DataView = ds.Tables("Authors").DefaultView
Dim dv As New DataView (ds.Tables("Authors"))dv.RowFilter = "state = 'CA'"
Dim dv As New DataView (ds.Tables("Authors"))dv.RowFilter = "state = 'CA'"
DataView dv = ds.Tables["Authors"].DefaultView;DataView dv = ds.Tables["Authors"].DefaultView;
![Page 15: Acceso a datos con Microsoft ADO.NET. Descripción Introducción a ADO.NET Conectar a una base de datos Acceder a datos con DataSets Utilizar múltiples](https://reader033.vdocuments.co/reader033/viewer/2022061216/54b1bebf4979590d128b45c4/html5/thumbnails/15.jpg)
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
![Page 16: Acceso a datos con Microsoft ADO.NET. Descripción Introducción a ADO.NET Conectar a una base de datos Acceder a datos con DataSets Utilizar múltiples](https://reader033.vdocuments.co/reader033/viewer/2022061216/54b1bebf4979590d128b45c4/html5/thumbnails/16.jpg)
Vincular un DataSet a un control enlazado a lista
Crear el control
Vincular a un DataSet o un DataView
dg.DataSource = dsdg.DataMember = "Authors"dg.DataBind()
dg.DataSource = dsdg.DataMember = "Authors"dg.DataBind()
<asp:DataGrid id="dg" runat="server" /><asp:DataGrid id="dg" runat="server" />
dg.DataSource = ds;dg.DataMember = "Authors";dg.DataBind();
dg.DataSource = ds;dg.DataMember = "Authors";dg.DataBind();
![Page 17: Acceso a datos con Microsoft ADO.NET. Descripción Introducción a ADO.NET Conectar a una base de datos Acceder a datos con DataSets Utilizar múltiples](https://reader033.vdocuments.co/reader033/viewer/2022061216/54b1bebf4979590d128b45c4/html5/thumbnails/17.jpg)
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
![Page 18: Acceso a datos con Microsoft ADO.NET. Descripción Introducción a ADO.NET Conectar a una base de datos Acceder a datos con DataSets Utilizar múltiples](https://reader033.vdocuments.co/reader033/viewer/2022061216/54b1bebf4979590d128b45c4/html5/thumbnails/18.jpg)
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
Código de ejemplo
![Page 19: Acceso a datos con Microsoft ADO.NET. Descripción Introducción a ADO.NET Conectar a una base de datos Acceder a datos con DataSets Utilizar múltiples](https://reader033.vdocuments.co/reader033/viewer/2022061216/54b1bebf4979590d128b45c4/html5/thumbnails/19.jpg)
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
![Page 20: Acceso a datos con Microsoft ADO.NET. Descripción Introducción a ADO.NET Conectar a una base de datos Acceder a datos con DataSets Utilizar múltiples](https://reader033.vdocuments.co/reader033/viewer/2022061216/54b1bebf4979590d128b45c4/html5/thumbnails/20.jpg)
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")
daCustomers = New SqlDataAdapter _ ("select * from Customers", conn1)daCustomers.Fill(ds, "Customers")
Orders
Customers
daOrders = New SqlDataAdapter _ ("select * from Orders", conn2)daOrders.Fill(ds, "Orders")
daOrders = New SqlDataAdapter _ ("select * from Orders", conn2)daOrders.Fill(ds, "Orders")
conn2conn1
DataSet
![Page 21: Acceso a datos con Microsoft ADO.NET. Descripción Introducción a ADO.NET Conectar a una base de datos Acceder a datos con DataSets Utilizar múltiples](https://reader033.vdocuments.co/reader033/viewer/2022061216/54b1bebf4979590d128b45c4/html5/thumbnails/21.jpg)
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 dr As New DataRelation _ ("name", parentCol, _ childCol)ds.DataRelations.Add(dr)
Dim parentCol As DataColumn = _ ds.Tables("Customers").Columns("CustomerID")
Dim parentCol As DataColumn = _ ds.Tables("Customers").Columns("CustomerID")
Dim childCol As DataColumn = _ ds.Tables("Orders").Columns("CustomerID")
Dim childCol As DataColumn = _ ds.Tables("Orders").Columns("CustomerID")
Tabla Orders
Tabla Customers
DataSet
parentCol
childCol
DataRelation
Código de ejemplo C#
![Page 22: Acceso a datos con Microsoft ADO.NET. Descripción Introducción a ADO.NET Conectar a una base de datos Acceder a datos con DataSets Utilizar múltiples](https://reader033.vdocuments.co/reader033/viewer/2022061216/54b1bebf4979590d128b45c4/html5/thumbnails/22.jpg)
Navegar programáticamente 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 Orders
GetChildRows
GetParentRowDataSet
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");
![Page 23: Acceso a datos con Microsoft ADO.NET. Descripción Introducción a ADO.NET Conectar a una base de datos Acceder a datos con DataSets Utilizar múltiples](https://reader033.vdocuments.co/reader033/viewer/2022061216/54b1bebf4979590d128b45c4/html5/thumbnails/23.jpg)
Navegar visualmente entre tablas utilizando relaciones
Dim tableView As DataViewDim currentRowView As DataRowView
tableView = New DataView(ds.Tables("Customers"))currentRowView = tableView(dgCustomers.SelectedIndex)dgChild.DataSource = currentRowView.CreateChildView("CustOrders")
Dim tableView As DataViewDim 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");
DataView tableView;DataRowView currentRowView;
tableView = new DataView(ds.Tables["Customers"]);currentRowView = tableView[dgCustomers.SelectedIndex];dgChild.DataSource = currentRowView.CreateChildView("CustOrders");
![Page 24: Acceso a datos con Microsoft ADO.NET. Descripción Introducción a ADO.NET Conectar a una base de datos Acceder a datos con DataSets Utilizar múltiples](https://reader033.vdocuments.co/reader033/viewer/2022061216/54b1bebf4979590d128b45c4/html5/thumbnails/24.jpg)
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
![Page 25: Acceso a datos con Microsoft ADO.NET. Descripción Introducción a ADO.NET Conectar a una base de datos Acceder a datos con DataSets Utilizar múltiples](https://reader033.vdocuments.co/reader033/viewer/2022061216/54b1bebf4979590d128b45c4/html5/thumbnails/25.jpg)
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
![Page 26: Acceso a datos con Microsoft ADO.NET. Descripción Introducción a ADO.NET Conectar a una base de datos Acceder a datos con DataSets Utilizar múltiples](https://reader033.vdocuments.co/reader033/viewer/2022061216/54b1bebf4979590d128b45c4/html5/thumbnails/26.jpg)
¿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
![Page 27: Acceso a datos con Microsoft ADO.NET. Descripción Introducción a ADO.NET Conectar a una base de datos Acceder a datos con DataSets Utilizar múltiples](https://reader033.vdocuments.co/reader033/viewer/2022061216/54b1bebf4979590d128b45c4/html5/thumbnails/27.jpg)
Código de ejemplo
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
1111
2222
3333
4444
5555
6666
7777
![Page 28: Acceso a datos con Microsoft ADO.NET. Descripción Introducción a ADO.NET Conectar a una base de datos Acceder a datos con DataSets Utilizar múltiples](https://reader033.vdocuments.co/reader033/viewer/2022061216/54b1bebf4979590d128b45c4/html5/thumbnails/28.jpg)
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
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);}
while (myReader.Read()){ str += myReader[1]; str += myReader["field"]; str += myReader.GetDateTime(2);}
![Page 29: Acceso a datos con Microsoft ADO.NET. Descripción Introducción a ADO.NET Conectar a una base de datos Acceder a datos con DataSets Utilizar múltiples](https://reader033.vdocuments.co/reader033/viewer/2022061216/54b1bebf4979590d128b45c4/html5/thumbnails/29.jpg)
Vincular un DataReader a un control enlazado a lista
Crear el control
Vincular a un DataReader
dgAuthors.DataSource = drdgAuthors.DataBind()
dgAuthors.DataSource = drdgAuthors.DataBind()
<asp:DataGrid id="dgAuthors" runat="server" /><asp:DataGrid id="dgAuthors" runat="server" />
dgAuthors.DataSource = dr;dgAuthors.DataBind();
dgAuthors.DataSource = dr;dgAuthors.DataBind();
![Page 30: Acceso a datos con Microsoft ADO.NET. Descripción Introducción a ADO.NET Conectar a una base de datos Acceder a datos con DataSets Utilizar múltiples](https://reader033.vdocuments.co/reader033/viewer/2022061216/54b1bebf4979590d128b45c4/html5/thumbnails/30.jpg)
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
![Page 31: Acceso a datos con Microsoft ADO.NET. Descripción Introducción a ADO.NET Conectar a una base de datos Acceder a datos con DataSets Utilizar múltiples](https://reader033.vdocuments.co/reader033/viewer/2022061216/54b1bebf4979590d128b45c4/html5/thumbnails/31.jpg)
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