SlideShare una empresa de Scribd logo
1 de 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 tablas
 Acceder a datos con DataReaders
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
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
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
Lección: conexión a una base de datos
 Seguridad SQL Server
 Crear la conexión
 Demostración: establecer la seguridad SQL Server
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
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);
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
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
 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;
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"];
}
Demostración: utilizar programáticamente un DataSet
 Crear una conexión
 Crear DataAdapter
 Crear DataSet
 Leer los datos del DataSet
programáticamente
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;
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
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();
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
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
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
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
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
Navegar programáticamente entre tablas utilizando relaciones
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");
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");
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
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
¿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
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
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);
}
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();
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
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

Más contenido relacionado

Similar a 8.- Acceso a datos con Microsoft ADO.NET.ppt (20)

Clase servletsaccesobd
Clase servletsaccesobdClase servletsaccesobd
Clase servletsaccesobd
 
Jdbc
JdbcJdbc
Jdbc
 
Proveedor act1 uni2_daw_6a
Proveedor act1 uni2_daw_6aProveedor act1 uni2_daw_6a
Proveedor act1 uni2_daw_6a
 
Connection trabajo
Connection trabajoConnection trabajo
Connection trabajo
 
Connection
ConnectionConnection
Connection
 
11-Unidad 2: Aplicaciones Windows Forms-2.3 Ado-net
11-Unidad 2: Aplicaciones Windows Forms-2.3 Ado-net11-Unidad 2: Aplicaciones Windows Forms-2.3 Ado-net
11-Unidad 2: Aplicaciones Windows Forms-2.3 Ado-net
 
Guia BD conexión Mysql con Java usando Netbeans
Guia BD conexión Mysql con Java usando NetbeansGuia BD conexión Mysql con Java usando Netbeans
Guia BD conexión Mysql con Java usando Netbeans
 
ADO.NET
ADO.NETADO.NET
ADO.NET
 
OBJETO CONNECTION
OBJETO CONNECTIONOBJETO CONNECTION
OBJETO CONNECTION
 
Connection
ConnectionConnection
Connection
 
Trabajo Connectar
Trabajo ConnectarTrabajo Connectar
Trabajo Connectar
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
Java y Bases de Datos
Java y Bases de DatosJava y Bases de Datos
Java y Bases de Datos
 
Java y Bases Datos
Java y Bases DatosJava y Bases Datos
Java y Bases Datos
 
Bases Datos en java
Bases Datos en javaBases Datos en java
Bases Datos en java
 
Dprn3 u3 a1_casv
Dprn3 u3 a1_casvDprn3 u3 a1_casv
Dprn3 u3 a1_casv
 
Ado.Net
Ado.NetAdo.Net
Ado.Net
 
S3-PD1.pptx
S3-PD1.pptxS3-PD1.pptx
S3-PD1.pptx
 
Modoconexion
ModoconexionModoconexion
Modoconexion
 

Último

Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024IES Vicent Andres Estelles
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxroberthirigoinvasque
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!CatalinaAlfaroChryso
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfJonathanCovena1
 
AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxhenarfdez
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfapunteshistoriamarmo
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONamelia poma
 
LA JUNGLA DE COLORES.pptx Cuento de animales
LA JUNGLA DE COLORES.pptx  Cuento de animalesLA JUNGLA DE COLORES.pptx  Cuento de animales
LA JUNGLA DE COLORES.pptx Cuento de animalesanllamas
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docxEliaHernndez7
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalJonathanCovena1
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...jlorentemartos
 
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptx
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptxAEC2. Egipto Antiguo. Adivina, Adivinanza.pptx
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptxhenarfdez
 
Código Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de VenezuelaCódigo Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de Venezuelabeltranponce75
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxBeatrizQuijano2
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfMercedes Gonzalez
 

Último (20)

PP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomasPP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomas
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
Novena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan EudesNovena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan Eudes
 
AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptx
 
Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
Usos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicasUsos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicas
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
 
LA JUNGLA DE COLORES.pptx Cuento de animales
LA JUNGLA DE COLORES.pptx  Cuento de animalesLA JUNGLA DE COLORES.pptx  Cuento de animales
LA JUNGLA DE COLORES.pptx Cuento de animales
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptx
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptxAEC2. Egipto Antiguo. Adivina, Adivinanza.pptx
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptx
 
Código Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de VenezuelaCódigo Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de Venezuela
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptx
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 

8.- Acceso a datos con Microsoft ADO.NET.ppt

  • 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 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"]; }
  • 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'"; 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
  • 22. Navegar programáticamente entre tablas utilizando relaciones 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");
  • 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