Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Acceso A Datos en Visual Basic .NET Con PDF
Acceso A Datos en Visual Basic .NET Con PDF
con ADO.NET
ndice
Descripcin
Leccin: conceptos de bases de datos
1
2
14
29
43
Descripcin
Crear
Interfaz
Escribir
Cdigo
Debug
and Deploy
Uso de Visual
Studio .NET
Acceso
a datos
Conceptos de bases de
datos
Descripcin de ADO.NET
Depurar
e implantar
Introduccin
Este mdulo explica cmo utilizar Microsoft ADO.NET con una aplicacin
Microsoft Windows Forms para crear, leer, actualizar y eliminar registros de
bases de datos Microsoft SQL Server y Microsoft Access (Jet 4.0).
Objetivos
Qu es SQL?
Qu es un entorno conectado?
Qu es un entorno desconectado?
Introduccin
Esta leccin ofrece una descripcin general de los conceptos bsicos de bases
de datos. Hace una introduccin al lenguaje de consultas estructurado
(Structured Query Language, SQL) y explica la diferencia entre entornos de
datos conectados y desconectados.
Objetivos de la leccin
Estructura de la leccin
Describir los elementos bsicos de las bases de datos, como base de datos,
tabla, registro, campo y clave.
Qu es SQL?
Qu es un entorno conectado?
Qu es un entorno desconectado?
Filas
(registros)
Relaciones
Empleados
Customers
Apellido
Apellido
Nombre
Nombre
33
Small
Small
Tony
Tony
55
Smith
Smith
James
James
..
..
..
Pedidos
Products
..
..
..
..
..
..
Columnas (campos)
Introduccin
Definiciones
Tabla
Una tabla es un objeto base de datos que almacena datos en registros (filas)
y campos (columnas). Normalmente, los datos tienen relacin con una
categora concreta de cosas, como empleados o pedidos.
Registro
Un registro es una coleccin de datos sobre una persona, un lugar, un
evento o algn otro elemento. Los registros son los equivalentes lgicos de
filas en una tabla. Por ejemplo, un registro en la tabla Empleados debera
tener informacin sobre un empleado particular.
Campo
Un registro est compuesto de varios campos. Cada campo de un registro
contiene una pieza de informacin sobre el registro. Por ejemplo, el registro
de un Empleado tiene campos para el ID del empleado, Apellido, Nombre,
etc.
Clave principal
Una clave principal identifica de modo nico cada fila de una tabla. La
clave principal es un campo o una combinacin de campos cuyo valor es
nico para cada fila (o registro) de la tabla. Por ejemplo, el campo Employee
ID es la clave primaria para la tabla Empleados. No puede haber dos
empleados con el mismo ID.
Clave fornea
Una clave fornea es uno o ms campos (columnas) de una tabla que hacen
referencia al campo o campos de la clave principal de otra tabla. Una clave
fornea indica cmo estn relacionadas las tablas.
Relacin
Una relacin es una asociacin establecida entre campos comunes
(columnas) de dos tablas. Una relacin puede ser de uno a uno, de uno a
muchos, o de muchos a muchos. Las relaciones permiten que los resultados
de las consultas incluyan datos de varias tablas. Una relacin uno a uno
entre una tabla Clientes y una tabla Pedidos permitira que una consulta
devolviera todos los pedidos de un determinado cliente.
Acceso de lectura/escritura
El acceso de lectura/escritura a una base de datos significa que podemos
recuperar (leer) los datos y modificarlos (escribir).
Mostrar y
modificar
datos
Devolver datos
Transmitir actualizaciones
Base de datos
Cerrar la conexin
En
Ennumerosas
numerosasaplicaciones,
aplicaciones, lalaconexin
conexinse
secierra
cierradespus
despusde
deque
queelel
usuario
usuarioaccede
accedeaalos
los datos
datosyyvuelve
vuelveaaabrirse
abrirsecuando
cuandoelel usuario
usuario
transmite
actualizaciones
o
realiza
ms
solicitudes
transmite actualizaciones o realiza ms solicitudes
Introduccin
Principales tareas de la
programacin de bases
de datos
Qu es SQL?
Definicin:
Definicin: SQL
SQL es
es un
un lenguaje
lenguaje estndar
estndar del
del mercado
mercado que
que
ha
ha evolucionado
evolucionado hasta
hasta convertirse
convertirse en
en el
el medio
medio de
de mayor
mayor
aceptacin
aceptacin para
para realizar
realizar consultas
consultas yy modificar
modificar datos
datos de
de
una
una base
base de
de datos
datos
Sintaxis de instrucciones SQL habituales
z
Ejemplo
SELECT
SELECT Nombre
Nombre FROM
FROM Empleados
Empleados
Introduccin
Antes de que podamos escribir una aplicacin que utilice datos, necesitamos
saber algo sobre el Lenguaje de consulta estructurado (Structured Query
Language, SQL). Utilizamos SQL para especificar exactamente qu registros
recuperar de una base de datos.
Definicin
Nota SQL est definido por el estndar American National Standards Institute
(ANSI). Existen diferentes implementaciones de SQL para diferentes motores
de bases de datos. Por ejemplo, existe una versin de SQL para bases de datos
Microsoft Access (Jet 4.0) y una para SQL Server.
La instruccin SELECT
Ejemplo con
Visual Basic .NET
Clusula WHERE
Existen otras formas de la clusula WHERE que podemos utilizar para depurar
ms nuestras consultas, como sigue:
Clusula WHERE IN
Podemos utilizar la clusula WHERE IN para obtener todos los registros
que satisfacen criterios especficos. Por ejemplo, podemos devolver
apellidos de empleados en determinados estados, como muestra el siguiente
cdigo:
SELECT Apellido
FROM Empleados
WHERE Empleados.Estado IN ('NY','WA')
Clusula ORDER BY
Qu es un entorno conectado?
Ventajas:
z
Inconvenientes:
z
Escalabilidad limitada
Introduccin
Ventajas
Inconvenientes
Ejemplos
He aqu algunos ejemplos en los que debe utilizarse una conexin continua:
Una fbrica que requiere una conexin en tiempo real para controlar la
salida de produccin y el almacn.
Un agente de bolsa que requiere una conexin constante a los valores del
mercado.
Qu es un entorno desconectado?
Ventajas:
z
Introduccin
Inconvenientes:
z
Definicin
Ventajas
Inconvenientes
10
Ejemplos
Gestin de
actualizaciones en una
aplicacin desconectada
11
En esta prctica,
z
Introduccin
Instrucciones
Escenario 1
12
Escenario 2
Escenario 3
Debe crearse un sistema para una empresa de revelado que permita a sus
clientes enviar fotografas escaneadas o enviadas por correo electrnico, pagar
por los servicios a travs de Internet, y comprobar el estado de sus pedidos.
Desconectado, lectura/escritura. El examen de los pedidos es de slo
lectura. La creacin de nuevos pedidos, incluyendo el envo de fotografas,
es de lectura/escritura.
________________________________________________________________
________________________________________________________________
Escenario 4
Debe crearse un sistema para un equipo de ventas mvil. Cada vendedor debe
poder conectarse a la red de rea extensa de la oficina, a la intranet de la
compaa y a Internet utilizando dispositivos de comunicaciones mviles. Los
vendedores son responsables de crear y enviar los pedidos de los clientes fuera
de la oficina, tras verificar la disponibilidad de inventario y la disponibilidad de
crdito. Tambin necesitarn comprobar los envos a los clientes y el estado de
los pedidos, y enviar informes diarios con independencia de que puedan o no
establecer una conexin a Internet. Los requerimientos del sistema especifican
que las deducciones y crditos del inventario y los envos deben producirse dos
veces al da. Los vendedores deben poder verificar, pero no cambiar, el saldo de
las cuentas de los clientes.
Desconectado, acceso de lectura/escritura para procesar los datos de
pedidos, envos e inventario incluso en caso de conexiones telefnicas a
travs de mdems en telfonos mviles. Acceso de slo lectura para la
informacin sobre el crdito de los clientes.
________________________________________________________________
________________________________________________________________
Escenario 5
13
14
Qu es ADO .NET?
ADO.NET y XML
Introduccin
Objetivos de la leccin
Estructura de la leccin
Qu es ADO.NET?
ADO.NET y XML
15
Qu es ADO.NET?
Introduccin
Definicin
Con independencia de lo que hagamos con los datos, hay ciertos conceptos
fundamentales que debemos conocer sobre los datos en ADO.NET. Es posible
que nunca necesitemos conocer algunos de los detalles de la gestin de datos,
pero es til conocer la arquitectura de los datos en ADO.NET, cules son los
principales componentes de datos, y cmo se acoplan las piezas. Este tema no
proporciona detalles muy elaborados, sino que es una introduccin a los
conceptos relacionados con la integracin de datos en ADO.NET.
ADO.NET es un conjunto de clases para trabajar con datos. Proporciona:
16
Componentes de
ADO.NET
17
Base de datos
Conexin
Conexin
Comando
Comando
DataAdapter
DataAdapter
DataSet
DataSet
DataReader
DataReader
Introduccin
Objetos ADO.NET
Descripcin
Connection
Command
DataSet
DataReader
DataAdapter
18
19
que se muestra en la ventana Propiedades puede resultar til para crear una
aplicacin.
Probar la aplicacin
1. Ejecutar la aplicacin.
20
Nota
Cdigo de la solucin
21
Introduccin
Abrir el Explorador de
servidores
22
Agregar y eliminar
conexiones a datos
Arrastrar y soltar
recursos de datos
23
Visualizar elementos de
la base de datos
24
ADO.NET y XML
Cliente
11
44
Solicitar datos
XML
55 XML actualizado
22
DataSet
DataSet
33
DataSet
DataSet
66
Consulta SQL
Resultados
SQL actualiza
Introduccin
ADO.NET est estrechamente integrado con XML. Por ello, ADO.NET facilita
la conversin de datos relacionales a formato XML. Tambin podemos
convertir datos de XML en tablas y relaciones.
Soporte de XML
Se puede rellenar un DataSet con datos XML. Esto resulta til si se reciben
datos XML de otra aplicacin o servicio y se desea actualizar una base de
datos utilizando estos datos.
25
26
En esta prctica,
4. Generaremos el DataSet
5. Agregaremos un control DataGrid al formulario y
estableceremos sus propiedades
Introduccin
27
28
Probar la aplicacin
1. Ejecutar la aplicacin.
Los datos de Authors deberan poblar la rejilla de datos.
2. Navegar por los datos utilizando las barras de desplazamiento de la rejilla de
datos.
Nota Aunque hemos creado una aplicacin que funciona y que muestra datos
en modo lectura desde una fuente de datos, sus funcionalidades son limitadas.
Por ejemplo, nicamente se puede navegar con las barras de desplazamiento de
la rejilla de datos. En una aplicacin real, es posible que quisisemos modificar
ms adelante la seleccin de campos que deben mostrarse. Para agregar ms
funcionalidades al formulario, podemos permitir a los usuarios que visualicen
detalles de los productos. Tambin es posible permitir que los usuarios
seleccionen un elemento, ir a otro formulario que herede datos de ste o crear
un pedido o ver los pedidos existentes.
Archivos de solucin
29
Introduccin
Objetivos de la leccin
Estructura de la leccin
30
Dim
Dim PubsSQLConn
PubsSQLConn As
As SqlClient.SqlConnection
SqlClient.SqlConnection
PubsSQLConn
PubsSQLConn == New
New SqlClient.SqlConnection(
SqlClient.SqlConnection( ))
PubsSQLConn.ConnectionString
PubsSQLConn.ConnectionString == "Integrated
"Integrated Security=True;"
Security=True;" && __
"Data
Source=local;Initial
Catalog=Pubs;"
"Data Source=local;Initial Catalog=Pubs;"
PubsSQLConn.Open(
PubsSQLConn.Open( ))
Introduccin
Antes de trabajar con datos, es necesario establecer primero una conexin con
una fuente de datos. Para conectar con una fuente de datos, escogemos el tipo
de conexin, especificamos la fuente de datos, y abrimos la conexin a la fuente
de datos. Cuando acabamos de trabajar con los datos, cerraremos la conexin.
Escoger el tipo de
conexin
Especificar la fuente de
datos
Abrir y cerrar la
conexin de datos
Ejemplo de SQL
31
32
To create a DataAdapter
z Declare with the Dim keyword
z
Dim
Dim PubsAdapter
PubsAdapter As
As SQLDataAdapter
SQLDataAdapter == New
New SQLDataAdapter
SQLDataAdapter __
("Select
("Select ** from
from Titles",
Titles", PubsSQLConn)
PubsSQLConn)
Introduccin
Tras establecer una conexin con una fuente de datos, podemos utilizar un
adaptador de datos para intercambiar datos entre la fuente de datos y un dataset.
En muchas aplicaciones, esto significa leer datos de una base de datos en un
dataset mediante un adaptador de datos y a continuacin escribir los datos
cambiados desde el dataset al adaptador de datos y nuevamente a la base de
datos. Sin embargo, un adaptador de datos puede mover datos entre cualquier
fuente y un dataset. Por ejemplo, podra existir un adaptador que mueva datos
entre un servidor que ejecute Microsoft Exchange y un dataset.
Tipos de adaptadores de
datos
Visual Studio incorpora dos adaptadores de datos principales para utilizarse con
bases de datos:
Creacin del
DataAdapter
33
Ejemplos
Los siguientes ejemplos muestran cmo crear una instancia de una clase Sql
Client DataAdapter. El cdigo para crear una instancia de la clase
DataAdapter se muestra en negrita.
Ejemplo de SQL
34
Mtodos clave
Ejemplo
35
Introduccin
Poblar datasets
Copiar los contenidos de otro dataset. Esta tcnica puede ser til si nuestra
aplicacin obtiene datasets de diferentes fuentes (diferentes Servicios Web
XML, por ejemplo), pero necesita consolidarlos en un nico dataset.
36
Ejemplo
Ejemplo de SQL
37
Introduccin
Cmo funciona el
control DataGrid
Enlace de datos al
control
Para que el control DataGrid funcione, debemos enlazarlo con una fuente de
datos utilizando las propiedades DataSource y DataMember en tiempo de
diseo o el mtodo SetDataBinding en tiempo de ejecucin. Este enlace
vincula el DataGrid a un objeto de fuente de datos instanciado (como un
DataSet o DataTable) y el control DataGrid se actualiza con los resultados de
acciones realizadas sobre los datos.
La mayora de acciones especficas de datos no son realizadas por el DataGrid.
Se realiza por medio de la fuente de datos.
38
Enlace simple
Ejemplo de SQL
Enlace complejo
39
Ejemplo de SQL
40
Data
Data Form
Form Wizard
Wizard
Introduccin
Qu hace el asistente
El Asistente para formularios de datos nos gua a travs del proceso completo
de crear un formulario enlazado a datos. Cuando hayamos finalizado,
tendremos:
Mtodos que podemos invocar para leer y, para Windows Forms, escribir
datos.
El formulario y los
controles
41
Elementos de datos
Una de las tareas que necesitamos realizar es rellenar el dataset con datos de la
base de datos. Por defecto, para rellenar el dataset, el asistente genera un botn
Load que invoca el cdigo que realiza la operacin de llenado. Si estamos
creando un nuevo dataset con el asistente, ste genera el mtodo Fill
automticamente. Si estamos trabajando con un dataset existente, el asistente
nos ofrece estas opciones para crear un mtodo Fill:
Obviar el mtodo
Seleccione esta opcin si queremos rellenar el dataset por nosotros mismos
en lugar de que el cdigo de llenado se invoque automticamente.
42
Pasos adicionales
Cuando el asistente finaliza y tenemos un nuevo formulario, ste est listo para
ejecutarse. Hay algunos pocos pasos adicionales que podemos desear realizar y
una variedad de modos en los que puede ampliar lo que el asistente ha
realizado.
Por ejemplo, para trabajar con el formulario que acabamos de crear,
necesitamos establecer el formulario como el formulario de inicio para que
podamos probarlo.
Refinar las consultas que el asistente genera para que el adaptador de datos
recupere un subconjunto de los datos y que aada o modifique parmetros a
los comandos del adaptador.
43
Creating a DataReader
44
El procesamiento que sera requerido para crear y rellenar los contenidos del
DataSet en este caso no ser necesario.
En esta seccin, aprenderemos cmo leer datos desde una fuente de datos
utilizando DataReaders.
45
Crear un DataReader
Objetivo
Presentacin
Dim
Dim mySqlCommand
mySqlCommand As
As New
New SqlCommand(
SqlCommand(
"select
*
from
customers",
mySqlConnection)
"select * from customers", mySqlConnection)
Dim
Dim myReader
myReader As
As SqlDataReader
SqlDataReader ==
mySqlCommand.ExecuteReader()
mySqlCommand.ExecuteReader()
If
If Not
Not (myReader
(myReader Is
Is Nothing)
Nothing) Then
Then
myReader.Close()
myReader.Close()
End
End If
If
If
mySqlConnection.State
If mySqlConnection.State ==
ConnectionState.Open
ConnectionState.Open Then
Then
mySqlConnection.Close()
mySqlConnection.Close()
End
End If
If
46
47
Get fields
z
While
While myReader.Read()
myReader.Read()
Console.Write(myReader("CustomerID).ToString()
Console.Write(myReader("CustomerID).ToString() ++ __
""
")
")
Console.WriteLine(myReader("CompanyName).ToString())
Console.WriteLine(myReader("CompanyName).ToString())
End
End While
While
Una vez que hemos invocado el mtodo ExecuteReader del objeto Command,
accedemos a un registro en el DataReader invocando el mtodo Read. La
posicin inicial en el DataReader se sita antes del primer registro; por tanto,
debemos invocar a Read antes de acceder a cualquier dato. Cuando no hay ms
registros disponibles, el mtodo Read devuelve False.
48
Cerrar el DataReader
Mientras que el DataReader est en uso, la conexin asociada est ocupada
sirviendo el DataReader. Por tanto, debemos llamar a Close para cerrar el
DataReader cuando hayamos acabado de utilizarlo.
If Not (myReader Is Nothing) Then
myReader.Close()
End If
If mySqlConnection.State = ConnectionState.Open Then
mySqlConnection.Close()
End If
49
DataReader
Usando DataReaders