La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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.

Presentaciones similares


Presentación del tema: "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."— Transcripción de la presentación:

1 Acceso a datos con Microsoft ADO.NET

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 DataReaderDataSet DesconectadoConectado

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) 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);

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) 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;

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 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 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"); 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"]; } string str=""; foreach(DataRow r in ds.Tables["Authors"].Rows) { str += r[2]; str += r["au_lname"]; }

13 Demostración: utilizar programáticamente un DataSet Crear una conexión Crear DataAdapter Crear DataSet Leer los datos del DataSet programáticamente

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'"; 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'" 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() dg.DataSource = ds dg.DataMember = "Authors" dg.DataBind() dg.DataSource = ds; dg.DataMember = "Authors"; dg.DataBind() ; 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 Código de ejemplo

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") 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

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 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#

22 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 GetParentRow DataSet 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");

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") 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"); 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 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

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 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); }

29 Vincular un DataReader a un control enlazado a lista Crear el control Vincular a un DataReader dgAuthors.DataSource = dr dgAuthors.DataBind() dgAuthors.DataSource = dr dgAuthors.DataBind() dgAuthors.DataSource = dr; dgAuthors.DataBind(); 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


Descargar ppt "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."

Presentaciones similares


Anuncios Google