You are on page 1of 217

Visual Basic y ASP .

NET a su alcance
Nivel Bsico/Intermedio

Carlos Alberto Vanegas


Ingeniero de Sistemas
Especialista en Ingeniera de Software
Maestra en Ingeniera de Sistemas
Profesor, Universidad Distrital Francisco Jos de Caldas

Bogot, enero 2011

12. ACCESO A BASES DE DATOS CON VB.NET


Una base de datos es un sistema formado por un conjunto de datos relacionados y
almacenados en discos que permiten el acceso directo a ellos y una serie de programas
que manipulan ese conjunto de datos. Cada base de datos se compone de una o ms
tablas que guardan la informacin. Cada tabla contiene una o ms columnas y filas. Las
columnas guardan informacin sobre cada elemento que se quiere almacenar en la tabla,
cada fila conforma un registro. Donde un registro es un o una a serie de campos que
pueden contener un mismo tipo dato o tipos de datos diferentes.
12.1 Tipos de Bases de Datos.
Las bases datos ms comunes son las relacionales y existen varios sistemas de
administracin de bases de datos de ese tipo, algunos son: SQL Server, Access, Oracle,
MySQL, PostgresSQL, etc.
12.1.1 bases de datos relacionales
Las bases de datos relacionales son un conjunto de tablas relacionadas entre s, donde
cada tabla est definida por una serie de campos. Los campos forman las columnas de
las tablas. Las filas se denominan registros (tuplas), y cada tipo definido en un registro
es un atributo. Las tablas pertenecientes a una base de datos pueden relacionarse entre s
utilizando campos clave comunes entre las tablas.
12.1.2 bases de datos orientadas a objetos.
Una base de datos orientada a objetos es un conjunto de clases que definen las
caractersticas y el comportamiento de los objetos que desarrollarn la base de datos.
Con una base de datos orientada a objetos, los objetos memorizados en la base de datos
contienen los datos como tambin las operaciones posibles con dichos datos.
12.2 Lenguaje de consulta estructurado (S.Q.L.)
Es un lenguaje normalizado que es utilizado por diferentes motores de bases de datos
para realizar operaciones sobre los datos o sobre la estructura de los mismos. El
lenguaje SQL est compuesto por comandos, clusulas, operadores y funciones de
agregado. Estos elementos se combinan en las instrucciones para crear, actualizar filtrar
y eliminar tablas o datos de una base de datos.
12.2.1 Comandos S.Q.L
Los tipos de comandos SQL son:

DDL: permiten crear y definir nuevas bases de datos, tablas, campos e ndices.
DML: permiten generar consultas para ordenar, filtrar y extraer datos de la base de
datos.

Tabla 12.1 Comandos DDL y DML de SQL.


Comandos DDL
Comando

Descripcin

CREATE

Permite crear nuevas bases de datos, tablas, campos e ndices.

DROP

Elimina bases de datos, tablas e ndices.

ALTER

Modifica las tablas agregando campos o cambiando la definicin de los


campos.
Comandos DML

SELECT

Permite consultar registros de una base de datos que cumplan una condicin
determinada.

INSERT

Inserta datos en una base de datos en una nica operacin.

UPDATE

Actualiza o modifica los valores de los campos y registros especificados.

DELETE

Elimina registros de una tabla de una base de datos.

12.2.2 Clusulas S.Q.L


Las clusulas son operadores de modificacin que sirven para definir los datos que se
desean seleccionar o renovar.
Tabla 12.2 Clusulas SQL.
Clusula

Descripcin

FROM

Sirve para especificar el orgen de datos (tabla) de la cual se van a


seleccionar registros.

WHERE

Permite especificar condiciones que deben cumplir los registros a


seleccionar.

GROUP BY

Separa los registros seleccionados en grupos especficos.

HAVING

Expresa la condicin que debe cumplir cada grupo de registros.

ORDER BY

Ordena los registros seleccionados.

12.2.3 Operadores lgicos S.Q.L


Los operadores lgicos permiten comprobar si una(s) condicin(es) son verdaderas.
stos operadores retornan un valor Boolean TRUE o FALSE.

Tabla 12.3 Operadores lgicos SQL.


Operador

Uso

AND

Evala dos condiciones y devuelve un valor de verdad slo si ambas


son ciertas.

OR

Evala dos condiciones y devuelve un valor de verdad si alguna de


las dos es cierta.

NOT

Negacin lgica. Devuelve el valor contrario de la expresin.

BETWEEN

Permite especificar un intervalo de valores.

LIKE

Realiza una comparacin de un patrn.

IN

Se utiliza para describir registros de una base de datos.

ALL

Devuelve Verdadero (True) si el conjunto de comparaciones de un


origen de datos es verdad.

12.2.4 Operadores de comparacin S.Q.L


Estos operadores comprueban si dos expresiones son iguales, devolviendo un valor
booleano True o False.
Tabla 12.4 Operadores de comparacin SQL.
Operador

Uso

<

Menor que

>

Mayor que

<>

Distinto de

<=

Menor o igual que

>=

Mayor o igual que

Igual que

12.2.5 Funciones de agregado S.Q.L


Estas funciones realizan un clculo sobre un conjunto de valores y devuelven un nico
valor. Las funciones de agregado se suelen utilizar con la clusula GROUP BY de la
instruccin SELECT.
Tabla 12.5 Funciones de agregado SQL.
Funcin

Descripcin

AVG

Calcula el promedio de los valores de un campo determinado.

COUNT

Devuelve el nmero de registros de la seleccin.

SUM

Suma todos los valores nmericos de un campo determinado.

MAX

Obtiene el valor ms alto de un campo especificado.

MIN

Obtiene el valor ms bajo de un campo especificado.

12.3 Sentencias bsicas S.Q.L


A continuacin se realizarn ejemplos con algunas de las sentencias SQL para la
manipulacin de los datos de una tabla. Se supondr que se tiene creada una tabla
llamada usuarios que esta estructurada como se muestra a continuacin:
Tabla 12.6 Estructura de los campos de la tabla USUARIOS.
Campo
identificacion
Nombres
Apellidos
Direccin
Telfono
ciudad_nac
fecha_nac

Tipo de Dato
varchar
varchar
varchar
varchar
varchar
varchar
date

Longitud
15
20
20
25
20
20

Y que contiene la siguiente informacin:


Tabla 12.7 Informacin de la tabla usuarios.
Identificacin
100
101
112
114
116
118
130
150
170

Nombres
Carlos
Mara
Jos
Cristian
Rosa
Andrs
Anglica
Johana
Mario

Apellidos
Romero
Castro
Pelez
Vanegas
Cetina
Vanegas
Morales
Duarte
Vargas

Direccin
Cra 7 # 20-10
Calle 25 # 25-10
Av. 35 # 32-45
Cra 7 # 29-58
Calle 17 # 21-14
Tranvs 48 # 22-10
Cra 68 # 21-11
Cra 2 # 45-38
Calle 1 # 99-18

Telfono
4152584
3692581
1234567
9874561
3571596
8527419
6549518
9637534
6598743

Ciudad_nac
Bogota
Cali
Medelln
Manizales
Buga
Bogot
Medelln
Bogot
Medelln

Fecha_nac
01/02/1980
15/03/1984
20/05/1960
31/08/1974
15/12/1985
10/04/1978
20/06/1981
12/06/1988
28/08/1980

12.3.1 CREATE DATABASE


CREATE DATABASE permite crear una base de datos. Su formato es:
CREATE DATABASE <nombre_base_de_datos)

12.3.2 DROP DATABASE


DROP DATABASE permite eliminar una base de datos que previamente se haba
creado. Su formato es:
DROP DATABASE <nombre_base_de_datos_a_eliminar>

12.3.3 CREATE TABLE


CREATE TABLE permite crear una tabla. Con este comando se especifica el nombre
de la tabla, las columnas y los tipos de datos, sus claves primarias y si es necesario una

clave externa. Su formato es:


CREATE TABLE nombre_tabla (campo1 tipodato DEFAULT,., campo2 tipodato, DEFAULT)

La clusula DEFAULT indica la caracterstica de cada columna: NOT NULL


(no permite valores nulos), UNIQUE (dos filas no pueden tener un mismo valor en la
misma columna), PRIMARY KEY (define una columna como clave principal).
12.3.4 DROP TABLE
DROP TABLE permite eliminar una tabla que previamente se haba creado. Su
formato es:
DROP TABLE nombre_tabla

12.3.5 INSERT
INSERT permite insertar datos en una tabla. Su formato es:
INSERT INTO nombre_tabla (campo1, campo2,.) VALUES (valor1, valor2,.)

12.3.6 ALTER
SQL ALTER permite insertar un nuevo campo en una tabla. Su formato es:
ALTER TABLE nombre_tabla ADD nombre_campo tipo_de_dato ()

Para insertar un nuevo campo a la tabla usuarios llamado profesion de tipo


caracter se debera realizar la siguiente sentencia:
ALTER TABLE usuarios ADD profesion varchar (30)

12.3.7 SELECT
La instruccin de seleccin SELECT permite seleccionar datos de una tabla. Su
formato es:
SELECT campos_tabla FROM nombre_tabla

A continuacin se realizan algunos ejemplos:


a. Para visualizar toda la informacin que contiene la tabla usuarios se puede
incluir con la instruccin SELECT el carcter * o cada uno de los campos de la
tabla.
SELECT * FROM usuarios
O
SELECT identificacin, nombres,.. FROM usuarios

b. Para visualizar solamente la identificacin del usuario


SELECT identificacion FROM usuarios

c. Si se desea obtener los registros cuya identificacin sea mayores o iguales a 150,
se debe utilizar la clusula WHERE que especifica las condiciones que deben
reunir los registros que se van a seleccionar.
SELECT * FROM usuarios WHERE identificacin>=150

d. Si se desea obtener los registros cuyos apellidos sean Vanegas o Cetina, se debe
utilizar el operador IN que especifica los registros que se quieren visualizar de
una tabla.
SELECT apellidos FROM usuarios WHERE apellidos IN (Vanegas,Cetina)

O se puede utilizar el operador OR


SELECT * FROM usuarios WHERE apellidos=Vanegas OR apellidos=Cetina

e. Si se desea obtener los registros cuya identificacin sea menor de 110 y la


ciudad sea Cali, se debe utilizar el operador AND.
SELECT * FROM usuarios WHERE identificacin<=110 AND ciudad=Cali

f. Si se desea obtener los registros cuyos nombres empiecen por la letra A, se


debe utilizar el operador LIKE que utiliza los patrones % (todos) y _
(carcter).
SELECT * FROM usuarios WHERE nombres LIKE A%

g. Si se desea obtener los registros cuyos nombres contenga la letra a.


SELECT * FROM usuarios WHERE nombres LIKE %a%

h. Si se desea obtener los registros donde la cuarta letra del nombre sea una a.
i.
SELECT * FROM usuarios WHERE nombres LIKE

a%

j. Si se desea obtener los registros cuya identificacin este entre el intervalo 110 y
150, se debe utilizar la clusula BETWEEN, que sirve para especificar un
intervalo de valores.
SELECT * FROM usuarios WHERE identificacin BETWEEN 110 AND 150

12.3.8 DELETE
La sentencia SQL de eliminacin de datos DELETE permite borrar todos o un grupo
especifico de registros de una tabla. Su formato es:
DELETE FROM nombre_tabla

A continuacin se realizarn algunos ejemplos:


a. Para eliminar todos los registros de la tabla usuarios.
DELETE FROM usuarios

b. Para eliminar solamente los registros cuya identificacin sea mayor de 180.
DELETE FROM usuarios WHERE identificacin >180

c. Para eliminar los registros diferentes del nombre Rosa


DELETE FROM usuarios WHERE nombres NOT IN (Rosa)

12.3.9 UPDATE
La sentencia SQL de actualizacin UPDATE permite actualizar un campo de una tabla.
Su formato es:
UPDATE nombre_tabla SET nombre_campo=valor

A continuacin se realizan algunos ejemplos:


a. Para actualizar el campo credito en 100000 para los registros cuyo nombre
empiecen por A.
UPDATE usuarios SET credito=credito +100000 WHERE nombres LIKE A%

b. Para actualizar el campo credito en -50000 para los registros cuya ciudad sea
igual a Buga.
UPDATE usuarios SET credito=credito-50000 WHERE ciudad=Buga

12.3.10 INNER JOIN


Permite obtener datos de 2 ms tablas. Cuando se realiza la concatenacin de las
tablas, no necesariamente se deben mostrar todos los datos de las tablas. Su formato es:
SELECT tabla1.campo, tabla2.campo, tabla1.campo2,. FROM tablaprincipal
INNER JOIN tablasecundaria ON campocomuntabla1=campocomuntabla2

Para realizar algunos ejemplos explicativos se utilizar la tabla usuarios y


adems, se supondr que se tiene otra tabla llamada pedidos, que contendr la siguiente
estructura:
Tabla 12.8 Estructura de los campos de la tabla PEDIDOS.
Campo
nropedido
identificacion
fechacompra
fechavence
observacion

Tipo de Dato
varchar
varchar
date
date
varchar

Y que contiene la siguiente informacin:

Longitud
15
15
20
25
30

Tabla 12.9 Informacin de la tabla pedidos.


nropedido
10
20
30
40
50
60
70
80
90

Identificacin
100
101
100
112
101
118
101
100
101

fechacompra
01/02/2006
15/03/2006
20/05/2006
31/08/2006
15/12/2006
10/04/2006
20/06/2006
12/06/2006
28/08/2006

fechavence
01/02/2006
15/03/2006
20/06/2006
31/10/2006
30/12/2006
10/06/2006
20/07/2006
12/09/2006
28/09/2006

observacion
Pago de contado
Descuento del 5%
Descuento del 2%
Pago a sesenta das
Pago de contado
Sin descuento
Descuento del 5%
Pago a noventa das
Pago de contado

a. Para visualizar los campos identificacin, nombres, apellidos de la tabla


usuarios y nropedido, fecha de compra, fecha de vencimiento y observacin de
la tabla pedidos, se debe realizar la siguiente instruccin:
SELECT
usuarios.identificacion,
usuarios.nombres,
pedidos.nropedido,
pedidos.fechacompra,
pedidos.observacion
FROM usuarios INNER JOIN pedidos
ON usuarios.identificacion = pedidos.identificacion

usuarios.apellidos,
pedidos.fechavence,

b. Para visualizar todos campos de las tablas usuarios y pedidos donde


identificacin sea mayor que 100, se debe realizar la siguiente instruccin:
SELECT usuarios.*, pedidos.*
FROM usuarios INNER JOIN pedidos
ON usuarios.identificacion = pedidos.identificacion
WHERE usuarios.identificacion>100

12.4 Conexin a bases de datos con VB.NET


Visual Basic .NET trabaj con la tecnologa ADO.NET (Activex Data Object) para el
el acceso a una base de datos utilizando los proveedores administradores de bases de
datos que funcionan en el entorno .NET. La plataforma .NET incorpora cuatro
proveedores: SQL SERVER, ORACLE, ODBC (Access), OLEDB.
ADO.NET proporciona acceso a orgenes de datos como Microsoft SQL Server
y XML, as como a orgenes de datos OLE DB y ODBC. Se puede utiliza ADO.NET
para conectar a los orgenes de datos y recuperar, manipular y actualizar los datos
contenidos.
ADO.NET es un conjunto de clases que se encuentran en el archivo
System.Data.dll y est integrada con las clases del archivo System.Xml.dll. Cuando se
compila cdigo que utiliza el espacio de nombres System.Data que hace referencia a
dichos archivos.
Sus principales clases son:
DataSet: conjunto de datos donde se pueden incluir una o ms tablas con la
informacin acerca de las relaciones entre estas, y las restricciones que puedan
tener los datos.

DataTable: permite la manipulacin de los datos en la memoria y realiza


operaciones como la exploracin, ordenacin, edicin, filtrado, etc.
DataView: permite representar los datos de la clase DataTable, creando
mltiples vistas de los mismos.
Los proveedores de datos proporcionan el puente entre las bases de datos y las
aplicaciones. Los principales objetos de un proveedor de datos .NET son:
Connection: sirve para establecer una conexin con una base de datos. Se utiliza
SqlConnection para una conexin a SQL Server, OleDbConnection para una
conexin a Access y OracleConnection para Oracle.
Command: sirve para ejecutar sentencias SQL y devolver resultados. Se utiliza
SqlCommand para una conexin a SQL Server, OleDbCommand para una
conexin a Access y OracleCommand para Oracle.
DataAdapter: es un adaptador de datos, el cual es un conjunto de objetos para
intercambiar datos entre una base de datos y un conjunto de datos. Se utiliza
SqlDataAdapter para una conexin a SQL Server, OleDataAdapter para una
conexin a Access y OracleDataAdapter para Oracle.
12.5 Ejemplos prcticos de bases de datos
12.5.1 Conexin a una base de datos SQL Server por cdigo
Dentro de un proyecto llamado ConexionASQLServer, realizar un programa que
permita realizar una conexin a una base de datos de SQL Server llamada
bdlibrovbnet.mdf y visualizar los registros de la tabla clientes en un control
DataGridView.
NOTA: para este ejemplo el usuario tiene que tener instalado Microsoft SQL
SERVER 2005 o posterior y crear una base de datos llamada bdlibrovbnet y dentro de
ella una tabla llamada clientes (Ver anexo A, SQL Server).

Crear la interfaz de usuario.

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los


siguientes controles en el formulario en la posicin deseada: 1 Button, 2 Label y 1
DataGridView.

Establecer las propiedades de los objetos de la interfaz de usuario

Establezca las siguientes modificaciones a los controles:

Tabla 12.10 Propiedades de controles proyecto ConexionASQLServer.


Control
DataGridView1
Button1
Label1

Label2

Form1

Propiedad
Name
Name
Text
Name
Text
Font
Name
Text
Font
Name
Text

Valor
datos
botoncargar
Cargar registros tabla.
lblbd
Conexin a la base de datos bdlibrovbnet.mdf de SQL
SERVER.
True
lbltabla
Tabla : Clientes
True
formulario
Conexin a una base de datos SQL SERVER.

La interfaz de usuario queda como se muestra en la siguiente figura:


Figura 12.1 Interfaz de usuario ConexionASQLServer.

Escribir cdigo
a) Antes de la apertura de la clase formulario se debe importar el espacio de
nombres System.Data.SqlClient:
Imports System.Data.SqlClient
Public Class Formulario
.

End Class

El espacio de nombres System.Data.SqlClient es necesario para utilizar las


diferentes clases que permitan las operaciones con bases de datos; en este caso, SQL
Server.
b) Seleccione el objeto botoncargar, d doble clic para abrir el editor de cdigo y
escriba el siguiente cdigo:
Dim conexion As String
conexion = "Data Source=(local)\SQLEXPRESS;Database=bdlibrovbnet;
Integrated Security=True"
Dim seleccion As String = "SELECT * FROM clientes"
Dim adaptadordedatos As SqlDataAdapter
Dim tabladedatos As New DataTable

Try
adaptadordedatos = New SqlDataAdapter(seleccion, conexion)
adaptadordedatos.Fill(tabladedatos)
tabla.DataSource = tabladedatos
Catch ex As Exception
MsgBox("Error: " & ex.Message)
End Try

Se crea una variable llamada conexion de tipo String que contendr la cadena
de conexin a la base de datos bdlibrovbnet.mdf de SQL Server. La cadena de
conexin debe contener como mnimo los siguientes parmetros:

Data Source: Se le asigna la ruta donde se encuentra el servidor SQL Server; en


este caso, SQL Server se instalo en el computador de trabajo por lo cual el nombre
del servidor es local.
Database: Se le asigna el nombre de la base de datos a la que se quiere conectar.
Integrated Security: Se le asigna True o False para determinar si la seguridad es
integrada o no.

Luego se crean los siguientes objetos: seleccion de tipo String a la cual se le


asigna la informacin que se quiere mostrar; en este caso todos los registros de la tabla
clientes (Select * from Clientes); adaptadordedatos de tipo SqlDataAdapter el cual
ser el adaptador de datos para la base de datos a manipular; tabladedatos se le asigna
espacio de memoria de tipo DataTable para guardar los datos en memoria y poder
realizar operaciones con dichos datos. En un bloque Try se le asigna espacio de
memoria de tipo SqlDataAdapter al objeto adaptadordedatos, al cual se le enva
como parmetros los objetos seleccion (datos a mostrar) y conexion (cadena de
conexin), luego se rellena (fill) el adaptador de datos con la tabla de datos
(tabladedatos) y por ltimo al objeto datos en su propiedad DataSource se le establece
el conjunto de datos que se van a mostrar al asignrsele la tabla de datos. Por el bloque
Catch se establece un mensaje en caso de que ocurra un error.

Ejecutar el proyecto

Al ejecutarse el proyecto y pulsar el botn Cargar registros tabla, se visualizar el


formulario con los registros de la tabla clientes:
Figura 12.2 Formulario con los registros de la tabla clientes.

12.5.2. Conexin a SQL Server utilizando el explorador de servidores


Elaborar un proyecto llamado ConexionBDExploradorServidores y realizar un
programa que permita a un usuario realizar una conexin a una base de datos de SQL
Server y mostrar los registros de una tabla en un objeto DataGridView utilizando el
Explorador de servidores.
NOTA: para este ejemplo se utilizar la base de datos SQL Server llamada
bdlibrovbnet.mdf (Ver anexo A, SQL Server). De est base de datos se utilizar la
tabla clientes.

Crear la interfaz de usuario

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los


siguientes controles en el formulario en la posicin deseada: 1 Label y 1
DataGridView.

Establecer las propiedades de los objetos de la interfaz de usuario

Establezca las siguientes modificaciones a los controles:


Tabla 12.11 Propiedades de los controles de ConexionBDExploradorServidores.
Control
DataGridView1
Label1

Form1

Propiedad
Name
Name
Text
Font
Name
Text

Valor
datos
lblbd
Conexin a SQL Server utilizando el
Explorador de servidores.
True
formulario
Conexin a SQL Server - Explorador de
servidores.

La interfaz de usuario queda como se muestra en la siguiente figura:


Figura 12.3 Interfaz de usuario (ConexionBDExploradorServidores).

Explorador de servidores

Del men Ver seleccione la opcin Explorador de servidores o pulse simultneamente


las teclas Ctrl+Alt+S, para visualizar la siguiente figura:
Figura 12.4 Ventana del Explorador de servidores.

Pulse el icono conectar con bases de


Agregar conexin como muestra la figura:

, para visualizar la ventana de

Figura 12.4 Ventana Agregar conexin.

En esta ventana se pueden realizar lo siguiente:

Elegir proveedor base de datos: se puede elegir el proveedor de la base de datos.


Por omisin se cargar el sistema administrador de base de datos SQL Server.
Elegir base de datos: permite elegir la base de datos a utilizar.
Probar la conexin: permite saber si una conexin ha sido exitosa o no.
Modificar la cadena de conexin: con la opcin Avanzadas se puede modificar la

conexin a la base de datos.


Para el ejemplo seleccione la base de datos bdlibrovbnet.mdf la cual se
encuentra en la carpeta Data de SQL Server (si la instalacin la realizo en c:\ la ruta
sera: C:\Archivos de programa\Microsoft SQL Server\MSSQL.1\MSSQL\Data).
Figura 12.5 Ventana con la base de datos seleccionada.

Pulse el botn Aceptar para visualizar la siguiente figura:


Figura 12.6 Explorador de servidores con la conexin a una base de datos.

Al pulsar en el signo (+) al lado del nombre de la base de datos se visualizar la


estructura definida en la base de datos. Si desea ver las tablas que contiene la base de
datos pulse el signo (+) al lado de Tablas.

Figura 12.7 Estructura de la base de datos bdlibrovbnet.mdf.

Obtener el origen de datos para el DataGridView

Seleccione el objeto DataGridView llamado datos y en la flecha que aparece en el lado


superior derecho, d clic para visualizar las Tareas de DataGridView:
Figura 12.8 Ventana Tareas de DataGridView.

Escoja la opcin Elegir orgen de datos, para visualizar la siguiente figura:

Figura 12.9 Ventana Elegir orgen de datos.

D clic sobre el link Agregar orgen de datos del proyecto, se visualizar la


siguiente ventana:
Figura 12.10 Asistente para la configuracin de orgenes de datos.

Seleccione el objeto Base de datos y pulse el botn Siguiente>, para visualizar


la ventana de eleccin de la conexin de datos. Seleccione la base de datos
bdlibrovbnet.mdf:

Figura 12.11 Ventana Elegir la conexin de datos.

Al Seleccionar la base de datos que se va a trabajar y pulsando el botn


Siguiente> se visualizar el siguiente mensaje:
Figura 12.12 Ventana para copiar el archivo de datos al proyecto.

Pulse el botn S para copiar el archivo de datos en la carpeta en donde guard el


proyecto y se visualizar la ventana de guardar cadena de conexin:
Figura 12.13 Ventana Guardar cadena de conexin.

Cambie el nombre de la conexin que all aparece por cadenaconexion y pulse el botn
Siguiente>, se visualizar la siguiente figura:
Figura 12.14 Ventana de eleccin de objetos de la base de datos.

Pulse el signo (+) al lado de Tablas para desplegar las tablas de la base de datos
y seleccione la tabla clientes. Por otro lado, cambie el nombre del DataSet que all
aparece por datosclientes y pulse el botn Finalizar para visualizar la siguiente figura:
Figura 12.15 DataGridView con los campos de la tabla clientes.

Como se puede apreciar, se crearon tres nuevos objetos: el objeto Datosclientes


que contendr los datos seleccionados, el objeto ClientesBindingSource que en su
propiedad DataSource se le asignar el objeto Datosclientes y en la propiedad

DataMember el nombre de tabla seleccionada. Por otro lado, se cre el objeto


ClientesTableAdapter, el cual ser el adaptador de datos para la conexin realizada.

Ejecutar el proyecto

Al ejecutarse el proyecto, se visualizar en el formulario los datos de la tabla clientes en


el objeto DataGridView de la base de datos bdlibrovbnet.mdf de SQL Server:
Figura 12.16 DataGridView con los registros de la tabla clientes.

12.5.3 Conexin a una base de datos con DataGridView y BindingNavigator


Disear un proyecto llamado ConexionAutomatica y realizar un programa que permita
a un usuario realizar una conexin a una base de datos de SQL Server y mostrar los
registros de una tabla llamada clientes en un objeto DataGridView, adems se debe
poder desplazar por los registros de dicha tabla utilizando el control BindingNavigator.
NOTA: para este ejemplo se utilizar la base de datos SQL Server
bdlibrovbnet y su tabla clientes (Ver anexo A, SQL Server).

llamada

Crear la interfaz de usuario

Modifique las siguientes propiedades del formulario:


Tabla 12.12 Propiedades modificadas del formulario.
Control
Form1

Propiedad
Name
Text

Valor
formulario
Conexin a una base de datos SQL
Server.

Conectarse a la base de datos.

Del men Ver seleccione la opcin Explorador de servidores para visualizar la


siguiente figura:

Figura 12.17 Ventana Explorador de servidores.

Al pulsar el icono conectar con bases de


Agregar conexin como muestra la figura:

, se visualizar la ventana de

Figura 12.18 Ventana Agregar conexin.

Seleccione la base de datos bdlibrovbnet.mdf, la cual se encuentra en la carpeta


data de SQL Server (si la instalacin la realiz en c:\ la ruta sera: C:\Archivos de
programa\Microsoft SQL Server\MSSQL.1\MSSQL\Data. Pulse el botn Aceptar para
visualizar la siguiente figura:

Figura 12.19 Explorador de servidor - conexin a la base de datos SQL Server.

Al pulsar en el signo (+) al lado del nombre bdlibrovbnet.mdf se visualizar la


estructura definida en la base de datos. Si desea ver las tablas que contiene la base de
datos pulse el signo (+) al lado de Tablas.

Configurar orgen de datos

Del men Datos seleccione la opcin Agregar nuevo orgen de datos, para
visualizar la siguiente figura:
Figura 12.20 Asistente para la configuracin de orgenes de datos.

Seleccione el objeto Base de datos y pulse el botn Siguiente>, para visualizar


la ventana Elegir conexin de datos. En la ventana se debe seleccionar la base de datos
bdlibrovbnet.mdf:

Figura 12.21 Ventana Elegir la conexin de datos.

Pulse el botn Siguiente> para visualizar el siguiente mensaje:


Figura 12.22 Ventana para copiar la conexin al proyecto.

Pulse el botn S para copiar el archivo de datos en la carpeta donde guard el


proyecto. Se mostrar la ventana Guardar cadena de conexin en el archivo config de la
aplicacin:
Figura 12.23. Ventana Guardar cadena de conexin.

Cambie el nombre de la conexin que all aparece por conexionsqlserver y


pulse el botn Siguiente>, se visualizar la siguiente figura:
Figura 12.24. Ventana de eleccin de objetos de la base de datos.

Pulse el signo (+) al lado de Tablas para desplegar las tablas de la base de datos
y seleccione la tabla clientes. Por otro lado, cambie el nombre del DataSet que all
aparece por conjuntodedatos y pulse el botn Finalizar para visualizar la siguiente
figura:
Figura 12.25. Proyecto con la base de datos y el orgen de datos agregados.

Nuevamente del men Datos seleccione la opcin Mostrar orgenes de datos,


para visualizar la siguiente figura:

Figura 12.26 Proyecto con la base de datos y el orgen de datos agregados.

En la parte izquierda aparece la ventana Orgenes de datos. All estar la tabla


que se haba seleccionado. Pulse el signo (+) al lado de la tabla clientes para desplegar
los campos.
D clic sobre la tabla clientes, pulse el botn izquierdo del mouse y arrastre el
mouse hacia el formulario y automticamente se crearn los siguientes objetos: un
control DataGridView, un BindingNavigator (ClientesBindingNavigator
representa una manera normalizada para navegar y manipular los datos en un
formulario), un DataSet (conjuntodedatos representa un conjunto de datos
recuperados de un orgen de datos), un BindingSource (ClientesBindingsource
encapsula el orgen de datos y proporciona las funciones de navegacin, filtrado,
ordenacin y actualizacin de los datos), un TableAdapter (ClientesTableAdapter
crea una nueva tabla con los datos devueltos), un AdapterManager
(ClientesAdapterManeger administrador del adaptador de datos).
Figura 12.27 Aplicacin con los objetos creados automticamente.

Ejecutar el proyecto

Al ejecutarse el proyecto, se visualizar en el formulario los datos de la tabla clientes en


el objeto DataGridView de la base de datos bdlibrovbnet.mdf de SQL Server:
Figura 12.28 Ejecucin de la aplicacin ConexionAutomatica.

Con los iconos del objeto BindingSource se podr desplazar por cada uno de los
registros de la tabla.
Estando en modo edicin se pudo apreciar en la ventana Orgenes de datos que
al pulsar el signo (+) al lado de la tabla clientes se despliegan los campos de est.
Tambin es posible arrastrar cada uno de los campos de la tabla hacia el formulario.
Realice esta operacin hasta obtener la siguiente figura:
Figura 12.29 Formulario con los campos de la tabla clientes.

Al ejecutarse nuevamente la aplicacin y situarse en cualquier registro de la


tabla se visualizar cada registro independiente en la parte derecha del formulario, como
se aprecia en la siguiente figura:
Figura 12.30 Formulario con un registro seleccionado.

12.5.4 Insertar un nuevo registro a una tabla


Escribir un proyecto llamado InsertarNuevoRegistro y realizar un programa que
permita insertar un nuevo registro a la tabla clientes de la base de datos SQL Server
bdlibrovbnet.mdf. El nuevo registro se debe adicionar en un control DataGridView.

Crear la interfaz de usuario

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los


siguientes controles en el formulario en la posicin deseada: 1 Label, 3 Button, 1
DataGridView.

Establecer las propiedades de los objetos de la interfaz de usuario

Establezca las siguientes modificaciones a los controles:


Tabla 12.13 Propiedades de controles proyecto InsertarNuevoRegistro.
Control
Button1
Button2
Button3
DataGridView1
Label1

Form1

Propiedad
Name
Text
Name
Text
Name
Text
Name
Name
Text
Font- Bold
Name
Text

Valor
botonver
Ver registros tabla
botonnuevo
Nuevo registro
botonguardar
Guardar nuevo registro
registros
lbltexto
Insertar un nuevo registro en la tabla clientes base
de datos bdlibrovbnet.mdf
True
formulario
Insertar registro en una tabla de una base de datos.

La interfaz de usuario queda como se muestra en la siguiente figura:


Figura 12.31 Interfaz de usuario (InsertarNuevoRegistro).

Escribir cdigo
a) Antes de la apertura de la clase formulario se debe importar el siguiente espacio
de nombres:
Imports System.Data.SqlClient
Public Class Form1
.
:::::::
End Class

El espacio de nombres System.Data.SqlClient es necesario para utilizar las


diferentes clases que permitan tambin las operaciones con la base de datos SQL
Server.
b) Despus de la apertura de la clase formulario y antes de los procedimientos
Sub, inicialice las siguientes variables u objetos globales:
Imports System.Data.SqlClient
Public class formulario
Private transaccion As New BindingSource
Private adaptador As SqlDataAdapter
Dim conexion As String = "Data Source=(local)\SQLEXPRESS;Database=
bdlibrovbnet; Integrated Security=True"
.
.
End Class

Se inicializan los siguientes objetos: transaccion de tipo BindingSource para


encapsular y manipular el orgen de los datos; adaptador de tipo SqlDataAdapter
para intercambiar datos con una base de datos SQL Server; conexion de tipo String al
que se le asignar la cadena de conexin para SQL Server.
c) D doble clic sobre el formulario para abrir el editor de cdigo y cree un nuevo
procedimiento llamado ver_datos:

Public Sub ver_datos(ByVal sentenciasql As String, ByVal tabla As DataGridView)


Try
adaptador = New SqlDataAdapter(sentenciasql, conexion)
Dim comando As New SqlCommandBuilder(adaptador)
Dim tabladedatos As New DataTable()
adaptador.Fill(tabladedatos)
transaccion.DataSource = tabladedatos
With tabla
.Refresh()
.FirstDisplayedScrollingRowIndex = transaccion.Position
End With
Catch ex As SqlException
MsgBox(ex.Message.ToString)
Catch ex As Exception
MsgBox(ex.Message.ToString)
End Try
End Sub

El procedimiento ver_datos recibe como parmetros una variable de tipo String


llamada sentenciassql y un objeto tabla de tipo DataGridView. En un bloque Try se le
asigna espacio de memoria al objeto adaptador de tipo SqlDataAdapter el cual recibe
la sentencia SQL y la cadena de conexin. Por otro lado, se crea un objeto tabladedatos
al cual se le asigna espacio de memoria DataTable (). Se rellena el adaptador de datos
(adaptador) con la tabla de datos (tabladedatos) y a la propiedad DataSource del
objeto transaccion se le asigna la tabla de datos. Por otro lado, se refresca (Refresh ())
la cuadricula para cargar los datos y se obtiene la posicin del primer registro de la
cuadricula (FirstDisplayedScrollingRowIndex = transaccion.Position). Utilizando
dos bloques catch se atrapan las excepciones SQLException ( por si existe algn error
en ejecucin de las sentencias SQL) y Exception ( por si existe algn problema con el
sistema).
d) Seleccione el objeto botonver, d doble clic para abrir el editor de cdigo y
escriba el siguiente cdigo:
registros.DataSource = transaccion
cargar_datos("select * from clientes", registros)

A la propiedad DataSource del objeto registros se le establece el orgen de


datos (transaccion) y se llama al procedimiento ver_datos envindole la sentencia
SQL Select * from clientes y el objeto registros.
e) Seleccione el objeto botonnuevo, d doble clic para abrir el editor de cdigo y
escriba el siguiente cdigo:
transaccion.AddNew()

Se utiliza el mtodo AddNew del objeto transaccion para crear un nueva fila en
el objeto registros.
f) Seleccione el objeto botonguardar, d doble clic para abrir el editor de cdigo
y escriba el siguiente cdigo:
If Not transaccion.DataSource Is Nothing Then
Adaptador.Update(CType(transaccion.DataSource, DataTable))
cargar_datos("Select * From clientes", tabla)

Else
MsgBox("No se pudo guardar el registro", MsgBoxStyle.Critical)
End If

Si la fila del objeto registros no es vaca por medio del mtodo Update del
objeto adaptador se guarda la nueva fila en la tabla clientes envindole el contenido
del DataSource del objeto transaccion y un objeto DataTable. Por otro lado, se llama
al procedimiento ver_datos para mostrar nuevamente los registros de la tabla clientes.
Si la fila es vaca se muestra el mensaje No se pudo guardar el registro.

Ejecutar el proyecto

Al ejecutarse el proyecto y pulsar el botn Ver registros tabla se visualizarn los


registros de la tabla clientes, como se aprecia en la siguiente figura:
Figura 12.32 Formulario con los registros de la tabla clientes.

Al pulsar el botn Nuevo Registro, se seleccionara en una nueva fila el primer


campo del objeto registros, el formulario queda de la siguiente forma:
Figura 12.33. Cuadricula con una nueva fila para insertar datos.

Si se captura la informacin en cada campo de la cuadricula (1000, Chicles


Bacan, Cristian Vanegas, Cra 68 # 20-21, 4159854, Bogot) y luego se pulsa el botn
Guardar nuevo registro, se insertarn los datos en la tabla clientes. En la siguiente
figura se aprecia el registro insertado:
Figura 12.34 Cuadricula con un nuevo registro insertado en la tabla clientes.

12.5.5 Filtrar registros de una tabla


Disear un proyecto llamado FiltrarPorCampos y permitir realizar filtrar los registros
de una tabla por cualquier campo de dicha tabla y visualizar todos los registros que
cumplan la condicin en un control DataGridView.

Crear la interfaz de usuario

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los


siguientes controles en el formulario en la posicin deseada: 6 Label, 1 TextBox, 1
Button, 1 DataGridView y 2 ComboBox.

Establecer las propiedades de los objetos de la interfaz de usuario

Establezca las siguientes modificaciones a los controles:


Tabla 12.14 Propiedades de controles proyecto FiltrarPorCampos.
Control
Label1

Label2

Propiedad
Valor
Text
Filtrar los registros de una tabla por cualquier
campo.
Name
lblfiltrar
Font /Bold True
Text
Seleccione campo
Name
lblcampo

Label3

Text
Name
Label4
Text
Name
Label5
Text
Name
Label6
Text
Name
Font/ Bold
TextBox1
Name
Button1
Name
Text
ComboBox1
Name
ComboBox2
Name
DataGridView1 Name
Form1
Name
Text

Seleccione operador
lbloperador
Criterio de filtrado
lblcriterio
Su seleccin:
lblseleccion
resultado
lblresultado
True
valorcampo
botonfiltrar
Filtrar registros
listacampos
listaoperadores
registrosfiltrados
formulario
Filtrar registros de una tabla.

Figura 12.35 Interfaz de usuario (FiltrarPorCampos).

Escribir cdigo
a) Seleccione el control listacampos, busque la propiedad Items, d clic en los tres
puntos al lado de Coleccin y en ventana Editor de la coleccin Cadena
escriba por cada lnea un campo de la tabla clientes y pulse el botn Aceptar.
Otra forma es dar clic sobre la flecha del control en la parte superior derecha y
seleccionar la opcin Editar elementos. La ventana de edicin deber quedar
como se muestra en la figura:

Figura 12.36 Ventana Editor del objeto listacampos.

b) Seleccione el control listaoperadores, busque la propiedad Items, d clic en los


tres puntos al lado de Coleccin y en ventana Editor de la coleccin Cadena
escriba por cada lnea los operadores: <, >=, <, >=, =, <>, luego pulse el botn
Aceptar. La ventana de edicin deber quedar como se muestra en la figura:
Figura 12.37 Ventana Editor del objeto listaoperadores.

c) Antes de la apertura de la clase formulario se debe importar el siguiente espacio


de nombres:
Imports System.Data.SqlClient
Public Class formulario

End Class

d) Despus de la apertura de la clase formulario y antes de los procedimientos


Sub, inicialice la siguiente variable global:

Public class formulario


Dim texto as String
.
End Class

La variable texto servir para guardar el contenido del objeto lblresultado en su


propiedad Text.
e) Seleccione el objeto listacampos, d doble clic para abrir el editor de cdigo y
escriba el siguiente cdigo:
lblresultado.Text = listacampos.SelectedItem.ToString

Al objeto lblresultado en su propiedad Text se le asigna el nombre del campo


seleccionado por medio de la propiedad SelectedItem del objeto listacampos;
f) Seleccione el objeto listaoperadores, d doble clic para abrir el editor de cdigo
y escriba el siguiente cdigo:
lblresultado.Text = lblresultado.Text & listaoperadores.SelectedItem.ToString
texto=lblresultado.text

Al objeto lblresultado en su propiedad Text se le asigna su contenido actual


concatenado con el operador seleccionado por medio de la propiedad SelectedItem del
objeto listaoperadores. A la variable texto se le asigna el contenido del objeto
lblresultado.
g) Seleccione el objeto txtcriterio, d doble clic para abrir el editor de cdigo y
escriba el siguiente cdigo:
lblresultado.Text = texto & txtcriterio.text

Al objeto lblresultado en su propiedad Text se le asigna el contenido de la


variable texto concatenado con el valor escrito en el objeto txtcriterio en su propiedad
text.
h) Seleccione el objeto botonfiltrar, d doble clic para abrir el editor de cdigo y
escriba el siguiente cdigo:
Dim conexion As String
conexion = "Data Source=(local)\SQLEXPRESS;Database=bdlibrovbnet;
Integrated Security=True"
Dim clave = valorcampo.Text
Dim nombre_campo As String = listacampos.SelectedItem.ToString
Dim valoroperador As String = listaoperadores.SelectedItem.ToString
Dim seleccion As String = "SELECT * FROM clientes where " + nombre_campo + " " +
valoroperador + "'" + clave + "'"
Dim adaptador As SqlDataAdapter
Dim tabladedatos As New DataTable
Try
adaptador = New SqlDataAdapter(seleccion, conexion)
adaptador.Fill(tabladedatos)
tabla.DataSource = tabladedatos
Catch ex As Exception

MsgBox("Error: " & ex.Message)


End Try

Se crean las variables: clave que almacenar el valor que este escrito en el objeto
txtcriterio; nombre_campo de tipo String que almacenar el nombre del campo
seleccionado por medio de la propiedad SelectedItem del objeto listacampos;
valoroperador de tipo String que almacenar el operador seleccionado por medio de la
propiedad SelectedItem del objeto listaoperadores; tambin se crea una variable
seleccion de tipo String que almacenar la instruccin SQL Select. En dicha
instruccin se selecciona todos los campos de la tabla clientes (Select * from clientes)
y se utiliza la clusula Where para mostrar solo aquellos registros cuya
nombre_campo corresponda al criterio de valoroperador concatenado con clave. En
un bloque Try se le asigna espacio de memoria de tipo SqlDataAdapter al objeto
adaptador al cual se le enva como parmetros los objetos seleccion (sentencia SQL) y
conexion (cadena de conexin), luego se rellena (fill) el adaptador de datos con la tabla
de datos (tabladedatos) y se le asigna al objeto tabla por intermedio de la propiedad
DataSource el objeto tabladedatos.

Ejecutar el proyecto

Al ejecutarse el proyecto en el entorno de desarrollo, se visualizar la figura 12.35. Si se


selecciona del objeto listacampos el campo nit, del objeto listaoperadores el operador
>, se escribe en el objeto txtcriterio 300 y se pulsa el botn Filtrar registros se
visualizar en la cuadricula todos aquellos registros cuyo nit sea mayor que 300, como
se muestra en la siguiente figura:
Figura 12.38 Formulario con los registros cuyo nit es mayor de 300.

12.5.6 Informe de los registros de una tabla


Crear un proyecto llamado InformeDatosTabla, que permita a un usuario visualizar en
un formulario un reporte de todos los registros de la tabla clientes de la base de datos
bdlibrovbnet.mdf.

Crear la interfaz de usuario.

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los


siguientes controles en el formulario en la posicin deseada: 1
MicrosoftReportViewer.
Figura 12.43 Interfaz de usuario (InformeDatosTabla).

Para acoplar el control MicrosoftReportViewer1 al formulario, pulse la flecha


del lado superior derecha del objeto para ver la ventana Tareas de ReportViewer.
Figura 12.44 Interfaz de usuario (InformeDatosTabla).

Seleccione la opcin Acoplar en contenedor principal, se visualizar el


formulario con el control acoplado como se aprecia en la siguiente figura:

Figura 12.45 Control MicrosoftReportViewer acoplado al formulario.

Establecer las propiedades de los objetos de la interfaz de usuario

Establezca las siguientes modificaciones a los controles:


Tabla 12.15 Propiedades de controles proyecto InformeDatosTabla.
Control
Propiedad
MicrosoftReportViewer1 Name
Form1
Name
Text

Valor
reporte
formulario
Reporte de una tabla.

Figura 12.46 Interfaz de usuario modificada (InformeDatosTabla).

Disear el informe

Para disear el informe, pulse la flecha del lado superior derecha del objeto reporte
para ver la ventana Tareas de ReportViewer y escoja la opcin Disear nuevo
informe.

Figura 12.47 Seleccionar Disear nuevo informe.

Al seleccionar Disear nuevo informe, se visualizar la siguiente figura:


Figura 12.48 Asistente para informes.

D clic en Siguiente> para ver la ventana del Asistente para la configuracin


de orgenes de datos.

Figura 12.49 Asistente para la configuracin de orgenes de datos.

Seleccione el objeto Base de datos y pulse el botn Siguiente>, para visualizar


la ventana de eleccin de la base de datos:
Figura 12.50 Ventana Elegir la conexin de datos.

D clic en el botn Nueva Conexin. En la ventana que se visualiza elija como


orgen de datos Microsoft SQL Server y la base de datos bdlibrovbnet.

Figura 12.51 Ventana Agregar conexin.

Al pulsar el botn Aceptar se visualizar nuevamente la ventana de eleccin de


conexin de datos con la base de datos bdlibrovbnett.mdf, como se aprecia en la
siguiente figura:
Figura 12.52 Ventana con la base de datos seleccionada.

Pulse Siguiente> para visualizar el siguiente mensaje:

Figura 12.53 Ventana Microsoft Visual Studio.

Pulse el botn S para copiar el archivo de datos en la carpeta en donde guard el


proyecto y visualizar la ventana de guardar cadena de conexin:
Figura 12.54 Ventana Guardar cadena de conexin.

Cambie el nombre de la conexin que all aparece por conexion y pulse el botn
Siguiente>, se visualizar la siguiente figura:
Figura 12.55 Ventana de eleccin de objetos de la base de datos.

Pulse el signo (+) al lado de Tablas para desplegar las tablas de la base de datos

y seleccione la tabla clientes. Por otro lado, cambie el nombre del DataSet que all
aparece por conjuntodedatos y pulse el botn Finalizar para visualizar la siguiente
figura:
Figura 12.56 Asistente para informes seleccionar el orgen de datos.

Pulse los signos (+) para desplegar la tabla. D clic en Siguiente> para
visualizar la ventana de seleccin de tipo de informe.
Figura 12.57 Asistente para informes seleccionar el tipo de informe.

Seleccione la opcin Tabular o Matriz y d clic en Siguiente> para visualizar


la ventana de diseo de tabla.
Figura 12.58. Asistente para informes disear la tabla.

Seleccione cada campo y pulse el

botn Detalles>. Se obtendr la siguiente

figura:
Figura 12.59 Diseo de la tabla con los campos seleccionados.

D clic en Siguiente> para visualizar la ventana de eleccin de diseo de la


tabla.
Figura 12.60 Asistente para informes elegir el diseo de la tabla.

Seleccione la opcin Escalonado o Bloquear y d clic en Siguiente> para


visualizar la ventana de estilo de la tabla.
Figura 12.61 Asistente para informes elegir el estilo de tabla.

Seleccione la opcin con el estilo que desee y d clic en Siguiente> para


visualizar la ventana de finalizacin del asistente de informes.
Figura 12.62 Ventana de finalizacin del asistente de informes.

Donde aparece el nombre del informe cmbielo por Informe Clientes y d clic
en Finalizar> para visualizar el diseo final del informe.
Figura 12.63 Diseo final del informe.

En este momento se podrn modificar los textos de las etiquetas de los campos,
como tambin la longitud de los campos. Adems, en el explorador de soluciones se
visualizar el informe agregado al proyecto.
Elija la ficha de diseo del formulario y d clic sobre la flecha del objeto
reporte y seleccione la opcin Elegir informe.
Figura 12.64 Seleccionar opcin Elegir informe.

All escoja InformeDatosTabla.Informe Cliente.rdlc, para visualizar el


formulario con los objetos conjuntodedatos, clientesBindingSource y
clientesTableAdapter.
Figura 12.65 Formulario con los objetos de manejo de datos.

Ejecutar el proyecto

Al ejecutarse el proyecto, se visualizar la figura 4.56. Por medio de la barra de


herramientas se podr desplazar hacia las diferentes hojas del reporte, as como
imprimir el reporte, modificar el diseo del informe, configurar la pgina, cambiar el
tamao de visualizacin del informe y buscar texto dentro del informe.
Figura 12.66 Formulario con el reporte de los registros de la tabla clientes.

12.5.7 Relacin de tablas


Realizar un proyecto llamado RelacionConComboBox, que permita a un usuario
seleccionar desde una lista desplegable el nombre de una empresa y visualizar en una
cuadricula los pedidos que dicha empresa ha realizado.

Crear la interfaz de usuario

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los


siguientes controles en el formulario en la posicin deseada: 1 Label, 1 ComboBox, 1
Button, 1 DataGridView.

Establecer las propiedades de los objetos de la interfaz de usuario

Establezca las siguientes modificaciones a los controles:


Tabla 12.16 Propiedades de controles proyecto RelacionConComboBox.
Control
Label1
Button1

Propiedad

Text
name
Text

Valor
Seleccione empresa:
etiquetaclientes
Ver Pedidos

name
DataGridView1
ComboBox1
Form1

Name
Name
Name
Text

boton
tablapedidos
lista
formulario
Relacin de tablas con un
ComboBox.

Figura 12.67 Interfaz de usuario (RelacionConComboBox).

Establecer la conexin

Desde la ficha Datos del cuadro de herramienta arrastre hacia el formulario el adaptador
de datos SqlDataAdapter (Si no aparece el control, d clic derecho sobre la ficha
Datos y ejecute la orden Elegir elementos, busque el control, seleccinelo en el cuadro
de verificacin y pulse el botn Aceptar.). Se visualizar la siguiente figura:
Figura 12.68 Ventana Elegir la conexin de datos.

D clic en el botn Nueva Conexin. En la ventana que se visualiza elija como


orgen de datos Microsoft SQL Server y la base de datos bdlibrovbnet.
Figura 12.69 Ventana Agregar conexin.

Pulse el botn Aceptar, para visualizar nuevamente la ventana de Elegir la


conexin de datos. All pulse Siguiente> para ver el siguiente mensaje:
Figura 12.70 Ventana Microsoft Visual Studio.

Pulse el botn S para copiar el archivo de datos en la carpeta en donde guard el


proyecto. Se visualizar la ventana de eleccin de tipo de comando:
Figura 12.71 Ventana eleccin tipo de comando.

Por omisin esta seleccionada la opcin Usar instrucciones SQL. Pulse


Siguiente> para visualizar la ventana de generacin de instrucciones SQL.
Figura 12.72 Ventana Generar las instrucciones SQL.

Aqu puede realizar la seleccin de los datos que debera cargar el adaptador de
datos. Una forma es escribiendo en la ventana instrucciones SQL y la otra es pulsar el
botn Generador de consultas. Para el ejemplo, se pulsar el botn para visualizar la
siguiente figura:
Figura 12.73 Ventana Generador de consultas.

Seleccione la tabla clientes, pulse el botn Agregar y luego el botn Cerrar, se


visualizar la siguiente figura:

Figura 12.74 Generador de consultas con la tabla clientes.

En esta nueva ventana seleccione la opcin * (todas las columnas) o los campos
que desea visualizar (Si desea visualizar la consulta seleccionada pulse el botn
Ejecutar consulta). Se obtendr la siguiente figura:
Figura 12.75 Generador de consultas con los campos seleccionados (tabla clientes).

Pulse el botn Aceptar y se visualizar la siguiente figura:

Figura 12.76 Generador de consultas con la instruccin SQL.

Al pulsar el botn Finalizar, se crearn los objetos: SqlDataAdapter1 y


SqlConnection1. Cambie el nombre de dichos objetos por datosclientes y
conexioncliente respectivamente.
Ahora seleccione nuevamente el control SqlDataAdapter de la ficha Datos y
realice los mismos pasos que se realizaron anteriormente, pero esta vez seleccione la
tabla pedidos y cambie los nombres de los objetos SqlDataAdapter1 y
sqlConnection1 por datospedidos y conexionpedidos. Se visualizar la siguiente
figura:
Figura 12.77 Formulario con los objetos SqlDataAdapter y sqlConnection.

Seleccione la opcin Generar Conjunto de Datos del men Datos y se


mostrar el siguiente cuadro de dilogo:

Figura 12.78 Ventana Generar conjunto de datos.

Elija la opcin Nuevo y cambie el nombre DataSet1 por conjuntodedatos,


deshabilite el cuadro de verificacin pedidos (datospedidos) y pulse el botn Aceptar
para agregar el conjunto de datos a la aplicacin, como muestra la figura:
Figura 12.79 Formulario con el objeto conjuntodedatos.

Escribir cdigo
a) Antes de la apertura de la clase formulario se debe importar el siguiente espacio
de nombres:
Imports System.Data.SqlClient
Public Class formulario
:::::::
End Class

b) Despus de la apertura de la clase formulario y antes de los procedimientos

sub, inicialice las siguientes variables u objetos globales:


Public class formulario
Dim vistapedidos As DataView

:::::::::
End class

Se inicializa un objeto global llamado vistapedidos de tipo DataView para


obtener una vista de los datos.
c) D doble clic sobre el formulario para abrir el editor de cdigo del
procedimiento formulario_ Load y escriba el siguiente cdigo:
datosclientes.Fill(conjuntodedatos, "clientes")
datospedidos.Fill(conjuntodedatos, "pedidos")
lista.DataSource = conjuntodedatos.Tables("clientes")
lista.DisplayMember = conjuntodedatos.Tables("clientes").Columns(1).ToString
lista.ValueMember = conjuntodedatos.Tables("clientes").Columns(0).ToString
vistapedidos = conjuntodedatos.Tables("pedidos").DefaultView

Se rellenan los objetos datosclientes y datospedidos con el conjunto de datos y


su respectiva tabla. Al objeto lista en su propiedad DataSource se le asigna la tabla
clientes del conjunto de datos; a la propiedad DisplayMember se le asigna el valor del
segundo campo de la tabla clientes (columna uno (1) empresa) y a la propiedad
ValueMember se le asigna el valor del primer campo de la tabla clientes (columna cero
(0) - nit). Por ltimo al objeto vistapedidos se le asigna la tabla pedidos del conjunto de
datos y utilizando la propiedad DefaultView se personaliza la vista de los datos.
d) D doble clic sobre el objeto boton para abrir el editor de cdigo y escriba el
siguiente cdigo:
Dim datoempresa As String = lista.SelectedValue
vistapedidos.RowFilter = "nit = '" & datoempresa & "'"
tablapedidos.DataSource = vistapedidos

Se inicializa una variable llamada datoempresa de tipo String que almacenar


lo seleccionado en el objeto lista por intermedio de la propiedad SelectedValue. Se
utiliza la propiedad RowFilter del objeto vistapedidos para filtrar los registros por el
campo nit de acuerdo al valor de la variable datoempresa. Por ltimo se asigna a la
propiedad DataSource del objeto tablapedidos el contenido del objeto vistapedidos.
e) D doble clic sobre el objeto lista para abrir el editor de cdigo del
procedimiento lista_SelectedIndexChanged y escriba el siguiente cdigo:
tablapedidos.DataSource = Nothing

Utilizando la palabra clave nothing se libera en memoria el contenido que tenga


la propiedad DataSource del objeto tablapedidos.

Ejecutar el proyecto

Al ejecutarse el proyecto, se visualizar la figura 12.67, mostrndose en el objeto lista


el primer nombre de empresa de la tabla clientes (Si se desea ver los nombres de
empresas ordenados alfabticamente cambie el valor de la propiedad Sorted del objeto

lista por True). Si selecciona un nombre de empresa y se pulsa el botn Ver Pedidos,
se visualizar en la cuadricula todos los registros que estn relacionados con la tabla
pedidos.
Figura 12.80 Relacin de las tablas clientes pedidos con DataGridView.

12.6 Ejercicios bases de datos


1. Crear un programa que permita realizar una conexin a una base de datos y
mostrar datos de una tabla en un control ListView.
2. Elaborar un programa que permita realizar una conexin a una base de datos y
eliminar registros.
3. Escribir un programa que permita visualizar los registros de una tabla en campos
de texto. El usuario deber poderse desplazar por cada registro de la tabla
utilizando los botones: Primero, Siguiente, Anterior y ltimo.
4. Disear un programa que permita visualizar los registros de una tabla en un
control DataGridView. El usuario deber poderse desplazar por cada registro de
la tabla utilizando los botones: Primero, Siguiente, Anterior y ltimo.
5. Hacer un programa que permita escribir sentencias SQL en un campo de texto y
visualizar los resultados de dicha sentencia en una cuadricula.
6. Realizar un programa que permita visualizar un reporte los registros
relacionados cuyos nit sean mayores que 500.
7. Hacer un programa que permita visualizar un reporte los registros relacionados
cuyas empresas empiecen por la letra C.
8. Realizar un programa que permita hacer una conexin a una base de datos y
visualizar los registros cuyo nit sea menor o igual a 500 en un ListView.
9. Realizar un programa que permita realizar una relacin entre tres tablas de una
base de datos en SQL Server.
10. Hacer un programa que permita visualizar en un reporte los registros de una
relacin de dos tablas.

13. LENGUAJE DE CONSULTA INTEGRADO (LINQ)


LINQ (Language Integrated Query) proporciona funciones de consulta tiles para
manipular diferentes tipos de datos, esta nueva tecnologa es incluida en Visual Studio
2008. Se puede utilizar consultas LINQ en proyectos nuevos o proyectos existentes, el
nico requisito es que el proyecto se tiene que trabajar con la versin 3.5 o posterior del
.NET Framework. LINQ presenta las consultas como parte del lenguaje de Visual Basic
.NET. Con LINQ se puede consultar datos desde una base de datos SQL Server, XML,
matrices y colecciones en memoria. Como todas las consultas se escriben en el lenguaje
Visual Basic .NET se puede detectar los errores de las consultas en tiempo de
compilacin.
13.1 Proveedores LINQ
Un proveedor LINQ realiza una consulta y la traduce en comandos que podr ejecutar el
orgen de datos, adems convierte los datos del orgen en los objetos que obtiene los
resultados de la consulta. Visual Basic .NET tiene los siguientes proveedores LINQ:

LINQ to Objects: Permite consultar colecciones y matrices en memoria. Se debe


importar el espacio de nombres System.Linq.
LINQ to XML: Permite consultar y modificar archivos XML. Puede modificar
XML en memoria o cargarlos desde un archivo. Admite crear literales XML, lo que
permite mediante programacin la creacin de elementos, documentos y fragmentos
XML.
LINQ to SQL: Permite consultar, modificar, actualizar y eliminar datos de una base
de datos SQL Server. Visual Basic .NET incluye el diseador relacional de objetos,
el cual permite crear un modelo de objetos en una aplicacin que se asigna a objetos
de una base de datos. Es decir, convierte a SQL las consultas en un modelo de
objetos y las enva a la base de datos para su ejecucin.
LINQ to DataSet: Permite consultar, actualizar y agregar los datos de un conjunto
de datos ADO.NET.

13.2 Operadores de Consulta LINQ de VB.NET


El espacio de nombres System.Linq contiene mtodos que permiten llamar o depurar
consultas. VB.NET incluye palabras clave para las clusulas de consulta:
NOTA: para los ejemplos se utilizar la estructura de las tablas de la base de datos SQL
Server llamada bdlibrovbnet (Ver anexo A, SQL Server).
From: Permite especificar el orgen de datos que se desea consultar. Esta
clusula debe ser la parte inicial de una consulta. En el siguiente ejemplo la
clusula From especfica el orgen de datos Clientes y una variable de rango
misclientes quien acta como referencia de cada elemento de la tabla Clientes.
Dim consulta = From misclientes In Clientes

Select: Especifica la forma y el contenido de los datos que sern devueltos. Por
ejemplo si se desea visualizar solamente el nit y el nombre de la empresa de la
tabla clientes, se debe realizar el siguiente cdigo:

Dim consulta = From misclientes In Clientes


Select misclientes.nit, misclientes.empresa

Where: Se utiliza para filtrar datos de un orgen de datos. En el siguiente


ejemplo se muestran todos los clientes cuya ciudad sea Bogot.
Dim consulta = From misclientes In Clientes
Where misclientes.ciudad=Bogot Select misclientes

Tambin se pueden utilizar los operadores lgicos And y Or. Si se desea


visualizar todos los clientes que vivan en la ciudad de Bogot o Cali, el cdigo
sera el siguiente:
Dim consulta = From misclientes In Clientes
Where misclientes.ciudad=Bogot Or misclientes.ciudad=Cali
Select misclientes

Order By: Ordena una consulta de un orgen de datos por uno o varios campos
especificados. Para ordenarlo de A Z se utiliza Ascending, de Z A
Descendig, cuando no se especifica se usa Ascending predeterminadamente. Si
se desea ordenar la consulta por el nombre de la empresa de la tabla clientes de
A- Z, el cdigo sera el siguiente:
Dim consulta = From misclientes In Clientes
Where misclientes.ciudad=Bogot
Select misclientes Order By misclientes.empresa

Join: Combina dos colecciones con un campo comn de un orgen de datos. La


consulta puede devolver el total o una parte de los elementos de la coleccin que
tienen valores coincidentes. Para visualizar todos los clientes (nit, empresa) que
tengan pedidos(nropedido, observacin), el cdigo ser:
Dim consulta = From misclientes In Clientes
Join pedidos In Pedidos
On clientes.nit Equals pedidos.nit
Select clientes.nit, clientes.empresa,
pedidos.nropedido, pedidos.observacion

Group By: Agrupa los resultados de una consulta por uno o ms campos.
Combina dos colecciones con un campo comn de un orgen de datos. Para
visualizar agrupadas y ordenadas las fecha de entrega de los pedidos de la tabla
Pedidos, el cdigo sera:
Dim consulta = From pedidos In Pedidos Order By Pedidos.fechaentrega
Group By fecha = pedidos.fechaentrega
Into orden = Group

Aggregate: Aplica una o ms funciones de agregado a un orgen de datos. Esta


clusula debe ser la parte inicial de una consulta. Las funciones de agregado son:
o Average: Calcula el promedio de una serie de valores.
o Count: Cuenta los elementos de un orgen de datos, opcionalmente se
puede especificar los elementos a contar.
o Max: Obtiene el valor mximo de los elementos de un orgen de datos.

o Min: Obtiene el valor mnimo de los elementos de un orgen de datos.


o Sum: Realiza la suma de los valores de un orgen de datos.
Ejemplos:
Si se tiene el siguiente arreglo:
Dim valores As Integer ={12,15,2,14,78,25}
Para contar los elementos.
Dim cuenta As Integer = Aggregate ctavalores In valores Into Count()
Para contar los elementos mayores de 20.
Dim cuenta As Integer = Aggregate ctavalores In valores Into Count(ctavalores>20)
Para obtener el promedio de los valores.
Dim cuenta As Integer = Aggregate ctavalores In valores Into Average()
Para obtener el valor mximo.
Dim cuenta As Integer = Aggregate ctavalores In valores Into Max()
Para obtener el valor mnimo.
Dim cuenta As Integer = Aggregate ctavalores In valores Into Min()
Para obtener la suma de los valores.
Dim cuenta As Integer = Aggregate ctavalores In valores Into Sum()

13.3 Escribir una consulta con LINQ en VB.NET


Para definir y utilizar consultar con LINQ, deben realizar tres acciones:
Obtener el orgen de datos: Se debe especificar cules sern los datos que se
van a utilizar y donde estn.
Crear la consulta: Se especifica la informacin que se desea obtener del orgen
de datos, estos, se pueden ordenar, filtrar, agrupar.
Ejecutar la consulta: La ejecucin de la consulta es un proceso independiente
de la creacin. Se puede ejecutar cuando este definida (ejecucin inmediata) o se
puede guardar y ejecutarse posteriormente (ejecucin diferida).

Ejemplo: Realizar una consulta que imprima todos los nombres que empiecen por la
letra R.
-

Orgen de datos

Dim nombres() As String = {Carlos, Jos, Cristian, Rosa, Roco, Mary}

Creacin de la consulta

Dim consultanombres = From misnombres In nombres


Where misnombres.IndexOf(R)=0
Select misnombres
-

Ejecutar la consulta

For Each nombre In consultanombres


Msgbox (nombre)
Next
13.4 Ejemplos prcticos consultas LINQ
13.4.1 Consulta LINQ a un texto
Hacer una aplicacin llamada ConsultaLinqTexto, que permita visualizar un texto en
un campo de texto y obtener la siguiente informacin del texto: cuantas letras tiene,
cuantas palabras, cuales palabras contienen la letra F, cuantas palabras LINQ existen,
cuales palabras tienen ms de 10 letras.

Crear la interfaz de usuario

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los


siguientes controles en el formulario en la posicin deseada: 1 Button, 2 Label y 2
TextBox.

Establecer las propiedades de los objetos de la interfaz de usuario

Establezca las siguientes modificaciones a los controles:


Tabla 13.1 Propiedades de controles proyecto ConsultaLinqTexto.
Control
Button1
Label1
Label2
TextBox1

TextBox2
Form1

Propiedad
Name
Text
Name
Text
Name
Text
Name
Text
MultiLine
Name
MultiLine
Name
Text

Valor
botonconsulta
Ejecutar consulta LINQ
lbltexto
Texto original
lblresultado
Resultado de la consulta
lbltexto
Adicione un texto cualquiera.
True
lblresultado
True
formulario
Consulta LINQ con texto

La interfaz de usuario queda como se muestra en la siguiente figura:

Figura 13.1 Interfaz de usuario (ConsultaLinqTexto).

Escribir cdigo

Seleccione el objeto botonconsulta, d doble clic para abrir el editor de cdigo y


escriba el siguiente cdigo:
Dim cadena As String = txttexto.Text

Se asigna a la variable cadena el contenido del objeto txttexto.


Dim contarletras As Integer = Aggregate cantidadpalabras In cadena Into Count()
txtresultado.Text = "El texto contiene:" & contarletras & " letras" & vbCrLf

Se utiliza la funcin de agregado Count para contar cada una de los caracteres
que contiene el texto del objeto txttexto se incluyen los espacios. La consulta se crea
con la clusula Aggregate. Al objeto txtresultado se le asigna el valor de contarletras.
Dim palabras() As String
palabras = Split(cadena, " ")
Dim contarpalabras As Integer = Aggregate mispalabras In palabras Into Count()
txtresultado.Text = txtresultado.Text & "Tiene :" & contarpalabras & " Palabras" &
vbCrLf

Se crea una matriz llamada palabras de tipo String. A dicha varible se le asigna
cada una de las palabras que contiene el objeto cadena utilizando la funcin Split. Con
la funcin de agregado Count se cuentan cada una de las palabras de la matriz palabras
y se asigna dicha cantidad a la variable contarpalabras. Al objeto txtresultado se le
adiciona el valor de contarpalabras.
Dim palabras_con_F = From letra In palabras Where letra.Contains("F")
txtresultado.Text = txtresultado.Text & "Las palabras que contienen la letra F son:" &
vbCrLf
For Each letraf In palabras_con_F
txtresultado.Text = txtresultado.Text & letraf & vbCrLf
Next

Se crea una variable llamada palabras_con_F. A dicha variable se le asigna


cada una de las palabras que contiene la letra F, la cual es retornada por la consulta
(From). Dicha consulta busca en la matriz palabras todas las palabras que cumplan la
condicion (Where letra.Contains(F)). Con un ciclo For Each se imprime cada
palabra con F que se encuentre en el objeto palabras_con_F y es adicionada a la
propiedad Text del objeto txtresultado. La consulta se crea con la clusula From.
Dim palabra_linq As String = "LINQ"
Dim palabras_encontradas = From linq In palabras _
Where linq = palabra_linq
Select linq
Dim nro_palabras_linq As Integer = palabras_encontradas.count()
txtresultado.Text = txtresultado.Text & "La palabra LINQ se encuentra:" &
nro_palabras_linq & " veces" & vbCrLf

Se crea una variable llamada palabras_linq a la cual se le asigna el texto LINQ.


Se crea una consulta que busca en el objeto palabras todas las palabras que sean igual
al contenido de la variable palabra_linq (Where linq= palabra_linq). Con la funcin
de agregado Count se le agrega a la variable nro_palabras_linq el valor de la cantidad
de palabras obtenidas del objeto palabras_encontradas y es adicionada a la propiedad
Text del objeto txtresultado.
Dim palabras_mas_10_letras = From letras In palabras
Where letras.Length > 10
Select letras
txtresultado.Text = txtresultado.Text & "Las palabras con ms de 10 letras son:" &
vbCrLf
For Each letras10 As String In palabras_mas_10_letras
txtresultado.Text = txtresultado.Text & letras10 & vbCrLf
Next

Se crea una variable llamada palabras_mas_10_letras, a la cual se le asigna una


consulta que busca en el objeto palabras todas las palabras que contengan ms de 10
caracteres (Where letras.Length>10). Con un ciclo For Each se imprime cada palabra
con ms de 10 caracteres que se encontro en la consulta y es adicionada a la propiedad
Text del objeto txtresultado.

Ejecutar el proyecto

Al ejecutarse el proyecto y pulsar el botn Ejecutar consulta LINQ, se visualizar el


formulario con todos las operaciones realizadas.
Figura 13.2 Ejecucin de la consulta LINQ sobre un texto.

13.4.2 Consulta LINQ a una matriz


Escribir una aplicacin llamada ConsultaLinqMatriz, que permita visualizar una
matriz con 10 nmeros en un campo de texto y obtener la siguiente informacin de la
matriz: suma de los nmeros, el promedio, el nmero mayor, el nmero menor, ordenar
los nmeros y los nmeros mayores de 60 o menores de 10.

Crear la interfaz de usuario

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los


siguientes controles en el formulario en la posicin deseada: 1 Button, 8 Label y 8
TextBox.
Establecer las propiedades de los objetos de la interfaz de usuario
Establezca las siguientes modificaciones a los controles:
Tabla 13.2 Propiedades de controles proyecto ConsultaLinqMatriz.
Control
Button1
Label1

Label2
Label3
Label4
Label5
Label6
Label7
Label8
TextBox1
TextBox2
TextBox3
TextBox4
TextBox5
TextBox6
TextBox7
TextBox8
Form1

Propiedad
Name
Text
Name
Text
Font - Bold
Name
Text
Name
Text
Name
Text
Name
Text
Name
Text
Name
Text
Name
Text
Name
Name
Name
Name
Name
Name
Name
Name
Name
Text

Valor
botonconsulta
Ejecutar consulta LINQ
lblnumeros
Valores de la Matriz:
True
lblsuma
Suma de los nmeros
lblpromedio
Promedio de los nmeros:
lblmayor
Nmero mayor:
lblmenor
Nmero menor:
lblordenados
Nmeros ordenados:
lblmayores40
Mayores de 40:
lblmayoresmenores
Mayores de 60 o menores de 10:
txtnumeros
txtsuma
txtpromedio
txtmayor
txtmenor
txtordenados
txtmayores40
txtmayoresmenores
formulario
Consulta LINQ con Matrices

La interfaz de usuario queda como se muestra en la siguiente figura:

Figura 13.3 Interfaz de usuario (ConsultaLinqMatriz).

Escribir cdigo

Seleccione el objeto botonconsulta, d doble clic para abrir el editor de cdigo y


escriba el siguiente cdigo:
Dim numeros() As Integer = {20, 80, 15, 14, 2, 6, 7, 33, 50, 69}
For Each numero In numeros
txtnumeros.Text = txtnumeros.Text & numero & ", "
Next

Se crea un arreglo llamado numeros de tipo Integer a la cual se le asignan diez


(10) valores. Con un ciclo For Each se imprime cada nmero que se encuentre en el
objeto numeros y son adicionados a la propiedad Text del objeto txtnumeros.
Dim suma As Integer = Aggregate sumanumeros In numeros Into Sum()
txtsuma.Text = suma

Se crea una consulta utilizando la funcin de agregado Sum para sumar los
valores del arreglo numeros y es asignado a la variable suma. Al objeto txtsuma se le
asigna el valor de suma.
Dim promedio As Integer = Aggregate promedionumeros In numeros Into Average()
txtpromedio.Text = promedio

Se crea una consulta utilizando la funcin de agregado Average para calcular el


promedio de los valores del arreglo numeros y es asignado a la variable promedio. Al
objeto txtpromedio se le asigna el valor de promedio.
Dim mayor As Integer = Aggregate mayornumeros In numeros Into Max()
txtmayor.Text = mayor

Se crea una consulta utilizando la funcin de agregado Max para obtener el


valor mayor del arreglo numeros y es asignado a la variable mayor. Al objeto
txtmayor se le asigna el valor de mayor.
Dim menor As Integer = Aggregate menornumeros In numeros Into Min()

txtmenor.Text = menor

Se crea una consulta utilizando la funcin de agregado Min para obtener el


valor menor del arreglo numeros y es asignado a la variable menor. Al objeto
txtmenor se le asigna el valor de menor.
Dim ordenados = From numerosordenados In numeros Order By numerosordenados
Ascending
For Each numero In ordenados
txtordenado.Text = txtordenado.Text & numero & ", "
Next

Se crea una variable llamada ordenados, a la cual se le asigna una consulta que
ordena (Order By) todos los valores de menor a mayor (Ascending) del arreglo
numeros. Con un ciclo For Each se imprime los nmeros ordenados en la propiedad
Text del objeto txtordenado.
Dim mayores = From numerosmayores In numeros Where numerosmayores > 40
For Each numero In mayores
txtmayores40.Text = txtmayores40.Text & numero & ", "
Next

Se crea una variable llamada mayores, a la cual se le asigna una consulta que
obtiene todos los valores mayores de 40 del arreglo numeros. Con un ciclo For Each
se imprime los nmeros que cumplen la condicin en la propiedad Text del objeto
txtmayores.
Dim mayoresmenores = From numerosmayoresmenores In numeros
Where numerosmayoresmenores > 60 Or numerosmayoresmenores < 10
For Each numero In mayoresmenores
txtmayoresmenores.Text = txtmayoresmenores.Text & numero & ", "
Next

Se crea una variable llamada mayoresmenores, a la cual se le asigna una


consulta que obtiene todos los valores mayores de 60 o menores de 10 del arreglo
numeros. Con un ciclo For Each se imprime los nmeros que cumplen la condicin en
la propiedad Text del objeto txtmayoresmenores.

Ejecutar el proyecto

Al ejecutarse el proyecto ConsultaLinqMatrices y pulsar el botn Ejecutar consulta


LINQ, se visualizar el formulario con todos las operaciones realizadas.
Figura 13.4 Ejecucin de la consulta LINQ con Matrices.

13.4.3 Consultar una base de datos SQL Server con LINQ To SQL
Disear una aplicacin llamada ConsultaLinqToSQL, que permita visualizar todos los
registros de una tabla perteneciente a una base de datos SQL Server. Dichos datos se
deben mostrar en una cuadricula. Se debe utilizar el componente LINQ to SQL.
NOTA: para este ejemplo se utilizar la base de datos SQL Server
bdlibrovbnet (Ver anexo A, SQL Server).

llamada

Crear la interfaz de usuario

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los


siguientes controles en el formulario en la posicin deseada: 1 Button, 1
DataGridView.

Establecer las propiedades de los objetos de la interfaz de usuario

Establezca las siguientes modificaciones a los controles:


Tabla 13.3 Propiedades de controles proyecto ConsultaLinqToSQL.
Control
Button1
DataGridView1
Form1

Propie
dad
Name
Text
Name
Name
Text

Valor
boton
Ejecutar consulta LINQ to SQL
cuadricula
formulario
Consulta LINQ to SQL.

La interfaz de usuario queda como se muestra en la siguiente figura:


Figura 13.5 Interfaz de usuario (ConsultaLinqToSQL).

Agregar LINQ to SQL

Para agregar un objeto Clases LINQ to SQL puede realizar alguno de los siguientes
pasos:
1. Del men Proyecto seleccione Agregar nuevo elemento y busque la plantilla
Clases LINQ to SQL.
2. Del icono
seleccionar Agregar nuevo elemento y busque la plantilla
Clases LINQ to SQL.
3. En el Explorador de soluciones situarse en el nombre del proyecto, dar clic
derecho, seleccionar la opcin Agregar nuevo elemento y busque la
plantilla Clases LINQ to SQL.
Con cualquiera de las tres opciones se visualizar la siguiente figura:

Figura 13.6 Ventana para agregar una plantilla LINQ to SQL.

Seleccione la plantilla Clases de LINQ to SQL. En el cuadro de texto Nombre


cambie el nombre por MLinqToSQL.dbml (Database Markup Language), luego pulse
el botn Agregar para visualizar un nuevo objeto de datos relacionales LINQ to SQL.
En la lista del explorador de soluciones aparece un nuevo archivo con el nombre
asignado.

Figura 13.7 Ventana diseador relacional de objetos LINQ to SQL.

Pulse el link Explorador de servidores del diseador relacional de objetos para


ver la siguiente figura:
Figura 13.8 Ventana Explorador de servidores.

En dicha ventana pulse el icono conectar con bases de


la ventana de Agregar conexin como muestra la figura:

se visualizar

Figura 13.9 Ventana Agregar conexin.

Para el ejemplo seleccione la base de datos bdlibrovbnet.mdf, la cual se


encuentra en la carpeta data de SQL Server (si la instalacin la realizo en c:\ la ruta
seria: C:\Archivos de programa\Microsoft SQL Server\MSSQL.1\MSSQL\Data). Pulse
el botn Aceptar para visualizar la siguiente figura:
Figura 13.10 Explorador de servidores con la conexin a la base de datos.

Al pulsar en el signo (+) al lado del nombre de la base de datos se visualizar la


estructura definida en la base de datos. Si desea ver las tablas que contiene la base de
datos pulse el signo (+) al lado de Tablas.
Figura 13.11 Estructura de la base de datos bdlibrovbnet.mdf.

D clic sobre la tabla clientes y arrstrela hacia el diseador relacional de objeto,

se mostrar la siguiente ventana:


Figura 13.12 Ventana para incluir la conexin al proyecto actual.

Pulse el botn Si, para visualizar la siguiente figura:


Figura 13.13 Diseador relacional de objetos con la tabla clientes.

Escribir cdigo

Seleccione el objeto boton, d doble clic para abrir el editor de cdigo y escriba el
siguiente cdigo:
Dim vista As New MiLinqToSQLDataContext
Dim consulta = From misclientes In vista.clientes Select misclientes
cuadricula.DataSource = consulta

Se crea una instancia llamada vista de la clase MiLinqToSQLDataContext. La


clase DataContext corresponde al nombre del archivo .dbml. El archivo LINQ to SQL
es MiLinqToSQL, esta clase contiene mtodos y propiedades para la conexin a la
base de datos y para la manipulacin de los datos. Se crea una variable llamada
consulta a la cual se le asigna una consulta (From) que permite obtener todos los
registros de la tabla clientes de la base de datos bdlibrovbnet.mdf. Por ltimo se le
asigna a la propiedad DataSource del objeto DataGridView cuadricula el contenido de
la variable consulta.

Ejecutar el proyecto

Al ejecutarse el proyecto ConsultaLinqToSQL y pulsar el botn Ejecutar consulta


LINQ to SQL, se visualizar en la cuadricula todos los registros de la tabla clientes.
Figura 13.14 Ejecucin de la aplicacin ConsultaLinqToSQL.

13.4.4 Operaciones con una tabla de una base de datos SQL Server
Realizar una aplicacin llamada OperacionesLinqToSQL, que permita a un usuario
seleccionar el nombre de una empresa y visualizar todo el registro en campos de texto.
Adems, el usuario podr realizar las siguientes operaciones: modificar el registro,
eliminar el registro, crear y guardar un nuevo registro.
NOTA: para este ejemplo se utilizar la base de datos SQL Server
bdlibrovbnet (Ver anexo A, SQL Server).

llamada

Crear la interfaz de usuario

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los


siguientes controles en el formulario en la posicin deseada: 5 Button, 8 Label, 6
TextBox y 1 ComboBox.

Establecer las propiedades de los objetos de la interfaz de usuario

Establezca las siguientes modificaciones a los controles:


Tabla 13.4 Propiedades de controles proyecto OperacionesLinqToSQL.
Control
Button1
Button2

Propiedad
Name
Text
Name
Text

Valor
botonbuscar
Mostrar registro
botonmodificar
Modificar registro

Button3
Button4
Button5
Label1

Label2
Label3
Label4
Label5
Label6
Label7
Label8

TextBox1
TextBox2
TextBox3
TextBox4
TextBox5
TextBox6
ComboBox1
DataGridView1
Panel1
Form1

Name
Text
Name
Text
Name
Text
Name
Text
Font - Bold
Name
Text
Name
Text
Name
Text
Name
Text
Name
Text
Name
Text
Name
Text
Font - Bold
Name
Enabled
Name
Name
Name
Name
Name
Name
Name
Name
Borderstyle
Name
Text

botoneliminar
Eliminar registro
botonnuevo
Nuevo registro
botonguardar
Guardar nuevo registro
lblcliente
Seleccione cliente:
True
lblnit
Nit:
lblempresa
Empresa:
lblrepresentante
Representante:
lblciudad
Ciudad:
lbldireccion
Direccin:
lbltelefono
Telfono:
lblregistros
Registros actuales de la tabla
True
txtnit
False
txtempresa
txtrepresentante
txtciudad
txtdireccion
txttelefono
listaclientes
cuadricula
panel
FixedSingle
formulario
Operacin con una base de datos LINQ to SQL

La interfaz de usuario queda como se muestra en la siguiente figura:


Figura 13.15 Interfaz de usuario (OperacionesLinqToSQL).

Agregar LINQ to SQL

Del men Proyecto seleccione Agregar nuevo elemento y busque la plantilla Clases
LINQ to SQL, se visualizar la siguiente figura:
Figura 13.16 Agregar plantilla Clases de LINQ to SQL.

En el cuadro de texto Nombre cambie el nombre por MisDatos.dbml, luego


pulse el botn Agregar para visualizar un nuevo objeto de datos relacionales LINQ to
SQL. En la lista del explorador de soluciones aparece un nuevo archivo con el nombre
asignado.
Figura 13.17 Vista del diseador relacional de objetos.

Pulse el link Explorador de servidores del diseador relacional de objetos y


adicione la base de datos bdlibrovbnet.mdf y arrastre la tabla clientes hacia el

diseador, se debe observar una figura similar a la siguiente:


Figura 13.18 Diseador relacional de objetos con la tabla clientes.

En el control ComboBox listaclientes se van a mostrar los nombres de las


empresas que actualmente estn en la tabla clientes para ello d clic sobre la flecha
superior derecha de dicho objeto para ver Tareas de ComboBox.
Figura 13.19 Ventana Tareas de ComboBox.

D clic sobre el cuadro de verificacin Utilizar elementos enlazados a datos y


seleccione la opcin orgen de datos.
Figura 13.20 Ventana Orgen de datos.

Pulse sobre el link Agregar orgen de datos del proyecto, se mostrar el


Asistente para la configuracin de orgenes de datos.
Figura 13.21 Asistente para configurar el orgen de datos.

Seleccione el objeto Base de datos y pulse el botn Siguiente para ver la


ventana de eleccin de conexin de datos.
Figura 13.22 Ventana para elegir la conexin de datos.

Aparece la conexin a la base de datos bdlibrovbnet.mdf, pulse el botn


Siguiente para elegir los objetos de la base de datos a utilizar.

Figura 13.23 Ventana para elegir los objetos de base de datos.

Al pulsar en el signo (+) al lado del texto Tablas se visualizarn las diferentes
tablas de la base de datos, d clic sobre la tabla clientes, adems cambie el Nombre de
DataSet por conjuntodedatos y pulse el botn Finalizar para volver a modo diseo:
Figura 13.23 Ventana para elegir los objetos de base de datos.

Como se puede apreciar, se adicionaron los objetos conjuntodedatos,


clientesBindingSource y ClientesTableAdapter que permitirn obtener los datos de la
tabla clientes. Nuevamente seleccione el control listaclientes y en la opcin Mostrar
miembro seleccione el campo empresa y en la opcin Miembro de valor el campo
Nit. Esto permitir visualizar el campo empresa en el control y obtener el campo nit
seleccionado. Se obtendr la siguiente figura:

Figura 13.24 Control listaclientes con los campos empresa y nit seleccionados.

Escribir cdigo
a) Despes de la apertura de la clase Public class formulario y antes del primer
procedimiento Sub, d doble clic sobre el formulario y busque clase formulario
y escriba este cdigo escriba:
Public Class formulario
Dim vista As New MisDatosDataContext

Se crea una instancia llamada vista de la clase MisDatosdataContext. El


nombre de DataContext corresponde al nombre del archivo .dbml. El archivo LINQ to
SQL es MisDatos, esta clase contiene mtodos y propiedades para la conexin a la base
de datos y para manipular los datos. Esta instancia podr ser utilizadas por cualquier
procedimiento de la clase.
b) Despes de la apertura de la clase Public class formulario cree un
procedimiento Sub llamado datos() y escriba este cdigo escriba:
Public class formulario
::::::::::
Private Sub datos()
Dim datos = From actuales In vista.clientes
cuadricula.DataSource = datos
End Sub
End class

Se crea un procedimiento llamado datos que contiene una consulta de los datos
actuales de la tabla clientes, estos son asignados a la propiedad DataSource del objeto
DataGridView cuadricula.
c) Seleccione el objeto botonbuscar, d doble clic para abrir el editor de cdigo y
escriba el siguiente cdigo:

Dim registroseleccionado As String = listaclientes.SelectedItem(0)


Dim consulta = From miregistro In vista.clientes
Where miregistro.nit = registroseleccionado
For Each campos In consulta
txtnit.Text = campos.nit
txtempresa.Text = campos.empresa
txtrepresentante.Text = campos.representante
txtciudad.Text = campos.ciudad
txtdireccion.Text = campos.direccion
txttelefono.Text = campos.telefono
Next
datos()

Se crea una variable de tipo String llamada registroseleccionado a la cual se le


asigna el valor del campo nit seleccionado del objeto listaclientes (este valor se toma de
la opcion miembro de valor que es el item cero (0)). Por otro lado, se crea una consulta
que cargar el registro que cumpla la condicion de que el nit sea igual al registro
seleccionado. Con un ciclo For Each se le asigna a la propiedad Text de los objetos
TextBox cada uno de los campos del registro encontrado. Por ltimo se llama al
procedimiento datos para que muestre en la cuadricula los registros actualizados de la
tabla clientes.
d) Seleccione el objeto botonmodificar, d doble clic para abrir el editor de cdigo
y escriba el siguiente cdigo:
Dim respuesta = MsgBox("Desea guardar los cambios realizados",
MsgBoxStyle.YesNo)
If (respuesta = MsgBoxResult.Yes) Then
Try
Dim registroseleccionado As String = listaclientes.SelectedItem(0)
Dim consulta = From miregistro In vista.clientes
Where miregistro.nit = registroseleccionado
For Each campos In consulta
campos.nit = txtnit.Text
campos.empresa = txtempresa.Text
campos.representante = txtrepresentante.Text
campos.ciudad = txtciudad.Text()
campos.direccion = txtdireccion.Text
campos.telefono = txttelefono.Text
Next
vista.SubmitChanges()
Catch ex As Exception
MsgBox("Error en el sistema")
End Try
Else
MsgBox("Registro no modificado", MsgBoxStyle.Information)
End If
datos()

Se crea una variable llamada respuesta a la cual se le asigna un cuadro de


dilogo MsgBox con el mensaje Desea guardar los cambios realizados y un estilo
de mensaje Si/No. Si el usuario selecciona el botn Si se le asigna a una variable
llamada registroseleccionado el nit de la empresa seleccionada y se crea un consulta
que guarda el registro que cumpla la condicin. Con un ciclo For Each se le asigna a
cada campo del registro actual los valores de los objetos TextBox en su propiedad Text.

Utilizando el procedimiento SubmitChanges() se modifican los campos del registro


actual en la tabla. Si se pulsa el botn No se mostrar el mensaje Registro no
modificado.
e) Seleccione el objeto botoneliminar, d doble clic para abrir el editor de cdigo
y escriba el siguiente cdigo:
Dim respuesta = MsgBox("Desea Eliminar el registro seleccionado",
MsgBoxStyle.YesNo)
If (respuesta = MsgBoxResult.Yes) Then
Try
Dim registroseleccionado As String = listaclientes.SelectedItem(0)
Dim consultaeliminar = From miregistro In vista.clientes
Where miregistro.nit = registroseleccionado
For Each campos In consultaeliminar
vista.clientes.DeleteOnSubmit(campos)
Next
vista.SubmitChanges()
Catch ex As Exception
MsgBox("Error en el sistema")
End Try
Else
MsgBox("Registro no Eliminado", MsgBoxStyle.Information)
End If
datos()

Si el usuario selecciona el botn Si se le asigna a una variable llamada


registroseleccionado el nit de la empresa seleccionada y se crea un consulta que guarda
el registro que cumpla la condicin. Con un ciclo For Each se eliminan cada uno de los
campos del registro seleccionado utilizando el procedimiento DeleteOnSubmit() y con
el procedimiento SubmitChanges() se actualiza la tabla. Si se pulsa el botn No se
mostrar el mensaje Registro no Eliminado.
f) Seleccione el objeto botonnuevo, d doble clic para abrir el editor de cdigo y
escriba el siguiente cdigo:
txtnit.Text = ""
txtempresa.Text = ""
txtrepresentante.Text = ""
txtciudad.Text = ""
txtdireccion.Text = ""
txttelefono.Text = ""
txtnit.Enabled = True

Se asigna un espacio a la propiedad Text de los objetos TextBox. El objeto


txtnit se habilita para poder ecribir en l, modificando a True su propiedad Enabled.
g) Seleccione el objeto botonguardar, d doble clic para abrir el editor de cdigo
y escriba el siguiente cdigo:
Dim respuesta = MsgBox("Desea Guardar el nuevo registro", MsgBoxStyle.YesNo)
If (respuesta = MsgBoxResult.Yes) Then
Try
Dim nuevoregistro As New clientes With { _
.nit = txtnit.Text, .empresa = txtempresa.Text, _
.representante = txtrepresentante.Text, _
.ciudad = txtciudad.Text, .direccion = txtdireccion.Text, _

.telefono = txttelefono.Text}
vista.clientes.InsertOnSubmit(nuevoregistro)
vista.SubmitChanges()
txtnit.Enabled = False
Catch ex As Exception
MsgBox("Error en el sistema")
End Try
Else
MsgBox("Registro no guardado", MsgBoxStyle.Information)
End If
datos()

Si el usuario pulsa el botn Si se crea una instancia de la tabla clientes llamada


nuevoregistro y se le asigna a cada campo de la tabla los valores de la propiedad Text
de los objetos TextBox. Utilizando el procedimiento InsertOnSubmit() se inserta el
nuevo registro a la tabla clientes y con el procedimiento SubmitChanges() se actualiza
la tabla. Por otro lado, se deshabilita el objeto txtnit con False en su propiedad
Enabled. Si se pulsa el botn No se mostrar el mensaje Registro no guardado.

Ejecutar el proyecto

Al ejecutarse el proyecto OperacionesLinqToSQL, seleccionando un nombre de


empresa del control listaclientes y pulsar el botn Mostrar registro, se visualizar en
los campos de texto el registro seleccionado y en la cuadricula todos los registros de la
tabla clientes.
Figura 13.25 Ejecucin de la aplicacin OperacionesLinqToSQL.

Al registro seleccionado lo podr modificar o eliminar. Tambin se podr crear y


guardar un nuevo registro.

13.4.5 Relacin entre dos tablas de una base de datos SQL Server
Disear una aplicacin llamada RelacionTablasLINQ, que permita a un usuario
seleccionar el nombre de una empresa y visualizar todos los pedidos que dicha empresa
ha realizado.
NOTA: para este ejemplo se utilizar la base de datos SQL Server
bdlibrovbnet (Ver anexo A, SQL Server).

llamada

Crear la interfaz de usuario

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los


siguientes controles en el formulario en la posicin deseada: 1 Button, 2 Label, 1
DataGridView y 1 ComboBox.

Establecer las propiedades de los objetos de la interfaz de usuario

Establezca las siguientes modificaciones a los controles:


Tabla 13.5 Propiedades de controles proyecto RelacionTablasLINQ.
Control
Button1

Label1

Label2

ComboBox1
DataGridView1
Form1

Propiedad
Name
Text
Text
Name
Text
Font - Bold
Name
Text
Font - Bold
Name
Name
Name
Text

Valor
boton
Obtener Pedidos
Guardar nuevo registro
lblclientes
Seleccione Cliente:
True
lblpedidos
Pedidos del cliente seleccionado
True
listaclientes
cuadricula
formulario
Relacin tablas LINQ to SQL

La interfaz de usuario queda como se muestra en la siguiente figura:


Figura 13.26 Interfaz de usuario (RelacionTablasLINQ).

Agregar clase LINQ to SQL

Del men Proyecto seleccione Agregar nuevo elemento y busque la plantilla Clases
LINQ to SQL. En el cuadro de texto Nombre cambie el nombre por
DatosRelacionados.dbml, luego pulse el botn Agregar para visualizar un nuevo
objeto de datos relacionales LINQ to SQL.
En la lista del explorador de soluciones aparece un nuevo archivo con el nombre
asignado. Se obtendr la siguiente figura:
Figura 13.27 Vista del diseador relacional de objetos DatosRelacionados.dbml.

Pulse el link Explorador de servidores del diseador relacional de objetos y


adicione la base de datos bdlibrovbnet.mdf y arrastre las tablas clientes y pedidos
hacia el diseador, se debe observar una figura similar a la siguiente:
Figura 13.28 Diseador relacional de objetos con las tablas clientes y pedidos.

En el formulario seleccione el control ComboBox listaclientes para adicionar


los nombre de las empresas de la tabla clientes para ello d clic sobre la flecha superior
derecha de dicho objeto para ver las Tareas de ComboBox. D clic sobre el cuadro de
verificacin Utilizar elementos enlazados a datos y escoja la opcin orgen de datos.
Figura 13.29 Ventana Orgen de datos del control listaclientes.

Pulse sobre el link Agregar orgen de datos del proyecto, se mostrar el


Asistente para la configuracin de orgenes de datos.
Figura 13.30 Asistente para configurar el orgen de datos.

Seleccione el objeto Base de datos y pulse el botn Siguiente hasta encontrar la


ventana para elegir los objetos de la base de datos a utilizar. En dicha ventana al
pulsar en el signo (+) al lado del texto Tablas se visualizar las diferentes tablas de la
base de datos, d clic sobre la tabla clientes, adems cambie el Nombre de DataSet por
conjuntodedatos. En este momento se observara la siguiente figura:

Figura 13.31 Ventana para elegir los objetos de base de datos.

Al pulsar el botn Finalizar se vuelve al formulario y se adicionan los objetos


conjuntodedatos, clientesBindingSource y ClientesTableAdapter que permitirn
manipular los datos de la tabla clientes. En las opciones del objeto listaclientes,
Mostrar miembro escoja el campo empresa y en Miembro de valor el campo nit, se
mostrara la siguiente figura:
Figura 13.32 Formulario con datos enlazados al objeto listaclientes.

Escribir cdigo

Seleccione el objeto botonbuscar, d doble clic para abrir el editor de cdigo y escriba
el siguiente cdigo:

Dim vista As New DatosRelacionadosDataContext


Dim empresaseleccionada As String = listaclientes.SelectedItem(0)
Dim consultajoin = From misclientes In vista.clientes _
Join mispedidos In vista.pedidos _
On misclientes.nit Equals mispedidos.nit _
Where mispedidos.nit = empresaseleccionada _
Select mispedidos.nit, misclientes.ciudad, misclientes.representante,
mispedidos.nropedido, mispedidos.fechaentrega,
mispedidos.observacion
cuadricula.DataSource = consultajoin

Se
crea
una
instancia
llamada
vista
de
la
clase
DatosRelacionadosDataContext. El nombre de DataContext corresponde al nombre
del archivo .dbml. El archivo LINQ to SQL es DatosRelacionados. Tambin se crea
una variable de tipo String llamada empresaseleccionada a la cual se le asigna el valor
del campo nit seleccionado del objeto listaclientes (este valor se toma de la opcion
miembro de valor que es el item cero (0)). Por otro lado, se crea una consulta
combinada con la clausula Join que realiza la relacion de las tablas clientes, pedidos
por el campo comn nit (Equals), con la condicion (Where) de que el nit sea igual al
registro seleccionado, adems se seleccionan (Select) los campos de las dos tablas que
se quieren mostrar. Por ltimo se asigna a la propiedad DataSource del objeto
cuadricula el resultado de la consulta (consultajoin).

Ejecutar el proyecto

Al ejecutarse el proyecto RelacionTablasLINQ, seleccionando un nombre de empresa


del control listaclientes y pulsar el botn Obtener Pedidos, se visualizar en la
cuadricula cada uno de los pedidos de dicho cliente.
Figura 13.33 Ejecucin de la aplicacin RelacionTablasLINQ.

13.4.6 Relacin tablas con LINQ to SQL y DataGridView


Crear una aplicacin llamada RelacionTablasDataGridViewLINQ, que permita a un
usuario seleccionar de una cuadricula un registro de la tabla clientes y visualizar todos
los pedidos que dicho cliente ha realizado en una cuadricula.
NOTA: para este ejemplo se utilizar la base de datos SQL Server
bdlibrovbnet (Ver anexo A, SQL Server).

llamada

Agregar clase LINQ to SQL

Del men Proyecto seleccione Agregar nuevo elemento y busque la plantilla Clases
LINQ to SQL. En el cuadro de texto Nombre cambie el nombre por
DatosDataGridView.dbml.
Figura 13.34 Plantilla Clases de LINQ to SQL.

Pulse el botn Agregar para visualizar un nuevo objeto de datos relacionales


LINQ to SQL. En la lista del explorador de soluciones aparece un nuevo archivo con el
nombre asignado. Se obtendr la siguiente figura:
Figura 13.35 Diseador relacional de objetos de la clase LINQ to SQL.

Pulse el link Explorador de servidores del diseador relacional de objetos y


adicione la base de datos bdlibrovbnet.mdf y arrastre las tablas clientes y pedidos
hacia el diseador, se debe observar una figura similar a la siguiente:
Figura 13.36 Diseador relacional de objetos con las tablas clientes y pedidos.

Crear el orgen de datos.

Para agregar el orgen de datos se deben realizar los siguientes pasos:


1. En el men Generar, d clic en Generar RelacionTablasDataGridVieWLINQ.
2. En el men Datos, d clic en Mostrar orgenes de datos.

Figura 13.37 Ventana Orgenes de datos.

3. En la ventana Orgenes de datos, d clic en el link Agregar nuevo orgen de datos


para ver la ventana de eleccin de un tipo de orgen de datos.

Figura 13.38 Ventana para configurar orgen de datos.

4. Seleccione el icono Objeto y pulse el botn Siguiente para ver la ventana de eleccin
del objeto a enlazar.

Figura 13.39 Ventana para configurar orgen de datos.

D clic sobre el signo (+) de los objetos RelacionTablasDataGridViewLINQ,


seleccione el objeto clientes y pulse el botn Finalizar para volver a modo diseo y
visualizar los datos en la ventana Orgenes de datos.
Figura 13.40 Ventana orgen de datos con los datos anexados.

Al tener el orgen de datos, seleccione el formulario y d clic sobre el objeto


clientes del orgen de datos y arrstrelo hacia el formulario. Se obtendr la siguiente
figura:
Figura 13.41 Formulario con el objeto clientes.

Como se aprecia se agrego al formulario los objetos ClientesBindnigSource y


ClientesBindingNavigator y un control DataGridView que mostrar todos los
registros de la tabla clientes. Ahora seleccione el objeto pedidos del orgen de datos y
arrstrelo hacia el formulario para crear un nuevo objeto DataGridView para los datos
de la tabla pedidos. Modifique los controles hasta obtener una figura similar a la
siguiente:
Figura 13.42 Formulario con los objetos clientes y pedidos en DataGridView.

Nota: si se visualiza alguna advertencia vuelva a generar el proyecto desde el men


Generar.

Escribir cdigo
a) D doble clic sobre el formulario y despus de la creacin de la clase Form1
escriba el siguiente cdigo:
Public Class Form1
Dim vistadatos As New DatosDataGridViewDataContext
::::::::
::::::::
End Class

Se
crea
una
instancia
llamada
vistadatos
de
la
clase
DatosDaTaGridViewDataContext. El nombre de DataContext corresponde al
nombre del archivo .dbml. El archivo LINQ to SQL es DatosDataGridView.
b) En el procedimiento Form1_Load del formulario escriba el siguiente cdigo:
ClientesBindingSource.DataSource = vistadatos.clientes

Al orgen de datos ClientesBindingSource en su propiedad DataSource se le


asigna los datos de la tabla clientes.

Ejecutar el proyecto

Al ejecutarse el proyecto RelacionTablasDataGridView, al seleccionar un registro de


la cuadricula donde aparecen los campos de la tabla clientes, en la cuadricula de la tabla
pedidos aparecern todos los registros relacionados (si existen registros) con la tabla
clientes.
Figura 13.43 Ejecucin de la aplicacin RelacionTablasDataGridView.

13.4.7 Consulta LINQ to DataSet


Elaborar una aplicacin llamada ConsultaLinqDataSet, que permita visualizar las
tablas clientes, pedidos y la relacin de estas en controles DataGridView, cuyo nit sea
igual a 100 utilizando la consulta LINQ to DataSet.

Crear la interfaz de usuario

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los


siguientes controles en el formulario en la posicin deseada: 3 DataGridView.
NOTA: para este ejemplo se utilizar la base de datos SQL Server
bdlibrovbnet (Ver anexo A, SQL Server).

Establecer las propiedades de los objetos de la interfaz de usuario

Establezca las siguientes modificaciones a los controles:


Tabla 13.6 Propiedades de controles proyecto ConsultaLinqDataSet.
Control
DataGridView1
DataGridView2
DataGridView3
Form1

Propie
dad
Name
Name
Name
Name
Text

Valor
datosclientes
datospedidos
tablasrelacionadas
formulario
Consulta LINQ to DataSet.

La interfaz de usuario queda como se muestra en la siguiente figura:


Figura 13.44 Interfaz de usuario (ConsultaLinqDataSet).

llamada

Escribir cdigo

Seleccione el objeto formulario, d doble clic para abrir el editor del procedimiento
Formulario_Load y escriba el siguiente cdigo:
Dim conexion As String = "Data Source=(local)\SQLEXPRESS; Database=bdlibrovbnet;
Integrated Security=True"

Se crea una variable llamada conexion de tipo String que contendr la cadena
de conexin a la base de datos de SQL Server. La cadena de conexin contiene el orgen
de datos (Data Source), el nombre de la base de datos SQL Server (DataBase) y la
seguridad integrada (True
Dim cargarclientes As New SqlClient.SqlDataAdapter("SELECT * FROM clientes",
conexion)
Dim comandoclientes As New SqlClient.SqlCommandBuilder(cargarclientes)
Dim conjuntodedatos As New DataSet()
cargarclientes.Fill(conjuntodedatos, "clientes")
Dim cargarpedidos As New SqlClient.SqlDataAdapter("SELECT * FROM
pedidos",conexion)
Dim comandopedidos As New SqlClient.SqlCommandBuilder(cargarpedidos)
cargarpedidos.Fill(conjuntodedatos, "pedidos")

Se crean los siguientes objetos: cargarclientes a la cual se le asigna espacio de


memoria de tipo SqlDataAdapter y recibe como parmetros la seleccin de la tabla
clientes y la cadena de conexin; comandoclientes a la cual se le asigna espacio de
memoria de tipo SqlCommandBuilder (genera comandos para manipular una nica
tabla) y recibe como parmetro el objeto cargarclientes; conjuntodedatos de tipo
DataSet que almacenar en memoria cach los datos de las tablas. Utilizando la funcin
Fill se rellena el objeto cargarclientes con los datos de la tabla clientes y recibe como
parmetros el DataSet y un alias de la tabla. El mismo proceso se realiza para obtener
los datos de la tabla pedidos.
datosclientes.DataSource = conjuntodedatos.Tables("clientes")
datosclientes.Refresh()
datospedidos.DataSource = conjuntodedatos.Tables("pedidos")
datospedidos.Refresh()

Se asigna a la propiedad DataSource de los objetos DataGridView


datosclientes y datospedidos el conjunto de datos respectivo. Con el procedimiento
Refresh() se refresca cada uno de los controles DataGridView.
Dim tabladatosclientes As DataTable = conjuntodedatos.Tables("clientes")
Dim tabladatospedidos As DataTable = conjuntodedatos.Tables("pedidos")

Se crean dos objeto de tipo DataTable ( tabla de datos en memoria)


tabladatosclientes, tabladatospedidos a los cuales se le asignan los datos de las tablas
clientes, pedidos respectivamente.
Dim consultalinqdataset = From filaclientes In tabladatosclientes.AsEnumerable _
Join filapedidos In tabladatospedidos.AsEnumerable _
On filaclientes.Field(Of String)("nit") Equals filapedidos.Field(Of String)("nit") _
Where (filaclientes.Field(Of String)("nit") = 100) _
Select New With { _
.nit = filaclientes.Field(Of String)("nit"), _
.empresa = filaclientes.Field(Of String)("empresa"), _

.representante = filaclientes.Field(Of String)("representante"), _


.fechaentrega = filapedidos.Field(Of String)("fechaentrega"), _
.observacion = filapedidos.Field(Of String)("observacion") _
}
tablasrelacionadas.DataSource = consultalinqdataset.ToList

Se crea una consulta combinada con la clausula Join que realiza la relacion de las
tablas clientes, pedidos por el campo comn nit (Equals), con la condicion (where) de
que el nit sea igual a 100, adems, se seleccionan (Select New With) los campos de las
dos tablas que se quieren mostrar. Por ltimo se asigna a la propiedad DataSource del
objeto tablasrelacionadas el resultado de la consulta (consultalinqdataset). Se utiliza
la funcin AsEnumerable para obtener una coleccin de todas las filas de los datos,
como tambin la funcin Field para el especificar el tipo de dato de las columnas de
cada fila.

Ejecutar el proyecto

Al ejecutarse el proyecto ConsultaLinqDataSet, se visualizar en el formulario los


controles DataGridView con las tablas clientes, pedidos y la relacin de dichas tablas
con los datos relacionados del nit igual a 100.
Figura 13.45 Ejecucin de la consulta LINQ to DataSet.

13.5 Ejercicios de consulta LINQ


1. Crear un programa que permita realizar una conexin a una base de datos y
mostrar datos de una tabla utilizando una consulta LINQ.
2. Elaborar un programa que permita realizar una consulta que permita eliminar los
registros cuyo nit sea mayor que 500.
3. Escribir un programa que permita por medio de una consulta visualizar los
registros de una tabla cuyo nombre de empresa empiecen por la letra C.
4. Disear un programa que permita con una consulta visualizar los nombre de los
productos de la tabla productos en un control DataGridView.
5. Hacer un programa que permita visualizar una consulta de la tabla clientes
ordenada por un campo de dicha tabla especificada por un usuario.
6. Realizar un programa que permita visualizar en una consulta los registros
relacionados de las tablas clientes y pedidos cuya fecha de entrega sea igual o
mayor que 02/23/2008.
7. Hacer un programa que permita visualizar en una consulta los registros
relacionados de las tablas clientes cuya fecha de vencimiento sea el mes de
agosto.
8. Realizar un programa que permita visualizar en una consulta todos los productos
cuyo valor sea mayor que 5000.
9. Realizar un programa que permita visualizar en una consulta la relacin entre
tres tablas de una base de datos en SQL Server.
10. Hacer un programa que permita visualizar en una consulta todos los pedidos que
tengan ms de tres productos.

14. APLICACIONES WEB ASP.NET


ASP.NET es un marco de trabajo de programacin generado en Common Language
Runtime que puede utilizarse en un servidor para generar eficaces aplicaciones Web.
ASP.NET, ofrece varias ventajas importantes, como son:

Mejor rendimiento. ASP.NET aprovecha las ventajas del enlace anticipado, la


compilacin just-in-time, la optimizacin nativa y los servicios de cach desde
el primer momento.

Compatibilidad con herramientas de primer nivel. El marco de trabajo de


ASP.NET se complementa con un diseador y una caja de herramientas muy
completos en el entorno integrado de programacin (Integrated Development
Environment, IDE) de Visual Studio.

Eficacia y flexibilidad. La biblioteca de clases de .NET Framework, la


mensajera y las soluciones de acceso a datos se encuentran accesibles desde el
Web de manera uniforme. ASP.NET es tambin independiente del lenguaje, por
lo que puede elegir el lenguaje que mejor se adapte a la aplicacin o dividir la
aplicacin en varios lenguajes.

Simplicidad. El marco de trabajo de las pginas de ASP.NET permite generar


interfaces de usuario, que separan claramente la lgica de aplicacin del cdigo
de presentacin y controlar eventos en un sencillo modelo de procesamiento de
formularios de tipo Visual Basic.

Facilidad de uso. ASP.NET emplea un sistema de configuracin jerrquico,


basado en texto, que simplifica la aplicacin de la configuracin al entorno de
servidor y las aplicaciones Web. Una aplicacin ASP.NET Framework se
implementa en un servidor sencillamente mediante la copia de los archivos
necesarios al servidor.

Escalabilidad y disponibilidad. El motor de tiempo de ejecucin de ASP.NET


controla y administra los procesos de cerca, por lo que si uno no se comporta
adecuadamente (filtraciones, bloqueos), se puede crear un proceso nuevo en su
lugar, lo que ayuda a mantener la aplicacin disponible constantemente para
controlar solicitudes.

Posibilidad de personalizacin y extensibilidad. ASP.NET presenta una


arquitectura bien diseada que permite a los programadores insertar su cdigo en
el nivel adecuado.
Seguridad. Con la autenticacin de Windows integrada y la configuracin por
aplicacin, se puede tener la completa seguridad de que las aplicaciones seguras.

Este tutorial se trabaja con el entorno de desarrollo de Microsoft Visual Studio


.NET 2008.
ASP.NET es un entorno de programacin que se ejecuta en un servidor Web
para generar y administrar pginas Web. Visual Studio 2008 proporcionar el diseador
de formularios Web, un editor, controles y un sistema de depuracin para facilitar la
creacin de aplicaciones que guardadas en un servidor pueden ser accesadas desde un

explorador, telfonos mviles, etc...


Figura 14.1 Pgina de Inicio de Visual Studio 2008.

14.1 Aplicacin Web (ASP.NET)


Crear una aplicacin Web ASP.NET utilizando el lenguaje de programacin Visual
Basic .NET requiere de unos pasos muy sencillos como son: iniciar un nuevo sitio Web,
crear la interfaz del usuario, establecer las propiedades de los objetos, escribir el cdigo
y ejecutar el sitio Web.
Como ejemplo, se crear un sitio Web llamado PedidoWeb que permita a un
usuario seleccionar comida y bebida en un restaurante y visualizar el valor a pagar por
los productos pedidos. Se debe imprimir el subtotal, el impuesto por valor agregado
(I.V.A. 16%) y el valor neto a pagar.
14.1.1 Crear un nuevo sitio Web
Para iniciar un nuevo sitio Web desde la pgina de inicio de Visual Studio 2008, se
puede realizar uno de los siguientes pasos:
1. En la ventana proyectos recientes seleccionar la opcin Crear: link Sitio Web
2. Dar clic en el men Archivo y seleccionar Nuevo sitio Web...

Al escoger una de las dos opciones se visualizar la ventana Nuevo sitio Web,
donde se deber seleccionar la plantilla SitioWeb ASP.NET.

Figura 14.2 Ventana Nuevo sitio Web ASP.NET.

En la opcin Ubicacin puede crear el sitio web en un Sistema de archivos


(Discos de trabajo), una ubicacin HTTP o FTP, escoja Sistema de archivos. Con el
botn Examinar puede buscar la carpeta donde desea guardar el nuevo sitio Web o
simplemente digite la ruta de trabajo y a continuacin asigne el nombre del sitio
PedidoWeb. El lenguaje ser Visual Basic. Pulse el botn Aceptar para visualizar el
entorno de diseo del sitio Web PedidoWeb.
Figura 14.3 Entorno de diseo de un nuevo sitio Web.

Como se puede apreciar, el entorno de desarrollo es parecido al entorno de las


aplicaciones Windows Forms. En l encontrar:
1. Men principal y la barra de herramientas estndar: Proporcionan acceso a
la mayora de comandos que controlan el entorno de programacin de Visual
Studio .NET.
2. Cuadro de Herramientas: El cuadro de herramientas contiene las fichas:
Estndar, Datos, Validacin, Navegacin, Inicio de sesin, Elementos Web,
Extensiones Ajax, Informe, HTML. Cada ficha contiene controles que al
aadirse a un formulario Web se convierte en un objeto de la interfaz de usuario
programable en la aplicacin.
3. Diseador formularios Web: Cuando se inicia un sitio Web el diseador de
formularios de Web se abre en vista Diseo (un formulario tiene vista diseo
cundo se inicia el sitio y est en modo de ejecucin cuando se ejecuta la
aplicacin), mostrndose el formulario Web Default.aspx. En la parte inferior
del formulario Web se encuentran las pestaas Diseo, Dividir (divide el
formulario Web en dos partes: una en modo diseo y en la otra mitad se
visualiza el cdigo HTML del formulario Web), Cdigo (muestra el cdigo
HTML), como tambin las pestaas <html>, <body>, <form#form1>, <div>.
En dicho formulario Web se pueden ubicar los controles u objetos necesarios
para la aplicacin arrastrndolos desde el cuadro de herramientas para crear la
interfaz de usuario.
4. Explorador de soluciones: Visualiza las carpetas y archivos que se han creado.
Si observa en la carpeta donde guard el sitio Web se cre la carpeta App_Data
y los archivos Default.aspx, Default.aspx.vb (este archivo contiene el cdigo
fuente que da soporte a la pgina Default.aspx) y Web.xml (archivo de
configuracin xml).
5. Ventana de propiedades: Muestra una lista de las propiedades que facilitan la
configuracin de los valores o propiedades del control seleccionado y se pueden
modificar mientras se crea o se edita la aplicacin. Una propiedad describe una
caracterstica de un objeto, como el tamao, ttulo, color, etc.
6. Ventana lista de errores: Muestra una lista de los errores, advertencias o
mensajes que se generan al realizar modificaciones a los controles o al ejecutar
la aplicacin.
14.1.2 Crear la interfaz de usuario
Para crear la interfaz de usuario del sitio Web, en primer lugar se deben ubicar los
controles necesarios en el formulario Web desde el cuadro de herramientas. Para el
ejemplo se diseara la interfaz de usuario utilizando los siguientes controles: 7 Label, 3
TextBox, 1 ListBox 1 DropDownList, 2 Button y 1 GridView (ficha datos).
Cuando existen varios controles del mismo tipo, estos se numeran en el mismo
orden en que son colocados (nombre del control ms numero del consecutivo). La
interfaz inicial de usuario del ejemplo debera mostrar el siguiente aspecto:

Figura 14.4 Interfaz de usuario inicial sitio Web PedidoWeb.

14.1.3 Establecer las propiedades de los controles


Despus de colocar los controles u objetos a un formulario Web, se puede establecer sus
propiedades en la ventana Propiedades o en el Editor de cdigo.
Para modificar las propiedades se selecciona el control en el formulario Web y
se cambia su configuracin en la ventana Propiedades. Para el caso del ejemplo
establezca las siguientes modificaciones a cada uno de los siguientes controles:
Tabla 14.1 Propiedades de los controles del sitio PedidoWeb.
Control
Label1

Label2
Label3
Label4

Label5
Label6
Label7
TextBox1
TextBox2
TextBox3
ListBox1

Propiedad
ID
Text
Font - Bold
ID
Text
ID
Text
ID
Text
Font - Bold
ID
Text
ID
Text
ID
Text
ID
ID
ID
ID

Valor
lbltitulo
Pedidos Restaurante la FRIKY.
True
lblcomida
Seleccione Comida:
lblbebida
Seleccione Bebida:
lblpedido
Pedido
True
lblsubtotal
SubTotal:
lbliva
I.V.A.:
lbltotal
Neto a Pagar:
txtsubtotal
txtiva
txtsubtotal
listacomida

DropDownList1
Button1
Button2
GridView1
Form1
Document
Default.aspx

AutoPostBack
ID
AutoPostBack
ID
Text
ID
Text
ID
ID
Title
Nombre del archivo

True
listabebida
True
botoncomida
Adicionar Comida
botonbebida
Adicionar Bebida
tablapedido
formulario
Restaurante la FRIKY
pagina.aspx

Ahora seleccione el control ListBox llamado listacomida, d clic en la flecha de


la parte superior derecha del control para ver las Tareas de ListBox y escoja la opcin
Editar Elementos para ver la ventana Editor de la coleccin ListItem:
Figura 14.5 Ventana Editor de la coleccin ListItem del control listacomidas.

Pulse el botn Agregar del Editor de la coleccin ListItem, busque la


propiedad Text y cambie el texto por Arroz con Pollo. Realice los mismos pasos para
agregar los textos: Pescado, Mondongo, Ajiaco, Carne. Por ltimo pulse el botn
Aceptar.
Figura 14.6 Elementos agregados al objeto listacomida.

Luego seleccione el control DropDownList llamado listabebida, d clic en la


flecha de la parte superior derecha del control para ver las Tareas de DropDownList y
escoja la opcin Editar Elementos para ver la ventana Editor de la coleccin
ListItem y adicione de la misma forma los siguientes elementos de la misma forma
como se hizo en el control listacomida: Cerveza, Jugo, Limonada, Vino, Gaseosa.
Figura 14.7 Elementos agregados al objeto listabebida

La interfaz de usuario con las modificaciones respectivas en las propiedades de


cada control queda como se muestra en la siguiente figura:
Figura 14.8 Formulario Web final de la interfaz de usuario.

Por ltimo si se desea cambiar el formato del objeto GridView tablapedido,

seleccinelo y d clic en la flecha de la parte superior derecha del control para ver las
Tareas de GridView y escoja la opcin formato automtico para ver la ventana
Autoformato y elija el formato que desee. Para el ejemplo, se escogi el formato
Multicolor.
14.1.4 Escribir cdigo
Una vez se hayan establecido las propiedades del formulario Web y sus objetos, se
puede agregar el cdigo que se ejecutar en respuesta a un evento especifico de cada
control.
1. Despes de la apertura de Partial class _Default y antes del primer
procedimiento Sub, declare como publicas las variables llamadas valor, i,
sumar de tipo Integer. D doble clic sobre el formulario y escriba este cdigo
escriba:
Partial Class _Default
Inherits System.Web.UI.Page
Dim datos As New Data.DataTable
Public Shared valor, sumas As Integer

Se declara el objeto datos al cual se le asigna espacio de memoria de tipo


DataTable (tabla de datos). Por otro lado, se establecen como pblicas compartidas
(public shared) las variables valor, sumas de tipo Integer. Son declaradas compartidas
porque se est trabajando en un entorno Web.
2. Seleccione el objeto formulario, d doble clic para abrir el editor del
procedimiento Page_Load y escriba el siguiente cdigo:
If IsPostBack Then
datos.Columns.Add("Producto")
datos.Columns.Add("Precio")
End If

Cuando se cargue la pgina en el explorador (IsPostBack) se le adiciona al


objeto datos las columnas que se van a mostrar en el GridView.
3. D doble clic en el objeto ListBox llamado listacomida, para abrir el editor del
procedimiento listacomida_SelectedIndexChanged y escriba el siguiente
cdigo:
If listacomida.SelectedIndex = 0 Then
valor = 10000
End If
If listacomida.SelectedIndex = 1 Then
valor = 13000
End If
If listacomida.SelectedIndex = 2 Then
valor = 8000
End If
If listacomida.SelectedIndex = 3 Then
valor = 9000
End If

If listacomida.SelectedIndex = 3 Then
valor = 12000
End If

En el anterior cdigo se utiliza la estructura de control If para determinar qu


posicin del objeto listacomida se ha seleccionado utilizando la propiedad
SelectedIndex. Dependiendo del index seleccionado se le asignar al objeto valor el
valor correspondiente.
4. D doble clic en el objeto DropDownList llamado listabebida, para abrir el
editor del procedimiento listabebida_SelectedIndexChanged y escriba el
siguiente cdigo:
If listabebida.SelectedIndex = 0 Then
valor = 3000
End If
If listabebida.SelectedIndex = 1 Then
valor = 2000
End If
If listacomida.SelectedIndex = 2 Then
valor = 1800
End If
If listabebida.SelectedIndex = 3 Then
valor = 4000
End If
If listabebida.SelectedIndex = 3 Then
valor = 1500
End If

Con la estructura de control If se obtiene el elemento seleccionado del objeto


listabebida. Dependiendo del index seleccionado se le asignar al objeto valor el valor
correspondiente.
5. D doble clic en el objeto Button llamado botoncomida, para abrir el editor del
procedimiento botoncomida_Click y escriba el siguiente cdigo:
Dim nuevafila As Data.DataRow
Dim i As Integer
For i = 0 To tablapedido.Rows.Count - 1
nuevafila = datos.NewRow()
Dim fila As GridViewRow = tablapedido.Rows(i)
nuevafila("Producto") = fila.Cells(0).Text
nuevafila("Precio") = fila.Cells(1).Text
datos.Rows.Add(nuevafila)
Next
nuevafila = datos.NewRow()
nuevafila("Producto") = listacomida.SelectedItem
nuevafila("Precio") = valor
datos.Rows.Add(nuevafila)
tablapedido.DataSource = datos
tablapedido.DataBind()
sumas = 0
For i = 0 To tablapedido.Rows.Count - 1
Dim sumafila As GridViewRow = tablapedido.Rows(i)
sumas = sumas + Val(sumafila.Cells(1).Text)
Next
txtsubtotal.Text = Val(sumas)

txtiva.Text = Val(txtsubtotal.Text) * 0.16


txttotal.Text = Val(txtsubtotal.Text) + Val(txtiva.Text)

Inicialmente se crea un objeto llamado nuevafila de tipo DataRow (representa


una fila de datos) y la variable i de tipo Integer. En el caso de que ya existan filas en el
objeto GridView, con un primer ciclo For se recorrer el objeto GridView tablapedido
para guardar en el objeto datos las filas actuales antes de adicionar una nueva. En dicho
ciclo al objeto nuevafila se le asigna una nueva fila (NewRow ()). Utilizando la funcin
Rows se le asigna a la variable fila de tipo GridViewRow la fila actual del objeto
tablapedido y a nuevafila se le asignan el nombre de las columnas y los valores de
dichas columnas en la posicin actual. Por ltimo se adiciona al objeto datos la nueva
fila (Rows.add). Al salir del ciclo al objeto nuevafila se le asigna una nueva fila y se le
adiciona a la columna Producto el texto seleccionado del objeto listacomida y a la
columna Precio el valor de lo seleccionado y luego es adicionado al objeto datos.
Utilizando la propiedad DataSource del objeto tablapedidos se le asigna el objeto
datos y se enlaza al orgen de datos (tablapedido.DataBind ()). En un segundo ciclo
For se recorre cada una de las filas que contenga el objeto tablapedido y se asigna a la
variable suma el valor de ella misma ms los valores encontrados en la columna Precio.
Por ltimo se asignan los siguientes valores a los objeto TextBox: txtsubtotal el valor
de la variable sumas; a txtiva el 16 % del valor del objeto txtsubtotal; y a txttotal la
suma de los objetos txtsubtotal y txtiva.
6. D doble clic en el objeto Button llamado botonbebida, para abrir el editor del
procedimiento botoncomida_Click y escriba el siguiente cdigo:
Dim nuevafila As Data.DataRow
Dim i As Integer
For i = 0 To tablapedido.Rows.Count - 1
nuevafila = datos.NewRow()
Dim fila As GridViewRow = tablapedido.Rows(i)
nuevafila("Producto") = fila.Cells(0).Text
nuevafila("Precio") = fila.Cells(1).Text
datos.Rows.Add(nuevafila)
Next
nuevafila = datos.NewRow()
nuevafila("Producto") = listabebida.SelectedItem
nuevafila("Precio") = valor
datos.Rows.Add(nuevafila)
tablapedido.DataSource = datos
tablapedido.DataBind()
sumas = 0
For i = 0 To tablapedido.Rows.Count - 1
Dim sumafila As GridViewRow = tablapedido.Rows(i)
sumas = sumas + Val(sumafila.Cells(1).Text)
Next
txtsubtotal.Text = Val(sumas)
txtiva.Text = Val(txtsubtotal.Text) * 0.16
txttotal.Text = Val(txtsubtotal.Text) + Val(txtiva.Text)

El nico cambio que se realiza en el objeto botonbebida con respecto al anterior


cdigo es que al objeto nuevafila se le adiciona a la columna Producto el texto
seleccionado del objeto listabebida.

14.1.5 Ejecutar la aplicacin Web


Para ejecutar el sitio Web en el entorno de desarrollo de Visual Basic.NET se debe
realizar lo siguiente:
1. Haga clic en el botn Iniciar
de la barra de herramientas estndar.
Tambin puede presionar Ctrl+F5 para ejecutar el sitio Web. Otra forma es la opcin
Iniciar depuracin del men Depurar.
2. Cuando termine de ejecutar la aplicacin se debe cerrar el formulario Web para
regresar al entorno de programacin.

Figura 14.9 Ventana de Ejecucin sitio Web PedidoWeb

Cuando se ejecuta el sitio Web se visualizar la ventana de Depuracin no


habilitada. Si se ejecuta Modificar el archivo Web.config para habilitar la
depuracin se mostrar la pgina Web en el explorador seleccionado y esta ventana no
se volver a mostrar al ejecutarse nuevamente el sitio Web, por el contrario, si se
selecciona Ejecutar sin depuracin se mostrar inicialmente una pgina Web en
blanco, la cual deber cerrar para visualizar el sitio Web ejecutado (cada vez que se
ejecute esta opcin se visualizar la ventana de Depuracin no habilitada). Seleccione la
primera opcin para ver la siguiente figura.
Figura 14.10 Sitio Web PedidoWeb ejecutado.

Al seleccionar como comida Arroz con Pollo y Ajiaco y como bebida Vino y
Cerveza, se visualiza la siguiente figura:
Figura 14.11 Sitio Web con comida y bebida seleccionados.

14.1.6 Cerrar y abrir nuevamente un sitio Web


Para cerrar el sitio Web PedidoWeb o cualquier otro sitio web, estando en modo diseo
se pueden realizar los siguientes pasos:
1. En el men Archivo, hacer clic en la opcin Cerrar Proyecto.
2. Si desea cerrar el sitio Web y salir de Visual Studio, en el men Archivo haga clic en
la opcin Salir.

En cada caso se deben guardar los nuevos cambios que se hayan realizado.
Para volver a abrir la aplicacin PedidoWeb o cualquier otra aplicacin
existente se debern realizar los siguientes pasos:
1. Abrir Visual Studio .NET.
2. Si en la pantalla inicial de Visual Studio .NET se visualiza el nombre del sitio Web que
se desea abrir haga doble clic para abrir la aplicacin. Si por el contrario no se visualiza
la aplicacin en el men Archivo, seleccione Abrir sitio Web..., busque la carpeta
PedidoWeb y pulse el botn Abrir para abrir la aplicacin Web en el entorno de
desarrollo de Visual Basic .NET.

14.2 Controles para interfaz de usuario ASP.NET


La mayora de los controles del cuadro de herramientas son similares a los trabajados en
las aplicaciones Windows Forms, en el ejemplo anterior se utilizaron los objetos Label,
TextBox, Button, ListBox, DropDownList (ComboBox en Windows Forms) y
GridView (DataGridView en Windows Forms) y como se puede apreciar, el diseo y
la programacin son muy similares. En este captulo se realizar una descripcin breve

y un ejemplo prctico de los siguientes controles: CheckBoxList, ImageMap,


BulletedList, RadioButtonList, HyperLink, MultiView, View y los controles de
validacin:
RequiredFieldValidator,
RangeValidator,
CompareValidator,
CustomValidator, RegularExpressionValidator, ValidationSummary.
14.2.1 Control CheckBoxList
Un control CheckBoxList
es una lista de casillas de verificacin que permite
obtener dos estados: verdadero (True) si esta activada o falso (False) si esta
desactivada. Para obtener el valor de verdadero o falso se hace a travs de la propiedad
Selected.
14.2.1.1 Ejemplo prctico control CheckBox List
Realizar un sitio Web llamado ControlWebCheckBoxList que permita a un usuario
seleccionar de una lista frutas e imprimir las frutas seleccionadas en un control ListBox.

Crear la interfaz de usuario

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los


siguientes controles en el formulario Web: 1 CheckBoxList, 1 ListBox, 2 Label.

Establecer las propiedades de los objetos de la interfaz de usuario

Despus de colocar los controles u objetos en el formulario, establezca las siguientes


propiedades a los controles:
Tabla 14.2 Propiedades de los controles (ControlWebCheckBoxList).
Control
Label1

Propiedad
ID
Text
Font - Bold
ID
Text
Font - Bold
ID

Valor
lblfrutas
Seleccin de Frutas
True
lblfrutaseleccionadas
Frutas Seleccionadas
True
listafrutas

AutoPostBack

True

ID

listafrutasseleccionadas

AutoPostBack

True

Form1

ID

formulario

Document

Title

Control CheckBoxList

Default.aspx

Nombre
archivo

Label2
CheckBoxList1
ListBox1

del

pagina.aspx

Ahora seleccione el control CheckBoxList llamado listafrutas, d clic en la


flecha de la parte superior derecha del control para ver las Tareas de CheckBoxList y
escoja la opcin Editar Elementos para ver la ventana Editor de la coleccin
ListItem. Pulse el botn Agregar del Editor de la coleccin ListItem, busque la
propiedad Text y cambie el texto por Manzanas. Realice esta misma operacin hasta

obtener la siguiente figura:


Figura 14.12 Editor de la coleccin ListItem con elementos.

Por ltimo pulse el botn Aceptar.


La interfaz de usuario con las modificaciones respectivas en las propiedades de
cada control queda como se muestra en la siguiente figura:
Figura 14.13 Formulario Web final de la interfaz de usuario.

Escribir cdigo

D doble clic en el objeto CheckBoxList llamado listafrutas, para abrir el editor del

procedimiento listafrutas_SelectedIndexChanged y escriba el siguiente cdigo:


listafrutasseleccionadas.SelectionMode = ListSelectionMode.Multiple
listafrutasseleccionadas.Items.Clear()
Dim i As Integer
For i = 0 To listafrutas.Items.Count - 1
If listafrutas.Items(i).Selected = True Then
listafrutasseleccionadas.Items.Add(listafrutas.Items(i).Text)
End If
Next

Utilizando la enumeracin ListSelectionMode.Multiple se le asigna seleccin


mltiple en su propiedad SelectionMode al objeto listafrutasseleccionadas, como
tambin se remueven todos los elementos actuales de dicho objeto utilizando la funcin
Clear de la propiedad Items. Con un ciclo For se leen cada uno de los elementos del
objeto listafrutas y aquel elemento que este seleccionado se adiciona al objeto
listafrutasseleccionadas.

Ejecutar la aplicacin

Al ejecutarse el proyecto y seleccionar las frutas Naranjas, Fresas, Bananos, Mangos


se obtendra la siguiente figura:
Figura 14.14 Ejecucin de la aplicacin ControlWebCheckBoxList.

14.2.2 Control ImageMap


Un control ImageMap
permite que en una imagen se puedan crear zonas activas,
que pueden ser seleccionadas al hacer clic con el mouse. Est formado por dos

elementos: El primero es una imagen como un archivo .gif, .jpg, .png, .bmp, etc.; El
segundo es una coleccin de zonas activas, donde cada zona puede ser definida como un
crculo, un rectngulo o un polgono y unas coordenadas que especifican la ubicacin y
el tamao de la zona activa. Cada zona activa puede ser un hipervnculo o un evento que
devuelve informacin.
14.2.2.1 Ejemplo prctico control ImageMap
Crear un sitio Web llamado ControlImageMap que permita a un usuario seleccionar
una zona de una imagen entre cuatro zonas activas e imprimir el nombre del objeto
seleccionado. Se debe tener una imagen donde se puedan diferenciar las zonas activas.

Crear la interfaz de usuario

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los


siguientes controles en el formulario Web: 2 Label y 1 ImageMap.

Establecer las propiedades de los objetos de la interfaz de usuario

Despus de colocar los controles u objetos en el formulario, establezca las siguientes


propiedades a los controles:

Tabla 14.3 Propiedades de los controles (ControlImageMap).


Control
Label1

Label2
ImageMap1

Propiedad
ID
Text
Font - Bold
ID
Text
Font - Bold
ID

Valor
lbltexto
Imagen con cuatro dibujos
True
lblseleccion
Seleccin:
True
mapa_imagen

Height

200

Width

200

Form1

ID

formulario

Document

Title

Control ImageMap

Con las modificaciones anteriores el control ImageMap llamado mapa_imagen


tiene un alto (Height) y un ancho (Width) de 200 pixeles. Seleccione el objeto
mapa_imagen, busque la propiedad ImageURL y agregue una imagen (ojala que se
puedan destacar cuatro partes diferentes). Luego busque la propiedad HotSpot para
definir las zonas activas, d clic en los tres puntos
) para ver el Editor
de la coleccin HotSpot

Figura 14.15 Editor de la coleccin HotSpot.

Pulse en la punta de flecha del botn Agregar y seleccione RectangleHotSpot y


en las siguientes propiedades realice los siguientes cambios para crear la primera zona
activa: Bottom = 100, Left=0, Right=100, Top=0, HotSpotMode (establece el
comportamiento del objeto) = PostBack (genera una devolucin de datos al servidor) y
PostBackValue (obtiene el objeto seleccionado) =imagen_portatil.
Figura 14.16 Propiedades modificadas de la primera zona activa.

Realice la misma operacin para agregar tres nuevas zonas activas a la imagen,
con los siguientes valores en la respectiva propiedad.

Tabla 14.4 Propiedades de zonas activas.


Zonas
Segunda
Tercera
Cuarta

Bottom
100
200
200

Left
100
0
100

Right
200
100
200

Propiedades
Top
HotSpotMode
0
PostBack
100
PostBack
100
PostBack

PostBackValue
imagen_robot
imagen_celular
imagen_bicicleta

Figura 14.17 Objeto mapa_imagen con las cuatro zonas activas.

Por ltimo pulse el botn Aceptar.

La interfaz de usuario con las modificaciones respectivas en las propiedades de


cada control queda como se muestra en la siguiente figura:
Figura 14.18 Formulario Web con interfaz de usuario final.

Escribir cdigo

D doble clic en el objeto ImageMap llamado mapa_imagen, para abrir el editor del
procedimiento mapa_imagen_Click y escriba el siguiente cdigo:
Dim region As String = ""
Select Case e.PostBackValue
Case "imagen_portatil"
region = "El PORTATIL"
Case "imagen_robot"
region = "El ROBOT"
Case "imagen_celular"
region = "El CELULAR"
Case "imagen_bicicleta"
region = "La BICICLETA"
End Select
lblseleccion.Text = "selecciono:" & region

Inicialmente se crea una variable de tipo String llamada region la cual es


inicializada con un espacio. Utilizando la estructura Select se obtiene la zona
seleccionada (e.PostBackValue). Segn sea el caso se le asigna a la variable region el
texto correspondiente y es adicionada a la propiedad Text del objeto lblseleccion.

Ejecutar la aplicacin

Al ejecutarse el proyecto y seleccionar la zona dos (el robot) se obtendra la siguiente


figura:

Figura 14.19 Ejecucin de la aplicacin ControlImageMap.

14.2.3 Control BulletedList


Un control BulletedList
permite crear una lista de elementos ordenados y no
ordenados. Los elementos se pueden mostrar como vietas o nmeros utilizando la
propiedad BulletStyle y stan pueden ser: Numbered, LowerAlpha, UpperAlpha,
LowerRoman, UpperRoman, Disc, Circle, Square CustomImage. Se deben definir

las propiedades: Text y Value. Text detalla lo que el control va a mostrar en la pgina.
Value devuelve un valor deseado al seleccionar un elemento. Este control responde al
evento clic para devolver datos del servidor.
14.2.3.1 Ejemplo prctico control BulletedList
Disear un sitio Web llamado ControlBulletedList que permita a un usuario
seleccionar de una lista una pgina de Internet y abrirla utilizando el control
BulletedList.

Crear la interfaz de usuario

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los


siguientes controles en el formulario Web: 1 Label y 1 BulletedList.

Establecer las propiedades de los objetos de la interfaz de usuario

Despus de colocar los controles u objetos en el formulario, establezca las siguientes


propiedades a los controles:
Tabla 14.5 Propiedades de los controles (ControlBulletedList).
Control
Label1

Form1

Propiedad
ID
Text
Font - Bold
ID
DisplayMode
BulletStyle
ID

Valor
lbltexto
Control Bulletedlist lista de pginas de Internet
True
listapaginas
HyperLink
UpperAlpha
formulario

Document

Title

Control BulletedList

BulletedList1

Al arrastrarse el objeto BulletedList hacia el formulario, en la ventana Tareas


de BulletedList seleccione Editar elementos para ver el Editor de la coleccin
ListItem. Seleccione el botn Agregar y en la propiedad Text escriba ASP.NET, en la
propiedad Value escriba http://www.asp.net.
Figura 14.20 Editor de la coleccin ListItem con un elemento agregado.

Adems agregue los siguientes elementos:


Tabla 14.6 Propiedades de los elementos restantes del control listapaginas.
Text
MICROSOFT
GOOGLE
JAVA

Propiedades
Value
http://www.microsoft.com
http://www.google.com
http://www.java.sun

El editor quedara de la siguiente forma:


Figura 14.21 Editor de la coleccin ListItem con los elementos agregados.

Por ltimo pulse el botn Aceptar. La interfaz de usuario con las modificaciones
respectivas en las propiedades de cada control queda como se muestra en la siguiente
figura:
Figura 14.22 Interfaz de usuario final aplicacin ControlBullettedList.

Ejecutar la aplicacin

Al ejecutarse el proyecto se mostrar la siguiente figura:


Figura 14.23 Ejecucin del sitio Web ControlBulletedList.

Al seleccionar el elemento ASP.NET, se visualizar la siguiente figura:


Figura 14.24 Ejecucin al seleccionar el elemento ASP.NET.

14.2.4 Control RadioButtonList


Un control RadioButtonList
permite a un usuario escoger una alternativa entre
varias alternativas. Al igual que el control CheckBoxList puede obtener el valor de
verdadero (True) o falso (False) a travs de la propiedad Selected.
14.2.4.1 Ejemplo prctico control RadioButtonList
Escribir una aplicacin Web llamada ControlRadioButtonList que permita a un
usuario seleccionar y abrir una pgina Web utilizando los objetos RadioButtonList y
HyperLink.

Crear la interfaz de usuario

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los


siguientes controles en el formulario Web: 1 Label, 1 HyperLink y 1
RadioButtonList.

Establecer las propiedades de los objetos de la interfaz de usuario

Despus de colocar los controles u objetos en el formulario, establezca las siguientes


propiedades a los controles:
Tabla 14.7 Propiedades de los controles (ControlRadioButtonList).
Control
Label1

RadioButton
HyperLink1

Propiedad
ID
Text
Font - Bold
ID
Text
Font - Bold
ID
AutoPostBack
ID

Valor
lbltexto
Control RadioButtonList lista de pginas de Internet
True
lblhipertexto
Ir a la pgina :
True
listapaginas
True
hipertexto

Form1

ID

formulario

Document

Title

Control RadioButtonList

Label2

Ahora seleccione el objeto RadioButtonList y d clic sobre la flecha en la parte


superior derecha del control para ver la ventana Tareas de RadioButtonList, al
seleccionar la opcin Editar elementos se visualizar el Editor de la coleccin
ListItem. Seleccione el botn Agregar y en la propiedad Text escriba Asp.NET, en la
propiedad Value escriba http://www.asp.net/ES.

Figura 14.25 Editor de la coleccin ListItem con un elemento agregado.

Adems agregue los siguientes elementos:


Tabla 14.8 Propiedades de los elementos restantes del control listapaginas.
Text
Microsoft
Google
Java

Propiedades
Value
http://www.microsoft.com
http://www.google.com
http://www.java.sun

El editor quedara de la siguiente forma:


Figura 14.26 Editor de la coleccin ListItem con los elementos agregados.

Por ltimo pulse el botn Aceptar. La interfaz de usuario con las modificaciones
respectivas en las propiedades de cada control queda como se muestra en la siguiente
figura:

Figura 14.27 Interfaz de usuario final aplicacin ControlRadioButtonList.

Escribir cdigo

D doble clic en el objeto RadioButtonList llamado listapaginas, para abrir el editor


del procedimiento listapaginas_SelectedIndexChanged y escriba el siguiente
cdigo:
Dim i As Integer
For i = 0 To listapaginas.Items.Count - 1
If listapaginas.Items(i).Selected = True Then
hipertexto.NavigateUrl = listapaginas.Items(i).Value
hipertexto.Text = listapaginas.Items(i).Value
End If
Next

Con un ciclo For se leen cada uno de los elementos del objeto listapaginas y al
encontrar el elemento que est seleccionado se asigna a la propiedad Text del objeto
hipertexto el texto de la propiedad Value del objeto listapaginas, como tambin se le
adiciona dicho valor a la propiedad NavigateUrl.

Ejecutar la aplicacin

Al ejecutarse el proyecto y seleccionar la opcin Asp.NET se visualiza la siguiente


figura:

Figura 14.28 Ejecucin de la aplicacin ControlRadioButtonList.

Al pulsar el link http://www.asp.net/ES/ se obtendr la siguiente figura:


Figura 14.29 Ejecucin pgina asp.net.

14.2.5 Control MultiView


Un control MultiView
es un contenedor de controles View. El control View
puede contener un grupo de controles. Estos siempre deben especificarse dentro de un
control MultiView y solo se puede tener un control View activo a la vez. Con la
propiedad ActiveViewIndex se puede establecer el control View que est activo
tambin para devolver el ndice de la vista activa. El primer control View declarado
dentro del objeto MultiView tiene como ndice cero (0).

14.2.5.1 Ejemplo prctico control MultiView


Elaborar una aplicacin Web llamada ControlMultiView que permita a un usuario
responder una encuesta y visualizar las respuestas seleccionadas utilizando los controles
MultiView y View.

Crear la interfaz de usuario

Se realizar la interfaz de usuario de la siguiente forma:


a) Utilizando el cuadro de herramientas ubique los siguientes controles en el
formulario Web: 1 Label y 1 MultiView. Establezca las siguientes propiedades
a los controles:
Tabla 14.8 Propiedades de los controles MultiView y Label.
Control
Label1

Form1

Propiedad
ID
Text
Font - Bold
ID
ActiveViewIndex
ID

Valor
lbltexto
Controles MultiView y View.
True
multiplesvistas
0
formulario

Document

Title

Controles MultiView y View

MultiView1

La interfaz inicial quedara de la siguiente forma:


Figura 14.30 Interfaz de usuario controles MultiView y Label.

b) Agregue cuatro (4) controles View y establezca las siguientes propiedades a los
controles:

Tabla 14.9 Propiedades de los controles View.


Control
View1
View2
View3
View4

Propiedad
ID
ID
ID
ID

Valor
primeravista
segundavista
terceravista
cuartavista

La interfaz quedara de la siguiente forma:


Figura 14.31 Interfaz de usuario con los controles MultiView y View.

c) Seleccione el objeto View llamado primeravista y agregue los siguientes


controles: 1 Label, 1 CheckBoxList y 1 Button, adems establezca las
siguientes propiedades a los controles:
Tabla 14.10 Propiedades de los controles del objeto primeravista.
Control
Label1

CheckBoxList1
Button1

Propiedad
ID
Text
Font - Bold
ID
ID
Text

Valor
lbldeportes
Seleccionen los deportes que te gustan:
True
listadeportes
botonsiguiente
Siguiente

Seleccione el objeto listadeportes y agrguele los siguientes elementos: Futbol,


Baloncesto, Ciclismo, Natacin, Atletismo. El objeto primeravista quedara de la
siguiente forma:

Figura 14.32 Interfaz del objeto primeravista.

d) Seleccione el objeto View llamado segundavista y agregue los siguientes


controles: 1 Label, 1 RadioButtonList y 2 Button, adems establezca las
siguientes propiedades a los controles:
Tabla 14.11 Propiedades de los controles del objeto segundavista.
Control
Label1

RadioButtonList1
Button1
Button2

Propiedad
ID
Text
Font - Bold
ID
ID
Text

Valor
lblpractica
Los prcticas por:
True
listapractica
botonsiguiente2
Siguiente

ID

botonanterior

Text

Anterior

Seleccione el objeto listapractica y agrguele los siguientes elementos: Salud,


Pasatiempo, Esttica. El objeto segundavista quedara de la siguiente forma:
Figura 14.33 Interfaz del objeto segundavista.

e) Seleccione el objeto View llamado terceravista y agregue los siguientes


controles: 1 Label, 1 RadioButtonList y 2 Button, adems establezca las
siguientes propiedades a los controles:

Tabla 14.12 Propiedades de los controles del objeto terceravista.


Control
Label1

RadioButtonList1
Button1
Button2

Propiedad
ID
Text
Font - Bold
ID
ID
Text

Valor
lblsemana
Cuantas veces por semana:
True
listasemana
botonterminar
Terminar

ID

botonanterior2

Text

Anterior

Seleccione el objeto listasemana y agrguele los siguientes elementos: 1 3


veces, 1 5 veces, 1 7 veces. El objeto terceravista quedara de la siguiente forma:
Figura 14.34 Interfaz del objeto terceravista.

f) Seleccione el objeto View llamado cuartavista y agregue los siguientes


controles: 2 Label, adems establezca las siguientes propiedades a los controles:
Tabla 14.13 Propiedades de los controles del objeto cuartavista.
Control
Label1

Label2

Propiedad
ID
Text
Font - Bold
ID
Text

Valor
lblrespuesta
El resultado de la encuesta fue:
True
listasemana
Respuesta

El objeto cuartavista quedara de la siguiente forma:


Figura 14.35 Interfaz del objeto cuartavista.

Escribir cdigo
a) D doble clic en el objeto Button llamado botonsiguiente del objeto
primeravista, para abrir el editor del procedimiento botonsiguiente_Click y
escriba el siguiente cdigo:
Dim i As Integer
lblresultado.Text = "Los deportes que prcticas son:<br>"
For i = 0 To listadeportes.Items.Count - 1
If listadeportes.Items.Item(i).Selected Then
lblresultado.Text = lblresultado.Text & "<br>" & listadeportes.Items.Item(i).Value
End If
Next
multiplesvistas.ActiveViewIndex = 1

Con un ciclo For se leen cada uno de los elementos del objeto listadeportes y
aquel elemento que este seleccionado se adiciona al objeto lblresultado. Con la
propiedad ActiveViewIndex se activa la segunda vista.
b) D doble clic en el objeto Button llamado botonsiguiente2 del objeto
segundavista, para abrir el editor del procedimiento botonsiguiente2_Click y
escriba el siguiente cdigo:
Dim i As Integer
lblresultado.Text = lblresultado.Text & "<br><br>Lo prcticas por:<br>"
For i = 0 To listapractica.Items.Count - 1
If listapractica.Items.Item(i).Selected Then
lblresultado.Text = lblresultado.Text & "<br>" & listapractica.Items.Item(i).Value
End If
Next
multiplesvistas.ActiveViewIndex = 2

Con un ciclo For se leen cada uno de los elementos del objeto listapractica y
aquel elemento que est seleccionado se adiciona al objeto lblresultado. Con la
propiedad ActiveViewIndex se activa la tercera vista.
c) D doble clic en el objeto Button llamado botonanterior del objeto
segundavista, para abrir el editor del procedimiento botonanterior_Click y
escriba el siguiente cdigo:
If (multiplesvistas.ActiveViewIndex > 0) And (multiplesvistas.ActiveViewIndex <= 2) Then
multiplesvistas.ActiveViewIndex -= 1
ElseIf multiplesvistas.ActiveViewIndex = 3 Then
multiplesvistas.ActiveViewIndex = 0
Else
Throw New Exception("A ocurrido un error.")
End If

Inicialmente se determina si la vista activa es mayor que 0 y menor o igual a 2


para decrementar la propiedad ActiveViewIndex del objeto multiplesvista en -1. En
caso contrario, se valida si la vista activa es igual a 3 para asignar a la propiedad
ActiveViewIndex el valor cero. En caso de que exista algn problema se lanza una
excepcin (Throw New Exception) con el mensaje A ocurrido un error.

d) D doble clic en el objeto Button llamado botonterminar del objeto


terceravista, para abrir el editor del procedimiento botonterminar_Click y
escriba el siguiente cdigo:
Dim i As Integer
lblresultado.Text = lblresultado.Text & "<br><br>En la semana lo prcticas:<br>"
For i = 0 To listasemana.Items.Count - 1
If listasemana.Items.Item(i).Selected Then
lblresultado.Text = lblresultado.Text & "<br>" & listasemana.Items.Item(i).Value
End If
Next
multiplesvistas.ActiveViewIndex = 3

Con un ciclo For se leen cada uno de los elementos del objeto listasemana y
aquel elemento que est seleccionado se adiciona al objeto lblresultado. Con la
propiedad ActiveViewIndex se activa la cuartavista.
e) D doble clic en el objeto Button llamado botonanterior2 del objeto
terceravista, para abrir el editor del procedimiento botonanterior2_Click y
escriba el siguiente cdigo:
If (multiplesvistas.ActiveViewIndex > 0) And multiplesvistas.ActiveViewIndex <= 3 Then
multiplesvistas.ActiveViewIndex -= 1
ElseIf multiplesvistas.ActiveViewIndex = 3 Then
multiplesvistas.ActiveViewIndex = 1
Else
Throw New Exception("A ocurrido un error.")
End If

Inicialmente se determina si la vista activa es mayor que 0 y menor o igual a 3


para decrementa la propiedad ActiveViewIndex del objeto multiplesvista en -1. En
caso contrario, se valida si la vista activa es igual a 3 para asignar a la propiedad
ActiveViewIndex el valor uno.

Ejecutar la aplicacin

Al ejecutarse el proyecto se visualizar la informacin de la primera vista:


Figura 14.36 Ejecucin de la aplicacin ControlMultiView.

Seleccione los deportes Baloncesto, Ciclismo y pulse el botn Siguiente para


visualizar la siguiente figura:
Figura 14.37 Aplicacin ControlMultiView en la segunda vista.

En este momento si desea puede devolverse a la primera vista pulsando el botn


Anterior. Seleccione la opcin Pasatiempo y pulse el botn Siguiente. Se obtendr la
siguiente figura:
Figura 14.38 Aplicacin ControlMultiView en la tercera vista.

Si selecciona la opcin 1 3 veces y se pulsa el botn Siguiente, visualizar la


cuarta vista con la informacin que fue seleccionada.
Figura 14.39 Aplicacin ControlMultiView en la cuarta vista.

14.3 Controles para validar datos


En el cuadro de herramientas de una aplicacin Web Asp.NET existe una ficha llamada
Validacion que contiene controles que sirven para validar informacin, es decir, que los
datos proporcionados en un control sean correctos de acuerdo a la informacin
solicitada. Como ejemplo de validacin puede ser dejar en blanco un campo obligatorio,
escribir una contrasea dos veces no coincidentes, teclear un valor en un rango no
especificado. Los tipos de controles de validacin son:

RequiredFieldValidator: Se utiliza para validar que en un campo de texto sea


obligatorio tener informacin y no se deje vaco.
RangeValidator: Se utiliza para validar que los datos de un control se
encuentren dentro de un rango de valores especificado. Se utiliza la propiedad
ControlToValidate para especificar el control que se va a validar. Las
propiedades MinimumValue y MaximumValue sirven para especificar los
valores mnimo y mximo de un intervalo determinado.
CompareValidator: Se utiliza para comparar el valor de un control con un
valor especificado en otro control o con un valor constante. El control
CompareValidator utiliza las siguientes propiedades para validar la
comparacin: Operator, ValueToCompare o ControlToCompare.
RegularExpressionValidator: Se utiliza para validar que lo escrito por un
usuario sea un valor definido por una expresin regular (direcciones de correo,
nmeros de telfonos, etc.).
CustomValidator: Se utiliza para validar que lo escrito por un usuario sea un
valor que previamente se ha definido por el usuario.
ValidationSummary: Se utiliza para resumir los mensajes de error de todos los
controles de validacin de una pgina Web.

14.3.1 Ejemplo prctico controles de validacin


Realizar una aplicacin Web llamada Controles_de_Validacion que permita a un
usuario digitar: Sus nombres y apellidos, indicar su dominio de ingles en un rango de 1 10, el estado civil, su correo electrnico y escribir una contrasea especificada.

Crear la interfaz de usuario

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los


siguientes controles en el formulario Web: 7 Label, 6 TextBox, 1
RequiredFieldValidator, 1 RangeValidator, 1 CustomValidator, 1 Button, 1
CompareValidator, 1 RegularExpressionValidator, 1 ValidationSummary.

Modifique las propiedades de los controles segn la siguiente tabla:

Tabla 12.14 Propiedades controles de la aplicacin Controles_de_Validacion.


Control
Label1

Label2
Label3
Label4

Label5
Label6
Label7
TextBox1
TextBox2
TextBox3
TextBox4
TextBox5
RequiredFieldValidator1
RangeValidator1
CustomValidator1
RegularExpressionValidator1
CompareValidator1
ValidationSummary
Form1
Document
Button1

Propiedad
ID
Text
Font
ID
Text
ID
Text
ID
Text

ID
Text
ID
Text
ID
Text
ID
ID
ID
ID
ID
ID
ID
ID
ID
ID
ID
ID
Title
ID
Text

Valor
txttexto
Encuesta Personal
Bold
lbldatos
Digite Nombres y Apellidos:
lblingles
Lee ingles (1 10);
lblestado
Estado
civil
(S=soltero;
C=casado; U=unin libre; V=
viudo)
lbcontrasea
Digite la contrasea 123456
lblcorreo
Correo electrnico :
lblerrores
Resumen de errores:
txtdatos
txtingles
txtestado
txtcontrasea
txtcorreo
validarcampo
validarrango
validarestado
validarexpresion
validarcontrasea
validarerrores
formulario
Controles de validacin
botonenviar
Enviar

El formulario se visualizara como muestra la siguiente figura:


Figura 14.40 Interfaz de usuario aplicacin Controles_de_Validacion.

Escribir cdigo
a) D doble clic sobre la pgina Web, para abrir el editor del procedimiento
Page_load y escriba el siguiente cdigo:
If Not Page.IsPostBack Then
validarcampo.ControlToValidate = "txtdatos"
validarcampo.ErrorMessage = "Campo obligatorio, no puede ser vacio"
validarrango.ControlToValidate = "txtingles"
validarrango.Type = ValidationDataType.Integer
validarrango.MinimumValue = 1
validarrango.MaximumValue = 10
validarrango.ErrorMessage = "Debe digitar un valor entre 1 y 10"
validarestado.ControlToValidate = "txtestado"
validarestado.ErrorMessage = "Digite S,C,u o V"
validarexpresion.ControlToValidate = "txtcorreo"
validarexpresion.ValidationExpression = "\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
validarexpresion.ErrorMessage = "El formato del correo es:nombre@sitioweb.dominio"
validarcontrasea.ControlToValidate = "txtcontrasea"
validarcontrasea.ValueToCompare = "123456"
validarcontrasea.ErrorMessage = "La contrasea es:123456"
End If

Se utiliza IsPostBack para determinar si se est cargando la pgina. Con la


sentencia de toma de decisiones If se valida cuando se enva los datos al servidor para
realizar las validaciones correspondientes en cada control. Los mtodos que se utilizan
son:
ControlValidate: Es el objeto que se va a validar
ErrorMessage: El mensaje que se imprimir al ocurrir el error de validacin.
Type: es el tipo de dato a validar
MinimumValue: Es el valor mnimo del control de validacin
MaximumValue: Es el valor mximo del control de validacin
ValueToCompare: Es el valor de comparacin a validar.
ValidationExpression: Es la expresin regular que se vlida.
b) Seleccione el objeto botonenviar, d doble clic para abrir el editor del
procedimiento botonenviar_Click y escriba el siguiente cdigo:
validarcampo.Validate()
validarrango.Validate()
validarestado.Validate()
validarexpresion.Validate()
validarcontrasea.Validate()

Al pulsar el objeto botonenviar se valida cada objeto de validacin referente a


la informacin que se ha escrito en cada uno de los campos de texto con el mtodo
Validate () y se actualiza la propiedad IsValid.
c) Seleccione el objeto validarestado, d doble clic para abrir el editor del
procedimiento validarestado_ServerValidate y escriba el siguiente cdigo:
If (args.Value = "S") Then
args.IsValid = True
ElseIf (args.Value = "C") Then
args.IsValid = True

ElseIf (args.Value = "U") Then


args.IsValid = True
ElseIf (args.Value = "V") Then
args.IsValid = True
Else
args.IsValid = False
End If

Al digitar un valor en el campo de texto txtestado, este es validado con la


estructura de decisin If para determinar que su contenido sea un valor especificado por
el control de validacin CustomValidator.

Ejecutar la aplicacin

Al ejecutarse el proyecto y digitar 20, S, 2, 54 respectivamente y pulsar el botn


Enviar, se visualizar la siguiente figura:
Figura 14.41 Ejecucin aplicacin Controles_de_Validacion.

Como se puede apreciar, se muestran los mensajes de error en cada campo validado por
el respectivo control de validacin. Si por el contrario se escriben los siguientes valores:
Cristian Vanegas, 8, S, 123456, cavm10@hot.com y se puls el botn Enviar, se
obtendra la pgina sin mensajes de error.

Figura 14.42 Ejecucin Controles_de_Validacion con datos correctos.

15. ACCESO A BASES DE DATOS CON ASP.NET


Con las aplicaciones Web tambin es posible mostrar informacin de una base de datos.
En el captulo 12 se hizo una breve descripcin sobre bases de datos, el lenguaje de
consulta estructurado S.Q.L., conceptos que se pueden aplicar en los sitios Web
ASP.NET. En dicho captulo se crearon aplicaciones Windows Forms donde se trabajo
con la base de datos SQL Server y se realiz la conexin a dicha base de datos, se
consult y se realizarn operaciones con los registros de una o ms tablas de la base de
datos, como tambin se diseo un informe de los registros de una tabla.
La conexin, la operacin con una base de datos desde un formulario Web es
algo similar. Cuando se realiza la conexin por cdigo de Visual Basic .NET es
necesario importar los espacios de nombres System.Data (normalmente denominado
ADO.NET) y System.Data.SqlClient.
15.1 Controles para operaciones con orgenes de datos
ASP.NET contiene controles que permiten realizar operaciones con los orgenes de
datos que administran las tareas que se pueden realizar con una base de datos. Estos no
representan ningna interfaz de usuario, sino que actan como intermediarios entre los
datos y los dems controles de la pgina Web ASP.NET. Dichos controles habilitan un
amplio conjunto de funciones para recuperar y modificar datos, entre las que se incluyen
la conexin, consulta, actualizacin, eliminacin y la insercin. ASP.NET incluye los
siguientes:
Tabla 15.1 Controles para operaciones con orgenes de datos ASP.NET.
Control

descripcin

OleDbDataAdapter

Adaptador de datos para una base de datos Access.

SqlDbDataAdapter

Adaptador de datos para una base de datos SQL.

OracleDbDataAdapter

Adaptador de datos para una base de datos Oracle.

DataSet

Representa un conjunto de datos en memoria.

DataView

Representa una vista para enlazar datos.

SqlDataSource

Conecta base de datos SQL Server, Oracle u OLEDB

AccesDataSource

Conecta una base de datos Access de Microsoft.

XmlDataSource

Conecta con un archivo XML.

15.2 Ejemplos prcticos bases de datos con ASP.NET


15.2.1 Conexin a SQL Server por cdigo
Disear de un sitio Web llamado ConexionBD_GV_cdigo, que permita realizar una
conexin a una base de datos de SQL Server y mostrar los registros de una tabla
llamada clientes en un objeto GridView utilizando cdigo de Visual Basic .NET.

NOTA: para este ejemplo el usuario tiene que tener instalado Microsoft SQL
SERVER 2005 o posterior y crear una base de datos llamada bdlibrovbnet y dentro de
ella una tabla llamada clientes (Ver anexo A, SQL Server).

Crear la interfaz de usuario

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los


siguientes controles en la pgina Web en la posicin deseada: 3 Label y 1 GridView.

Establecer las propiedades de los objetos de la interfaz de usuario

Establezca las siguientes modificaciones a los controles:


Tabla 15.1 Propiedades de controles proyecto ConexionBD_GV_cdigo.
Control
GridView1
Label1

Label2

Label3

Button1
Form1
Document

Propiedad
ID
ID
Text
Font - Bold
ID
Text
Font - Bold
ID
Text
Font - Bold
ID
Text
ID
Title

Valor
cuadriculadatos
lbltexto
Conexin por cdigo a una base de datos SQL
SERVER.
True
lblregistros
Registros tabla: Clientes
True
lblnumeroregistros
Nmero de Registros:
True
boton
Ejecutar Conexin
formulario
Conexin a SQL Server.

La interfaz de usuario queda como se muestra en la siguiente figura:


Figura 15.1 Interfaz de usuario ConexionBD_GV_cdigo.

Escribir cdigo
a) Antes de la apertura de la clase Default se debe importar los siguientes espacios
de nombres:
Imports System.Data
Imports System.Data.SqlClient
Partial Class Default
Inherits System.Web.UI.Page
.

End Class

Se importan los espacios de nombres System.Data y System.Data.SqlClient los


cuales son necesarios para utilizar las diferentes clases que permitan las operaciones con
bases de datos.
b) D doble clic sobre el objeto boton para abrir el editor de cdigo del
procedimiento boton_Click y escriba el siguiente cdigo:

Dim conexion As String


conexion = "Data Source=(local)\SQLEXPRESS;Database=bdlibrovbnet;Integrated
Security=True"
Dim seleccion As String = "SELECT * FROM clientes"
Dim adaptadordedatos As SqlDataAdapter
Dim tabladedatos As New DataTable
Try
adaptadordedatos = New SqlDataAdapter(seleccion, conexion)
adaptadordedatos.Fill(tabladedatos)
cuadriculadatos.DataSource = tabladedatos
cuadriculadatos.DataBind()
lblnumeroregistros.Text = "Total de Registros:" & tabladedatos.Rows.Count
Catch ex As Exception
MsgBox("Error en la conexin: " & ex.Message)
End Try

Se crea una variable llamada conexion de tipo String a la cual se le asigna la


cadena de conexin a la base de datos SQL Server. Dicha cadena contiene los siguientes
parmetros:

Data Source: Se le asigna la ruta donde se encuentra el servidor SQL Server; en


este caso, SQL Server se instalo en el computador de trabajo por lo cual el nombre
del servidor es (local)\SQLEXPRESS.
Database: Se le asigna el nombre de la base de datos a la que se quiere conectar.
Integrated Security: Se le asigna True o False para determinar si la seguridad es
integrada o no.

Adems se crean los siguientes objetos: seleccion de tipo String a la cual se le


asigna la sentencia SQL Select * From Clientes (se van a mostrar en la cuadricula
todos los registros de la tabla clientes); adaptadordedatos de tipo SqlDataAdapter el
cual ser el adaptador de datos para manipular la base de datos SQL Server;

tabladedatos se le asigna espacio de memoria de tipo DataTable para guardar los datos
en memoria y poder realizar operaciones con dichos datos. En un bloque Try se le
asigna espacio de memoria de tipo SqlDataAdapter al objeto adaptadordedatos, al
cual se le enva como parmetros los objetos seleccion (datos a mostrar) y conexion
(cadena de conexin), luego se rellena (fill) el adaptador de datos con la tabla de datos
(tabladedatos); al objeto cuadriculadatos en su propiedad DataSource se le establece
el conjunto de datos que se van a mostrar al asignrsele la tabla de datos, por otro lado,
se enlaza al objeto cuadriculadatos el orgen de datos (DataBind()) y por ltimo se
establece a la propiedad Text del objeto lblnumeroregistros el texto actual del objeto
unido al nmero total de registros que contenga la tabla (tabladedatos.Rows.Count).
Por el bloque Catch se establece un mensaje en caso de que ocurra un error de
conexin.

Ejecutar la aplicacin

Al ejecutarse el sitio Web, se visualizar la siguiente figura:


Figura 15.2 Ejecucin aplicacin ConexionBD_GV_cdigo.

Al pulsar el botn Ejecutar Conexin, se obtendr la siguiente figura:


Figura 15.3 Ejecucin aplicacin ConexionBD_GV_cdigo.

15.2.2 Conexin a una base de datos con un control GridView


Crear un sitio Web llamado ConsultaWebGridView, que permita visualizar los
registros de una tabla en un control GridView, adems, se puedan ordenar dichos
registros por cualquier campo de la tabla.
NOTA: para este ejemplo el usuario tiene que tener instalado Microsoft SQL
SERVER 2005 o posterior y tener creada la base de datos llamada bdlibrovbnet con
sus respectivas tablas. (Ver anexo A, SQL Server).

Crear la interfaz de usuario

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los


siguientes controles en la pgina Web en la posicin deseada: 1 Label y 1 GridView.
Establecer las propiedades de los objetos de la interfaz de usuario
Establezca las siguientes modificaciones a los controles:
Tabla 15.2 Propiedades de controles proyecto ConsultaWebGridView.
Control
GridView1
Label1

Form1
Document

Propiedad
ID
ID
Text
Font - Bold
ID
Title

Valor
datos
lbltexto
Consulta de los registros de una tabla con un
control GridView.
True
formulario
Consulta de registro de una tabla.

Despus de modificar las propiedades de los controles, seleccione el objeto


GridView datos y d clic sobre la flecha en la parte superior derecha del control para
ver la ventana Tareas de GridView:
Figura 15.4 Ventana de Tareas de GridView.

De la opcin Elegir orgen de datos, seleccione <Nuevo orgen de datos>


para visualizar la siguiente figura:

Figura 15.5 Asistente para la configuracin de orgenes de datos.

Escoja el objeto Base de datos y especifique como nombre del identificador del
orgen de datos orgendedatos y pulse el botn Aceptar, para visualizar la ventana de
eleccin de la conexin de datos.
Figura 15.6 Ventana Elegir la conexin de datos.

Pulse el botn Nueva conexin para ver la ventana de Agregar conexin, all
d clic sobre el botn Examinar y busque la base de datos bdlibrovbnet.mdf. Se
obtendr la siguiente figura:

Figura 15.7 Ventana Agregar conexin con la base de datos seleccionada.

Pulse el botn Aceptar para mostrar nuevamente la ventana Elegir la conexin


de datos con la base de datos escogida. Al pulsar el signo (+) al lado del texto Cadena
de conexin se podr ver los parmetros de conexin.
Figura 15.8 Ventana con la base de datos y la cadena de conexin.

Pulsando el botn Siguiente> se visualizar la ventana para guardar la cadena de


conexin en el archivo de configuracin de la aplicacin. Cambie el nombre de la
cadena de conexin por cadenaconexionbd, se obtendr la siguiente figura:

Figura 15.9 Ventana Guardar cadena de conexin.

Pulse el botn Siguiente> para ver la ventana de configuracin de la


instruccin Select. En dicha ventana debe estar seleccionada la opcin Especificar
columnas de una tabla o vista. En la lista Nombre seleccione la tabla Clientes y en el
cuadro Columnas escoja el cuadro de verificacin *. La ventana quedara de la
siguiente forma:
Figura 15.10 Ventana de configuracin de la instruccin Select.

Nuevamente pulse el botn Siguiente> para ver la ventana de Consulta de


prueba. En dicha ventana pulse el botn Consulta de prueba para mostrar los registros
que fueron seleccionados, as como la instruccin Select.

Figura 15.11 Ventana Consulta de prueba.

Pulse el botn Finalizar para volver a modo diseo. En la ventana Tareas de


GridView escoja el cuadro de verificacin Habilitar Ordenacin. El formulario en
modo de edicin queda de la siguiente forma:
Figura 15.12 GridView con el orgen de datos.

La interfaz de usuario queda como se muestra en la siguiente figura:


Figura 15.13 Interfaz de usuario ConsultaWebGridView.

Ejecutar la aplicacin
Al ejecutarse el sitio Web, se visualizar la siguiente figura:

Figura 15.14 Ejecucin aplicacin ConsultaWebGridView.

Al hacer clic sobre el link empresa, se ordenaran alfabticamente todos los


registros por el campo empresa de la tabla clientes.
Figura 15.15 Registros ordenados por el campo empresa de la tabla clientes.

Si se desea mejorar la presentacin de los registros en la cuadricula, en modo


diseo seleccione el objeto datos y en la ventana de Tareas de GridView escoja la
opcin Formato Automtico y seleccione el esquema que desee.
15.2.3 Consulta una base de datos utilizando el Explorador de servidores
Elaborar un sitio Web llamado ConsultaBDExploradorServidores, que permita
visualizar los registros de una tabla en un control FormView, adems se permita la
paginacin de los registros.

NOTA: para este ejemplo el usuario tiene que tener instalado Microsoft SQL
SERVER 2005 o posterior y tener creada la base de datos llamada bdlibrovbnet con
sus respectivas tablas. (Ver anexo A, SQL Server).

Crear la interfaz de usuario

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los


siguientes controles en la pgina Web en la posicin deseada: 1 Label y 1 FormView.

Establecer las propiedades de los objetos de la interfaz de usuario

Establezca las siguientes modificaciones a los controles:


Tabla 15.3 Propiedades de controles proyecto ConsultaBDExploradorServidores.
Control
FormView1
Label1

Form1
Document

Propiedad
ID
ID
Text
Font - Bold
ID
Title

Valor
formulariodatos
lbltexto
Consulta una tabla utilizando el Explorador de
servidores.
True
formulario
Consulta tabla con FormView.

Explorador de servidores

Del men Ver seleccione la opcin Explorador de servidores, para visualizar la


siguiente figura:
Figura 15.16 Ventana Explorador de servidores.

Pulse el icono conectar con bases de


, para visualizar la ventana de
Agregar conexin. All d clic sobre el botn Examinar y busque la base de datos
bdlibrovbnet.mdf. Se obtendr la siguiente figura:

Figura 15.17 Ventana Agregar conexin con la base de datos bdlibrovbnet.mdf.

Pulse el botn Aceptar para volver al Explorador de servidores. Al pulsar en


el signo (+) al lado del nombre de la base de datos (bdlibrovbnet.mdf) se visualizar la
estructura definida en la base de datos. Si desea ver las tablas que contiene la base de
datos pulse el signo (+) al lado de Tablas y en cada tabla pulse el signo (+) para ver los
campos de la tabla seleccionada.
Figura 15.18 Explorador de servidores con la conexin a la base de datos.

Ahora seleccione el objeto FormView llamado formulariodatos y en la flecha


que aparece en el lado superior derecho, d clic para visualizar las Tareas de
FormView:

Figura 15.19 Ventana de las Tareas de FormView.

De la opcin Elegir orgen de datos, seleccione <Nuevo orgen de datos>


para visualizar la siguiente figura:
Figura 15.20 Asistente para la configuracin de orgenes de datos.

|Escoja el objeto Base de datos y especifique como nombre del identificador del
orgen de datos conexiondedatos y pulse el botn Aceptar para visualizar la ventana de
Elegir la conexin de datos. De la lista que all aparece escoja la base de datos
bdlibrovbnet.mdf. La ventana quedara de la siguiente forma:

Figura 15.21 Ventana Elegir la conexin de datos.

Pulsando el botn Siguiente> se visualizar la ventana para guardar la cadena de


conexin en el archivo de configuracin de la aplicacin. Cambie el nombre de la
cadena de conexin por cadenaconexion, se obtendr la siguiente figura:
Figura 15.22 Ventana para guardar el archivo de la cadena de conexin.

Pulse el botn Siguiente para visualizar la ventana de Configurar la


instruccin Select. Seleccione la tabla Clientes y en Columnas pulse el cuadro de
verificacin *.

Figura 15.23 Ventana Configurar la instruccin Select.

A continuacin pulse el botn Siguiente y despus el botn Finalizar para


volver a la pgina Web y visualizar nuevamente el objeto formulariodatos y la ventana
Tareas de FormView. Seleccione el cuadro de verificacin Habilitar paginacin.
Figura 15.24 Objeto formulariodatos con la opcin Habilitar paginacin.

D clic sobre la opcin Formato automtico para ver la ventana de


Autoformato.
Figura 15.25 Ventana de Autoformato.

Seleccione el esquema Multicolor y pulse el botn Aceptar. La interfaz de


usuario queda como se muestra en la siguiente figura:
Figura 15.26 Interfaz de usuario ConsultaBDExploradorServidores.

Ejecutar la aplicacin

Al ejecutarse el sitio Web, se visualizar la siguiente figura:


Figura 15.27 Ejecucin aplicacin ConsultaBDExploradorServidores.

15.2.4 Insertar un registro en una tabla


Elaborar un sitio Web llamado InsertarRegistrosWeb que permita insertar registros en
una tabla utilizando el control DetailsView.

Crear la interfaz de usuario

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los


siguientes controles en la pgina Web en la posicin deseada: 1 Label, 1 DetailsView.

Establecer las propiedades de los objetos de la interfaz de usuario

Establezca las siguientes modificaciones a los controles:


Tabla 15.4 Propiedades de controles del sitio InsertarRegistrosWeb.
Control
Label1

DetailsView1
Form1
Document

Propiedad
ID
Text
Font - Bold
ID
ID
Title

Valor
lbltexto
Insertar registro en una tabla desde un
formulario Web.
True
vistadatos
formulario
Insertar un registro en una tabla.

Establecer la conexin

Seleccione el objeto DetailsView llamado vistadatos y en la flecha que aparece en el


lado superior derecho, d clic para visualizar las Tareas de DetailsView:
Figura 15.28 Ventana Tareas de DetailsView.

Seleccione la opcin Elegir orgen de datos y <Nuevo orgen de datos> para


visualizar la ventana Asistente para la configuracin de orgenes de datos. Escoja el
objeto Base de datos y especifique como nombre del identificador del orgen de datos
conexionvista.

Figura 15.29 Ventana para elegir el orgen de datos.

Pulse el botn Aceptar para visualizar la ventana de Elegir la conexin de


datos. Realice los pasos necesarios para escoger la base de datos bdlibrovbnet.mdf. La
ventana quedara de la siguiente forma:
Figura 15.30 Ventana Elegir la conexin de datos.

Pulsando el botn Siguiente> se visualizar la ventana para guardar la cadena de


conexin en el archivo de configuracin de la aplicacin. Cambie el nombre de la
cadena de conexin por cadenavista, se obtendr la siguiente figura:

Figura 15.31. Ventana Guardar cadena de conexin.

Pulse el botn Siguiente para visualizar la ventana de Configurar la


instruccin Select. Seleccione la tabla Clientes y en la pestaa Columnas pulse el
cuadro de verificacin *.
Figura 15.32 Configurar la instruccin Select.

Por otro lado, pulse el botn Avanzadas para ver la ventana de opciones de
generacin de consultas SQL avanzadas. Active las opciones Generar instrucciones
Insert, Update y Delete y Usar concurrencia optimista. Se obtendr la siguiente
figura:

Figura 15.33 Opciones de generacin SQL avanzadas.

Pulse el botn Aceptar para ver nuevamente la ventana Configurar instruccin


Select. En dicha ventana pulse el botn Siguiente para ver la ventana de Consulta de
prueba. Por ltimo pulse el botn Finalizar. En la ventana Tareas de DetailsView
seleccione el cuadro de verificacin Habilitar insercin. La pgina Web quedara de la
siguiente forma:
Figura 15.34 Ventana diseo sitio Web InsertarRegistrosWeb.

La interfaz de usuario queda como se muestra en la siguiente figura:

Figura 15.35 Interfaz de usuario InsertarRegistrosWeb.

Ejecutar la aplicacin

Al ejecutarse el sitio Web, se visualizar la pgina Web mostrando el primer registro de


la tabla clientes en el objeto DetailsView vistadatos.
Figura 15.36 Ejecucin aplicacin InsertarRegistrosWeb.

Al pulsarse el link Nuevo los campos de texto del objeto vistadatos quedaran en
blanco y se observaran dos nuevos link Insertar y Cancelar, como se aprecia en la
figura.

Figura 15.37 Formulario Web para insertar un registro en la tabla.

Escriba en cada campo la informacin que se muestra en la figura 15.36.


Figura 15.38 Informacin a insertar en la tabla.

Al pulsarse el link Insertar se guardarn los datos en la tabla clientes y


nuevamente se mostrar el primer registro y el link Nuevo. Al ejecutarse la aplicacin
ConsultaWebGridView realizada en el aparte 15.2.2., se visualizar el nuevo registro.
Figura 15.39 Tabla clientes con el nuevo registro.

Registro insertado

15.2.5 Modificar un registro de una tabla


Crear un sitio Web llamado ModificarRegistrosWeb que permita modificar registros
en una tabla utilizando el control DetailsView.

Crear la interfaz de usuario

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los


siguientes controles en la pgina Web en la posicin deseada: 1 Label, 1 DetailsView.

Establecer las propiedades de los objetos de la interfaz de usuario

Establezca las siguientes modificaciones a los controles:


Tabla 15.5 Propiedades de controles del sitio InsertarRegistrosWeb.
Control
Label1

DetailsView1
Form1
Document

Propiedad
ID
Text
Font - Bold
ID
ID
Title

Valor
lbltexto
Modificar registros de una tabla en un
formulario Web.
True
vistadatos
formulario
Modificar registros en una tabla.

Establecer la conexin

Seleccione el objeto DetailsView llamado vistadatos y en la flecha que aparece


en el lado superior derecho, d clic para visualizar las Tareas de DetailsView. Realice
cada uno de los pasos para lograr la conexin a la base de datos ejecutados en el
ejemplo 15.2.4, desde la figura 15.26 hasta la figura 15.31. Al pulsar el botn Finalizar
de la ventana Consulta de prueba se volver a modo diseo de la pgina Web. Active
los cuadro de verificacin Habilitar paginacin y Habilitar edicin del objeto
vistadatos. El formulario Web quedara de la siguiente forma:
Figura 15.40 Ventana diseo sitio Web ModificarRegistrosWeb.

Ahora d clic sobre la opcin Editar campos para visualizar la ventana


Campos. En la ventana Campos seleccionados escoja el objeto Editar, Actualizar,
Cancelar y en la ventana Propiedades de CommandField busque la propiedad
ButtonType y escoja de la lista la opcin Button.
Figura 15.41 Ventana para editar los campos.

Por ltimo pulse el botn Aceptar. La interfaz de usuario queda como se


muestra en la siguiente figura:
Figura 15.42 Interfaz de usuario ModificarRegistrosWeb.

Ejecutar la aplicacin

Al ejecutarse el sitio Web, se visualizar la pgina Web mostrando el primer registro de


la tabla clientes en el objeto DetailsView vistadatos, el botn Editar y los
hipervnculos de paginacin.
Figura 15.43 Ejecucin aplicacin ModificarRegistrosWeb.

Con los link numricos busque el registro que se inserto en el ejemplo anterior y
pulse el botn Editar. Se observaran dos nuevos botones Actualizar y Cancelar.
Modifique el contenido del campo empresa por el texto Las acacias.
Figura 15.44 Formulario Web listo para modificar un registro en la tabla.

Pulse el botn Actualizar para obtener la siguiente figura:

Figura 15.45 Registro modificado de la tabla clientes.

15.2.6 Eliminar un registro de una tabla


Disear un sitio Web llamado EliminarRegistrosWeb que permita eliminar registros
en una tabla utilizando el control DetailsView.

Crear la interfaz de usuario

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los


siguientes controles en la pgina Web en la posicin deseada: 1 Label, 1 DetailsView.

Establecer las propiedades de los objetos de la interfaz de usuario

Establezca las siguientes modificaciones a los controles:


Tabla 15.6 Propiedades de controles del sitio EliminarRegistrosWeb.
Control
Label1

DetailsView1
Form1
Document

Propiedad
ID
Text
Font - Bold
ID
ID
Title

Valor
lbltexto
Eliminar registros de una tabla desde un
formulario Web.
True
vistadatos
formulario
Eliminar registros en una tabla.

Establecer la conexin

Seleccione el objeto DetailsView llamado vistadatos y en la flecha que aparece en el


lado superior derecho, de clic para visualizar las Tareas de DetailsView. Realice cada
uno de los pasos para lograr la conexin a la base de datos ejecutados en el ejemplo
15.2.4, desde la figura 15.26 hasta la figura 15.31. Al pulsar el botn Finalizar de la
ventana Consulta de prueba se volver a modo diseo de la pgina Web. Active los
cuadro de verificacin Habilitar paginacin y Habilitar eliminacin del objeto
vistadatos. El formulario Web quedara de la siguiente forma:

Figura 15.46 Ventana diseo sitio Web EliminarRegistrosWeb.

Ahora d clic sobre la opcin Editar campos para visualizar la ventana


Campos. En la ventana Campos seleccionados escoja el objeto Eliminar y en la
ventana Propiedades de CommandField busque la propiedad ButtonType y escoja de
la lista la opcin Button.
Figura 15.47 Ventana para editar los campos.

Por ltimo pulse el botn Aceptar. La interfaz de usuario queda como se


muestra en la siguiente figura:

Figura 15.48 Interfaz de usuario EliminarRegistrosWeb.

Ejecutar la aplicacin

Al ejecutarse el sitio Web, se visualizar la pgina Web mostrando el primer registro de


la tabla clientes en el objeto DetailsView vistadatos, el botn Eliminar y los
hipervnculos de paginacin.
Figura 15.49 Ejecucin aplicacin EliminarRegistrosWeb.

Con los link numricos busque el registro que se inserto y posteriormente se


modifico en ejemplos anteriores.

Figura 15.50 Formulario Web con el registro a ser eliminado.

Pulse el botn Eliminar. Se eliminar el registro actual y se observar el


siguiente registro de la tabla clientes en el objeto vistadatos.
Figura 15.51 Formulario Web al ser eliminado el registro con nit 20000.

Al ejecutarse nuevamente la aplicacin ConsultaWebGridView realizada en el


aparte 15.2.2., se visualizar todos los registros actuales de la tabla clientes.
Figura 15.52 Registros actuales de la tabla clientes.

15.2.7 Filtrar registros de una tabla


Realizar un sitio Web llamado FiltrarRegistrosWeb que permita visualizar registros de
una tabla cuyo nit sea mayor o igual a 500.

Crear la interfaz de usuario

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los


siguientes controles en la pgina Web en la posicin deseada: 1 Label, 1 DetailsView.

Establecer las propiedades de los objetos de la interfaz de usuario

Establezca las siguientes modificaciones a los controles:


Tabla 15.7 Propiedades de controles del sitio InsertarRegistrosWeb.
Control
Label1

ListView1
Form1
Document

Propiedad
ID
Text
Font - Bold
ID
ID
Title

Valor
lbltexto
Filtrar los registros de una tabla con
formularios Web.
True
vista
formulario
Filtrar registros de una tabla.

Establecer la conexin

Seleccione el objeto ListView llamado vista y en la flecha que aparece en el lado


superior derecho, de clic para visualizar las Tareas de ListView:
Figura 15.53 Ventana Tareas de ListView.

Seleccione la opcin Elegir orgen de datos y <Nuevo orgen de datos> para


visualizar la ventana Asistente para la configuracin de orgenes de datos. Escoja el
objeto Base de datos y especifique como nombre del identificador del orgen de datos
conexionlista.

Figura 15.54 Ventana para elegir el orgen de datos.

Pulse el botn Aceptar, para visualizar la ventana de Elegir la conexin de


datos. Realice los pasos necesarios para escoger la base de datos bdlibrovbnet.mdf. La
ventana quedara de la siguiente forma:
Figura 15.55 Ventana Elegir la conexin de datos.

|Pulsando el botn Siguiente> se visualizar la ventana para guardar la cadena


de conexin en el archivo de configuracin de la aplicacin. Cambie el nombre de la
cadena de conexin por cadenalista, se obtendr la siguiente figura:

Figura 15.56 Ventana Guardar cadena de conexin.

Pulse el botn Siguiente para visualizar la ventana de Configurar la


instruccin Select. Seleccione la tabla Clientes y en la pestaa Columnas pulse el
cuadro de verificacin *.
Figura 15.57 Configurar la instruccin Select.

Por otro lado, pulse el botn WHERE para ver la ventana Agregar clusula
WHERE. Realice lo siguiente: de la lista Columna escoja el campo nit; de la lista
Operador seleccione el operador >=; de la lista Orgen el texto None; y en las
propiedades del parmetro el valor 500. Se obtendr la siguiente figura:

Figura 15.58 Agregar clusula WHERE.

Luego pulse el botn Agregar. La ventana quedara as:


Figura 15.59 Agregar clusula WHERE despus de pulsar el botn Agregar.

Pulse el botn Aceptar para ver nuevamente la ventana Configurar instruccin


Select. En dicha ventana pulse el botn Siguiente para ver la ventana de Consulta de
prueba. Por ltimo pulse el botn Finalizar.

Figura 15.60 Ventana diseo sitio Web FiltrarRegistrosWeb.

Nuevamente seleccione el objeto vista y en la ventana de Tareas de ListView


d clic en la opcin Configure ListView. De la lista Select a Layout seleccione Grid y
de la lista Select a Style escoja Professional. La ventana quedara de la siguiente
forma:
Figura 15.61 Ventana Configure ListView.

Pulse el botn OK para obtener la siguiente figura:


Figura 15.62 Ventana con el objeto vista modificado.

La interfaz de usuario queda como se muestra en la siguiente figura:


Figura 15.63 Interfaz de usuario FiltarRegistrosWeb.

Ejecutar la aplicacin

Al ejecutarse el sitio Web, se visualizar la pgina Web mostrando los registros de la


tabla clientes en el objeto ListView vista cuyo nit es mayor o igual a 500.
Figura 15.64 Ejecucin aplicacin FiltrarRegistrosWeb.

15.2.8 Informe de los registro de una tabla


Elaborar un sitio Web llamado InformeRegistrosWeb que permita visualizar todos los
registros de la tabla clientes de la base de datos bdlibrovbnet.mdf.

Crear la interfaz de usuario

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los


siguientes controles en la pgina: 1 MicrosoftReportViewer.

Establecer las propiedades de los objetos de la interfaz de usuario

Establezca las siguientes modificaciones a los controles:


Tabla 15.8 Propiedades de controles del sitio Web InformeRegistrosWeb.
Control
MicrosoftReportViewer
Form1
Document

Propiedad
ID
ID
Title

Valor
informeregistros
formulario
Informe de los registros de una
tabla.

La interfaz de usuario queda como se muestra en la siguiente figura:


Figura 15.65 Interfaz de usuario InformeRegistrosWeb.

Disear el informe y establecer la conexin con la base de datos

Para seleccionar la tabla y disear el informe, pulse la flecha del lado superior derecha
del objeto informeregistros para ver la ventana Tareas de ReportViewer y escoga la
opcin Disear nuevo informe.

Figura 15.66 Seleccin Tareas de ReportViewer Disear nuevo informe.

Al dar clic en la opcin Disear nuevo informe, se visualizar el asistente de


informes.
Figura 15.67 Asistente para informes.

D clic en Siguiente> para ver la ventana del asistente para la configuracin


de orgenes de datos. Realice la conexin de datos de la base de datos
bdlibrovbnet.mdf. Se obtendr la siguiente figura:

Figura 15.68 Ventana Elegir la conexin de datos.

Pulse Siguiente> para visualizar el siguiente mensaje:


Figura 15.69 Ventana Microsoft Visual Studio.

Pulse el botn S para copiar el archivo de datos en la carpeta donde guard el


sitio Web y visualizar la ventana de guardar cadena de conexin:
Figura 15.70 Ventana Guardar cadena de conexin.

Cambie el nombre de la conexin que all aparece por conexioninforme y pulse


el botn Siguiente>. Se visualizar la ventana elija los objetos de base de datos. Pulse el
signo (+) al lado de Tablas para desplegar las tablas de la base de datos y seleccione la
tabla clientes. Por otro lado, cambie el nombre del DataSet que all aparece por
conjuntodedatos.
Figura 15.71 Ventana de eleccin de objetos de la base de datos.

Pulse el botn Finalizar, para visualizar la ventana seleccionar orgenes de


datos. Pulse los signos (+) para desplegar el objeto clientes
Figura 15.72 Asistente para informes seleccionar el origen de datos.

D clic en Siguiente> para visualizar la ventana de seleccin de tipo de


informe. Seleccione la opcin Tabular.
Figura 15.73 Asistente para informes seleccionar el tipo de informe.

D clic en el botn Siguiente> para visualizar la ventana Disear la tabla.


Seleccione el campo nit y pulse el boton Grupos. Seleccione cada uno de los restantes
campos y paslos a la ventana Detalles con el botn Detalles>, se obtiene la siguiente
figura:
Figura 15.74 Asistente para informes disear la tabla.

Pulse el botn Siguiente> para visualizar la ventana Elegir el diseo de la


tabla. Seleccione la opcin Escalonado.
Figura 15.75 Asistente para informes elegir el diseo de la tabla.

D clic en el botn Siguiente> para visualizar la ventana Elegir el estilo de


tabla. Seleccione la opcin con el estilo que desee.
Figura 15.76 Asistente para informes elegir el estilo de tabla.

Pulse el botn Siguiente> para visualizar la ventana Finalizacin del asistente


de informes. En el campo Nombre del informe escriba el texto
informe_registros_clientes.
Figura 15.77 Ventana Finalizacin del Asistente para informes.

D clic en el botn Finalizar> para visualizar el diseo final del informe.


Figura 15.78 Ventana diseo final del informe.

Seleccione nuevamente la pgina aspx, pulse la flecha en la parte superior


derecha del objeto informeregistros y escoja la opcin Elegir informe. Seleccione el
informe informe_registros_clientes.rdlc, se visualizar la siguiente figura:

Figura 15.79 Ventana con el informe informe_registros_clientes elegido.

Ejecutar el sitio Web

Al ejecutarse el sitio Web, se visualizar la pgina con el informe de los registros que
contiene la tabla clientes. Puede ajustar el tamao del reporte en la pgina en modo de
diseo.
Figura 15.80 Pgina Web con el informe de los registros de la tabla clientes.

15.2.9 Visualizar los registros de dos tablas relacionadas


Disear un sitio Web llamado RelacionTablasWeb, que permita a un usuario
seleccionar desde un control desplegable el nombre de una empresa y en un control
GridView visualizar cada uno de los pedidos que la empresa seleccionada ha realizado.

Crear la interfaz de usuario

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los


siguientes controles en el formulario Web en la posicin deseada: 3 Label, 1
DropDownList, 1 GridView.

Establecer las propiedades de los objetos de la interfaz de usuario

Establezca las siguientes modificaciones a los controles:


Tabla 15.9 Propiedades de controles del sitio Web RelacionTablasWeb.
Control
Label1

Label2

Label3

DropDownList1
GridView1
Form1
Document

Propiedad
ID
Text
Font - Bold
ID
Text
Font - Bold
ID
Text
Font - Bold
ID
AutoPostBack
ID
ID
Title

Valor
lbltexto
Relacin de dos tablas desde un Sitio Web
True
lblempresas
Seleccione el nombre de la empresa:
True
txtpedidos
Registros relacionados.
True
listaempresas
True
datospedidos
formulario
Relacin de dos tablas.

Figura 15.81 Interfaz de usuario RelacionTablasWeb.

Establecer la conexin

Seleccione el objeto DropDownList llamado listaempresas y en la flecha que aparece


en el lado superior derecho, d clic en el mouse para visualizar las Tareas de
DropDownList. Seleccione la opcin Elegir orgen de datos, para visualizar la
siguiente figura:
Figura 15.82 Ventana para configuracin de orgenes de datos.

En la opcin Seleccionar un origen de datos escoja <Nuevo origen de


datos>, para ver la ventana Elija un de tipo de orgen de datos. Escoja el objeto
Base de datos y cambie el identificador para el origen de datos por el texto
conexionrelacion. Se apreciara la siguiente figura:
Figura 15.83 Ventana para elegir tipo de origen de datos.

Pulse el botn Aceptar. Se visualizar la ventana Elegir la conexin de datos.


Realice la conexin de datos de la base de datos bdlibrovbnet.mdf. Se obtendr la
siguiente figura:
Figura 15.84 Ventana Elegir la conexin de datos.

D clic en el botn Siguiente para ver la ventana Guardar la cadena de


conexin. Cambie el nombre de la cadena de conexin por cadenarelacion, se obtendr
la siguiente figura:
Figura 15.85 Ventana para guardar la cadena de conexin.

Pulse el botn Siguiente para visualizar la ventana de Configurar la


instruccin Select. Seleccione la tabla Clientes y en la pestaa Columnas pulse el
cuadro de verificacin *.
Figura 15.86 Ventana para configurar la instruccin Select.

D clic en el botn Siguiente para ver la ventana de Consulta de prueba y en


esta ventana pulse el botn Finalizar. Se mostrar una nueva ventana Elegir un orgen
de datos. Cambie en la opcin seleccionar un campo de datos para mostrar en
DropDownList nit por empresa. Se observar la siguiente figura:
Figura 15.87 Datos a mostrar en el objeto DropDownList listaempresas.

Pulse el botn Aceptar para volver a modo diseo. Ahora seleccione el objeto
datospedidos y pulse en la flecha de la parte superior derecha para ver las Tareas de
GridView. Escoja la opcin Elegir origen de datos y seleccione <Nuevo origen de
datos>. Se visualizar la ventana Elija un tipo de origen de datos, all seleccione el
objeto Base de datos y cambie el identificador para el origen de datos por
conexionpedidos.
Figura 15.88 Ventana Elija un tipo de origen de datos (objeto datospedidos).

Pulse el botn Aceptar. Se visualizar la ventana Elegir la conexin de datos


de datos. Realice la conexin a la base de datos bdlibrovbnet.mdf. Se obtendr la
siguiente figura:
Figura 15.89 Ventana elegir la conexin de datos (objeto datospedidos).

400

D clic en el botn Siguiente para ver la ventana Guardar la cadena de


conexin. Cambie el nombre de la cadena de conexin por cadenapedidos, se obtendr
la siguiente figura:
Figura 15.90 Ventana para guardar la cadena de conexin (objeto datospedidos).

Pulse el botn Siguiente para visualizar la ventana de Configurar la


instruccin Select. Seleccione la tabla Pedidos y en la pestaa Columnas pulse el
cuadro de verificacin *.
Figura 15.91 Ventana para configurar la instruccin Select (objeto datospedidos).

A continuacin pulse el botn WHERE para visualizar la ventana de Agregar


clusula WHERE.Y realice lo siguiente: de la lista Columna escoja el campo nit; de la
lista Operador seleccione el operador =; de la lista Orgen Control; y en las
propiedades del parmetro en Id. De control seleccione listaempresas. Se obtendr la
siguiente figura:
Figura 15.92 Agregar clusula WHERE (objeto datospedidos).

Luego pulse el botn Agregar. La ventana quedara as:


Figura 15.93 Clusula WHERE agregada (objeto datospedidos).

Pulse el botn Aceptar para ver nuevamente la ventana Configurar instruccin


Select. En dicha ventana pulse el botn Siguiente para ver la ventana de Consulta de
prueba. Por ltimo pulse el botn Finalizar para volver a modo diseo.
Figura 15.94 Ventana diseo sitio Web RelacionTablasWeb.

Ejecutar el sitio Web

Al ejecutarse el sitio Web, se observan en la pgina los objetos DropDownList y


GridView. En el objeto DropDownList se puede seleccionar un nombre de una
empresa de la tabla clientes y en el objeto GridView se visualizarn los registros
relacionados con la tabla pedidos.
Figura 15.95 Ejecucin de la aplicacin RelacionTablasWeb.

15.3 Ejercicios bases de datos con ASP.NET


1. Crear un sitio Web que permita realizar una conexin a una base de datos y
mostrar datos de una tabla en un control Repeater
2. Elaborar un sitio Web que permita realizar una conexin a una base de datos y
actualizar un campo nmerico por el valor actual ms 100000.
3. Escribir un sitio Web que permita visualizar los registros de una tabla en campos
de texto. El usuario deber poderse desplazar por cada registro de la tabla
utilizando los botones: Primero, Siguiente, Anterior y ltimo.
4. Disear un sitio Web que permita visualizar los registros de una tabla en un
control ListView. El usuario deber visualizar cinco registros por cada pgina
utilizando los botones: Primero, Siguiente, Anterior y ltimo.
5. Hacer un sitio Web que permita escribir sentencias SQL en un campo de texto y
visualizar los resultados de dicha sentencia en un GridView.
6. Realizar un sitio Web que permita visualizar los registros de dos tablas
relacionadas donde la ciudad sea igual a Cali.
7. Hacer un sitio Web que permita visualizar un informe de los registros de una
tabla cuyas empresas empiecen por la silaba CA.
8. Realizar un sitio Web que permita hacer una conexin a una base de datos y
visualizar los registros cuyo nit sea mayor que 300 y menor que 700 en un
ListView.
9. Realizar un sitio Web que permita realizar una relacin entre tres tablas de una
base de datos en SQL Server.
10. Hacer un sitio Web que permita visualizar en un informe los registros de una
relacin de dos tablas.

16. SERVICIOS WEB


Un servicio Web es una interfaz definida que proporciona una determinada
funcionalidad y diversas aplicaciones lo pueden accesar a travs de los estndares de
Internet como XML o HTTP. La mayor importancia de un servicio Web es que est
disponible a travs de diferentes protocolos de la Web y es compatible con diferentes
lenguajes de programacin, equipos y sistemas operativos. Una de las caractersticas de
los servicios Web es el grado de abstraccin entre la implementacin y el uso del
servicio por lo que no se necesita tener informacin de la ubicacin, las entradas o las
salidas del servicio. Los servicios Web se dividen en servicios de transporte (los
protocolos del nivel ms bajo, que codifican la informacin independientemente de su
formato, y que pueden ser comunes a otros servicios), de mensajera, de descripcin y
de descubrimiento. En la parte ms baja se encuentran los servicios de transporte, que
establecen la conexin y el puerto usado. Generalmente se usa HTTP el mismo
protocolo que la WWW, pero se puede usar tambin SMTP (protocolo del correo
electrnico), FTP (File Transfer Protocol).
Los servicios Web utilizan el protocolo SOAP (Simple Object Access
Protocol). Un mensaje SOAP est compuesto por encabezados y un cuerpo de mensaje.
Los encabezados contienen informacin que puede ser procesada por el servidor Web.
El cuerpo del mensaje contiene informacin que es procesada por una aplicacin como
parmetros o la devolucin de un valor para un servicio Web.
Los beneficios de los servicios Web son:
Comunicacin entre diferentes aplicaciones y/o sistemas operativos.
El servicio es reutilizable.
Su programacin es prcticamente sencilla.
Se puede distribuir su informacin entre varios clientes.
Para habilitar un servicio web con ASP.NET de debe crear un archivo con una
extensin de nombre de archivo .asmx, declarar un servicio web en ese archivo y
definir los mtodos de los servicios web.
16.1 Crear un servicio Web desde Visual Basic .NET
Crear servicios Web desde el entorno de desarrollo de Visual Basic.NET, es algo
similar a la creacin de un proyecto Windows Forms o una aplicacin ASP.NET. El
nico requisito es tener instalado Microsoft Internet Information Services (IIS)
localmente en el equipo de trabajo.
Como
ejemplo,
se
crear
un
servicio
Web
llamado
ServicioWebNumerosPrimos que reciba un nmero digitado por un usuario y retorne
en texto si dicho nmero es primo o no.

Crear el servicio web

Desde la pgina de inicio de Microsoft Visual Studio cree un nuevo proyecto, puede
seguir los siguientes pasos:
1. En la ventana proyectos recientes seleccionar la opcin Crear: link Sitio Web.

2. Hacer clic en la opcin Archivo del men y seleccionar Nuevo sitio Web

Seleccin el men Archivo y escoja la opcin Nuevo sitio Web, para


visualizar la siguiente ventana:
Figura 16.1 Ventana para crear un servicio Web desde Visual Basic.NET.

Como plantilla escoja Servicio web ASP.NET; En el campo Lenguaje


seleccione Visual Basic, por ltimo, pulse el botn Examinar Se visualizar la
ventana Seleccionar ubicacin (Sistema de archivos). Dicha ventana vara de acuerdo a
los archivos que contenga el equipo de trabajo.
Figura 16.2 Ventana Seleccionar ubicacin.

D clic sobre el icono IIS local y en la ventana derecha seleccione el objeto


Sitio web predeterminado. Se observar la siguiente figura:
Figura 16.3 Ventana Seleccionar ubicacin IIS local.

D clic en el icono
(Crear nueva aplicacin Web) que se encuentra en la
parte superior derecha de la ventana. En el nuevo objeto que aparece reemplace en texto
WebSite por ServicioWebNumerosPrimos. Se obtendr una figura similar a la
siguiente:
Figura 16.4 Creacin de una nueva aplicacin Web.

Pulse el botn Abrir para visualizar nuevamente el cuadro de dilogo Nuevo


sitio Web, como se muestra en la siguiente figura:

Figura 16.5 Nuevo sitio web con la ubicacin del servicio Web.

La ubicacin incluye el protocolo (http://) y la ubicacin (localhost). Esto indica


que est trabajando con un sitio Web de IIS local. Pulse el botn Aceptar para ver el
archivo del servicio web.
Figura 16.6 Archivo de un servicio Web Service1.asmx.vb.

Se crea el archivo Service.vb (servicio web predeterminado) que importa los


espacios
de
nombres:
System.Web,
System.Web.services
y
System.Web.Services.Protocols. Tambin crea un espacio de nombres NamesSpace
donde se define la direccin HTTP. Adems se crea la clase Service que hereda de
System.Web.Services.WebService (proporciona acceso directo a los objeto comunes
de ASP.NET). Por defecto siempre se crea el procedimiento Function HelloWord ().

Escribir cdigo en el servicio Web

El cdigo ser la interfaz del servicio Web a los que un usuario tendr acceso desde una
aplicacin Web. Entre Class y End Class se deben declarar cada uno de los
procedimientos que utilizar el servicio Web para realizar una tarea especfica. Los
procedimientos de un servicio Web se estructuran de la siguiente manera:
<WebMethod ()>: Entre los parntesis se puede hacer un comentario del servicio Web,
<WebMethod (Description:=Servicio Web para consultar una base de datos)>

La definicin normal de un procedimiento Function es:

Modificador de acceso: public, prvate


Function: palabra reservada para declarar una funcin
Nombre_de la funcin: ej: HelloWord
Lista de parmetros: ()
Tipo de retorno: ej: String
Cuerpo de la funcin: Ej: Helloworld =Hello World retorna dicho texto.
Fin de la funcin : End Function

Como lo que se pretende es que el servicio Web determine si un nmero


digitado por el usuario es primo o no, se debe crear el procedimiento que realice este
proceso. Si desea puede borrar la funcin HelloWord y crear una nuevo procedimiento
Function llamado numerosprimos. La clase Service con el procedimiento Function
quedara de la siguiente manera:
Figura 16.7 Servicio Web con el procedimiento numerosprimos.

Ejecutar el Servicio Web

Haga clic en el icono Iniciar depuracin


de la barra de herramientas estndar o
presione F5 para ejecutar el proyecto. Se visualizar la siguiente figura:
Figura 16.8 Ejecucin del Servicio Web Service.

D clic sobre el hipervnculo numerosprimos, se visualizar la siguiente


figura:
Figura 16.9 Ejecucin del hipervnculo numerosprimos.

En el campo de texto escriba el nmero 7 y d clic en el botn Invocar para


realizar el proceso del procedimiento numerosprimos.
Figura 16.10 Resultado al invocar el servicio Web.

16.2 Acceder a un Servicio Web


Teniendo ya creados los servicios Web que un usuario considero convenientes
programar, es posible acceder (consumir) a los servicios Web desde una aplicacin
ASP.NET. Para esto, es necesario crear una aplicacin Web ASP.NET y agregar una
referencia Web para comunicarse con el servicio Web y realizar su ejecucin.
16.2.1 Ejemplo prctico para acceder a un Servicio Web desde ASP.NET
Crear un sitio Web llamado NumerosPrimosWeb, que permita capturar un nmero e
imprima si dicho nmero es primo o no. Se debe obtener la respuesta de un servicio
Web.

Crear la interfaz de usuario

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los


siguientes controles en el formulario Web en la posicin deseada: 3 Label, 2 TextBox,
1 Button.

Establecer las propiedades de los objetos de la interfaz de usuario

Establezca las siguientes modificaciones a los controles:

Tabla 16.1 Propiedades de controles del sitio Web NumerosPrimosWeb.


Control
Label1

Label2

Label3

TextBox1
TextBox2
Button1
Form1
Document

Propiedad
ID
Text

Font - Bold
ID
Text
Font - Bold
ID
Text
Font - Bold
ID
ID
ID
AutoPostBack
ID
Title

Valor
lbltexto
Formulario Web para determinar si un
nmero es primo o no con un servicio
Web.
True
lblnumero
Digite un nmero:
True
lblresultado
Resultado:
True
txtnumero
txtresultado
boton
Evaluar nmero
formulario
Pgina Web que consume un servicio
Web.

Figura 16.11 Interfaz de usuario NumerosPrimosWeb.

Agregar servicio Web

Para agregar el servicio Web a la aplicacin Web seleccione el men Sitio Web y
escoja la opcin Agregar referencia Web, se obtendr la siguiente ventana:

Figura 16.12 Ventana para agregar un servicio Web.

D clic sobre el link Servicios web del equipo local, se visualizar una ventana
similar a la siguiente figura (depende de los servicios que tenga el equipo local):
Figura 16.13 Ventana para seleccionar un servicio Web del equipo local.

En este caso pulse el segundo link Service, el cual tiene una URL
http://localhost:8081/ServicioWebNumerosPrimos/Serv... Se obtendr la siguiente
figura:

Figura 16.14 Funciones del servicio Web.

En esta ventana se muestran todas las funciones que tiene el servicio Web
ServicioWebNumerosPrimos. En el campo Nombre de referencia Web aparece por
omisin el texto localhost (cmbielo si desea), pulse el botn Agregar referencia para
volver a la pgina Web. En el Explorador de soluciones se podr visualizar el servicio
Web integrado al proyecto
Figura 16.15 Servicio Web integrado al sitio Web.

Escribir cdigo

D doble clic sobre el objeto boton para abrir el editor de cdigo del procedimiento
boton_Click y escriba el siguiente cdigo:

Dim servicio As New localhost.Service


txtresultado.Text = servicio.numerosprimos(txtnumero.Text)

Se crea un objeto llamado servicio al cual se le asigna espacio de memoria del


espacio de nombre localhost y de la clase del servicio Web Service. A la propiedad
Text del objeto txtresultado se le asigna el valor que retorne el procedimiento
numerosprimos del servicio Web.

Ejecutar el Servicio Web

Al ejecutarse la aplicacin Web y digitar en el objeto txtnumero el nmero 11 y luego


pulsar el botn Evaluar nmero se visualizar en el objeto txtresultado el resultado de
la evaluacin del nmero.
Figura 16.16 Ejecucin de la aplicacin NumerosPrimosWeb.

NDICE
Abs, 69
Abstraccin, 198
Acceder a un Servicio Web, 413
AccesDataSource, 355
ActiveMdiChild, 150
AdapterManager, 246
ADO.NET, 230
Aggregate, 279
ALL, 225
ALTER, 224
And, 33
AND, 225
AndAlso, 33
Aplicacin para Windows Forms, 15
Aplicacin Web ASP.NET, 15
Arco, 163
Asc, 73
AsEnumerable, 314
ASP.NET, 316
ASP.NET AJAX, 13
Average, 279
AVG, 225
BETWEEN, 225
BigMul, 69
BindingSource, 246
BulletedList, 335
catch, 117
CBool, 31
CByte, 31
CChar, 31
CDate, 31
CDbl, 31
CDec, 31
Ceiling, 69
Chars, 72
CheckBox, 99
CheckedListBox, 146
Chr, 73
CInt, 31
Circulo, 163
Clase, 11
Clases, 198
Class, 199
Clear, 140
CLng, 31
Colecciones, 84
columnas, 223
ComboBox, 93
Command, 231
CompareValidator, 350
Concat, 72
Conectarse a SQL Server, 422
Connection, 231
Constantes, 26
Constructores, 199
ControlValidate, 352
Copy, 139
cos, 69

Count, 279
COUNT, 225
Creacin de Mens, 130
Creacin de una barra de herramientas,
156, 159
CREATE, 224
CREATE DATABASE, 226
CShort, 31
Cuadro de Herramientas, 16, 319
Curva, 163
CustomValidator, 350
Cut, 139
Data Source, 233, 357
DataAdapter, 231
Database, 233, 357
DataGridView, 105
DataMember, 241
DataSet, 230, 355
DataSource, 241, 276
DataTable, 231
DataView, 231, 355
Date, 66
DateTimePicker, 144
Default.aspx, 319
DefaultView, 276
DELETE, 224
Diseador formulario Windows, 16
Diseador formularios Web, 319
DLL, 223
DML, 223
DoLoop While, 51
DrawArc, 163
DrawCurve, 163
DrawEllipse, 163
DrawLine, 163
DrawPie, 163
DrawPolygon, 163
DrawRectangle, 163, 169
DROP, 224
Editor de cdigo, 21
El explorador de soluciones, 17, 319
Elegir base de datos, 235
Elegir proveedor base de datos, 235
Elipse, 163
Encapsulacin, 198
ErrorMessage, 352
Espacio de nombres, 11
Estructuras de Control, 37
filas, 223
fill, 233, 357
FillEllipse, 163
FillPie, 163
FillPolygon, 163
FillRectangle, 163
Floor, 69
FolderBrowseDialog, 122
Font - Bold, 355, 356
For, 45, 55

From, 278
FROM, 224
FromArgb, 104
Funciones de cadenas de caracteres, 72
Funciones Matemticas, 69
Function, 61
GetItemChecked, 148
GraphicsPath, 169
GROUP, 224
Group By, 279
HAVING, 224
Height, 175
Herencia, 198, 201
HotSpotMode, 332
If (operador)., 39
IIF., 39
ImageMap, 331
IN, 225
IndexOf, 73
InitialDirectory, 137
Insert, 73
INSERT, 224
Integrated, 10
Integrated Security, 233, 357
Join, 279
KeyCode, 194
KeyDown, 193
KeyPress, 193
KeyUp, 193
Left, 172
Len, 73
Length, 72
Lenguaje de Consulta Estructurado, 223,
225, 229
LIKE, 225
LinkLabel., 91
LINQ, 278
LINQ to DataSet, 278
LINQ to Objects, 278
LINQ to SQL, 278
LINQ to XML, 278
ListBox, 93
ListView, 107
Matrices, 78
Max, 69, 279
MAX, 226
MaximumValue, 352
MDI, 130
Mensaje, 198
Men principal, 15, 319
men Ventana, 153
Mens, 130
Mtodo, 198
Mid, 73
min, 69
Min, 280
MIN, 226
MinimumValue, 352
Modificar la cadena de conexin:, 235
Mdulos, 59

MonthCalendar, 145
MouseClick, 188
MouseDoubleClick, 188
MouseDown, 188
MouseEnter, 188
MouseHover, 188
MouseLeave, 188
MouseMove, 188
MouseUp, 188
MouseWheel, 188
movenext, 127, 128
MultiView, 342
NamesSpace, 410
Not, 33
NOT, 225
Objetos, 198
OleDataAdapter, 231
OleDbCommand, 231
OleDbConnection, 231
OleDbDataAdapter, 355
Operadores de comparacin, 225
Operadores Lgicos, 33
Operadores lgicos S.Q.L, 224
Operadores Relacionales, 32
Or, 33
OR, 225
OracleCommand, 231
OracleConnection, 231
OracleDataAdapter, 231
OracleDbDataAdapter, 355
ORDER, 224
Order By, 279
OrElse, 33
Orientada a objetos, 223
origen de datos, 354
Palabras clave, 36
Paste, 139
Pie, 163
Point, 163
Poligono, 163
Polimorfismo, 198
PostBack, 332
PostBackValue, 332
pow, 69
private, 199
Probar la conexin, 235
Procedimientos, 61
Programacin Orientada a Objetos, 198
Propiedad, 198
protected, 199
public, 199
Punto, 163
RadioButton, 99
RadioButtonList, 338
RangeValidator, 350
ReadtoEnd, 138
Recta, 163
Rectangle, 163
Rectangulo, 163
Redo, 139

RegularExpressionValidator, 350
Remove, 73
Replace, 73
RequiredFieldValidator, 350
RichTextBox, 115
round, 69
RowFilter, 276
SDI, 130
Select, 278
SELECT, 224, 227
Select case (Seleccionar caso), 42
SelectedItem, 255, 256
SelectedValue, 276
SelectionBullet, 141
Sentencia If (Si), 37
Sentencia If- Else (Si - Sino), 38
Sentencias bsicas S.Q.L, 226
servicio web, 407
sin, 69
SOAP, 407
Sobrecarga, 200
Split, 73
SqlCommand, 231
SqlConnection, 231
SqlDataAdapter, 231
SqlDataSource, 355
SqlDbDataAdapter, 355
sqrt, 69
Str, 31
StreamWriter, 137
String.Copy, 73
StrReverse, 73
Sub, 61
SubString, 73
Sum, 280
SUM, 225
System.Data.SqlClient, 232, 356
System.Drawing, 162

System.Linq, 278
TableAdapter, 246
tan, 69
Timer, 172
Tipos de datos, 26
TocharArray, 73
ToLower, 72
Toma de desiciones, 37
Top, 172
ToUpper, 72
TrackBar, 102
TreeView, 118
Trim, 73
Try-Catch, 117
tuplas, 223
Undo, 139
UPDATE, 224
Val, 31
ValidationExpression, 352
ValidationSummary, 350
ValidationType, 352
ValueMember, 276
ValueToCompare, 352
variable, 25
Ventana de depuracin de errores, 19, 320
Ventana de propiedades, 18, 320
View, 342
Visual Basic .NET, 10
Visual Studio .NET, 10
VScrollBar, 102
WebBrowse, 125
Where, 279
WHERE, 224
While, 48
Width, 175
Windows Authentication, 422
XmlDataSource, 355
Xor, 33

BIBLIOGRAFA

CEBALLOS, Javier. Microsoft Visual Basic .NET Lenguaje y aplicaciones.


Mxico, Editorial Alfaomega Ra-Ma. 2da edicin, 2007.

CHARTE, Francisco. Programacin con Visual Basic .NET. Mxico, Editorial


Anaya, 2003.

HARWRYSZKIEWYCZ, I T. Anlisis y diseo de base de datos. Editorial


Megabyte. Noriega Editores. Mxico. 1994.

JAMSA, Kris. Superutilidades para Visual Basic .NET. Editorial Mc Graw Hill,
1ra. Edicin. Espaa. 2003.

INFOGRAFA

http://www.elquintero.net/Manuales.aspx?Cat=2&SubCat=6&jscript=true

http://www.willydev.net/descargas/Cursos/vbnet/index.html

http://www.dotnetspider.com/tutorials/AspNet-Tutorials.aspx

http://www.programacionfacil.com/visual_basic_net/start

http://www.programacion.com/asp/articulo/datosaspnet/

http://www.es-asp.net/tutoriales-asp-net/tutorial-61-81/efectuando-acceso-adatos.aspx

http://www.es-asp.net/tutoriales-asp-net/tutorial-61-96/enlazando-a-basesde-datos.aspx.

http://msdn.microsoft.com/es-es/library/y8c0cxey.aspx

http://msdn.microsoft.com/es-es/library/ya3sah92(VS.80).aspx

http://msdn.microsoft.com/es-es/library/ff855828(VS.80).aspx

http://msdn.microsoft.com/es-es/library/a127sbc5(VS.80).aspx

http://msdn.microsoft.com/es-es/library/h974h4y2(VS.80).aspx

http://social.msdn.microsoft.com/forums/es-ES/vbes/thread/087a5f2c-9eda44a5-9a58-6008b65c9a8e

http://www.recursosvisualbasic.com.ar/htm/tutoriales/datagrid-dbgrid.htm

http://www.recursosvisualbasic.com.ar/htm/tutoriales/controles_visual_basic
_menu.htm

ANEXO A
SQL Server
Este tutorial utiliza como base de datos SQL Server 2005 Express.
Dicha base de datos se puede instalar independientemente de la versin de Visual
Studio.
A.1 Conectarse a SQL Server.
Cuando se instala SQL Server, en los programas existe una opcin para conectarse a la
base de datos seleccione Microsoft SQL Server 2005. Realice los siguientes pasos:
1. Inicio - > Todos los Programas - > Microsoft SQL Server 2005.
2. SQL Server Management Studio Express.
Figura A.1 Opciones para conectarse a SQL Server.

Al pulsar SQL Server Management Studio Express se visualiza la ventana


Connect to Server.
Figura A.2 Ventana Connect to Server.

Deber digitar lo siguiente:


1. Server Name: Por omisin aparece el nombre del servidor donde fue instalado
SQL Server.
2. Authenticacion: Por omisin aparece Windows Authentication, la otra opcin
es SQL Server Authentication. Si selecciona SQL Server Authentication, se
deber digitar el User Name y el Password creado cuando se realizo la
instalacin de SQL Server.

3. Pulsar el botn Connect.


Se visualizar el entorno de trabajo de Microsoft SQL Server Management Studio
Express.
Figura A.3 Ventana Microsoft SQL Server Management Studio Express.

A.2 Crear una base de datos


En la ventana Object Explorer seleccione la opcin Databases y pulse el botn
derecho del mouse para ver las opciones New Databases, Attach, Restore Databases,
Restore File and FilesGroups y Refresh.
Figura A.4 Opciones de DataBases.

Seleccione la opcin New DataBase para ver la siguiente ventana:

Figura A.5 Ventana para crear una nueva base de datos.

Escriba el nombre de la base de datos en la opcin Database name:


(bdlibrovbnet para los ejemplos del libro) y pulse el botn OK para volver a la
ventana de Microsoft SQL Server. D doble clic sobre la carpeta Databases para
desplegar las bases de datos existentes, como se aprecia en la siguiente figura:
Figura A.6 Ventana para crear una nueva base de datos.

D doble clic sobre el nombre de la base de datos bdlibrovbnet para desplegar


los elementos que fueron creados. Se obtendr la siguiente figura:

Figura A.7 Base de datos bdlibrovbnet con sus elementos creados inicialmente.

A.3 Crear tablas en la base de datos


Para crear tablas en la base de datos seleccione en cualquiera de las dos ventanas la
carpeta Tables y d clic derecho para visualizar las opciones: New Tables, Filter y
Refresh.
Figura A.8 Opciones de la carpeta Tables.

Seleccione New Table para ver la ventana de diseo de la tabla, como se aprecia
en la siguiente figura:
Figura A.9 Ventana de diseo de una tabla.

Para agregar los campos a la tabla en Column Name escriba nit, en Data Type
seleccione nvarchar (50) (campo alfanumrico).
Figura A.10 Ventana con el campo nit creado.

Realice los mismos pasos para crear los campos: empresa, representante,
direccion, telefono, ciudad (todos con el mismo tipo de datos nvarchar (50)). Por

ltimo seleccione el campo nit y pulse el icono para crear la clave primaria (
figura quedara:

), la

Figura A.11 Ventana con los campos de la tabla y nit como llave primaria.

Ahora se debe guardar la tabla, pulse el signo


cambios.
Figura A.12 Ventana de cambio de una tabla.

para visualizar la ventana de

Pulse el botn Yes para obtener la ventana para escoger el nombre Choose
Name.
Figura A.13 Ventana para escribir el nombre de la tabla creada.

Escriba como nombre de la tabla clientes y pulse el botn OK. Para trabajar con
algunos de los ejercicios planteados en el libro, cree las tablas pedidos, productos y
ventas con las estructuras que se muestran a continuacin:
Figura A.14 Estructura tabla pedidos.

Figura A.15 Estructura tabla productos.

Figura A.16 Estructura tabla ventas.

Al finalizar de crear las tablas, la estructura de la base de datos con las tablas
quedara como se aprecia en la siguiente figura:
Figura A.17 Estructura de la base de datos.

Cuando se selecciona una tabla y se d clic derecho se visualiza la ventana con las
diferentes opciones que se pueden realizar como son:
1. New Table: Para crear una nueva tabla.
2. Modify: Permite modificar la estructura de una tabla que previamente se haba
creado.
3. Open Table: Para abrir una ventana de edicin para insertar o visualizar los
datos de una tabla.
4. Script Table as: Para crear, borrar, alterar, seleccionar, insertar, actualizar,
ejecutar una consulta, un archivo o una imagen.
5. View Dependencies: Para visualizar las dependencias (relaciones) de una tabla.
6. Rename: Para renombrar una tabla.
7. Delete: Para eliminar una tabla.
8. Refresh: Para refrescar o actualizar una tabla.
9. Properties: Para visualizar las propiedades de una tabla.

Figura A.18 Opciones para la manipulacin de una tabla.

Seleccione la tabla clientes y d clic derecho y escoja la opcin Open Table


para insertar informacin a la tabla.
Figura A.19 Ventana para insertar datos a la tabla clientes.

Inserte la informacin de acuerdo a la siguiente figura:


Figura A.20 Ventana con datos insertados en la tabla clientes.

En este momento se podr realizar instrucciones SQL para manipular la tabla


clientes. Al pulsarse el icono
(Show SQL Pane) se visualizar un panel para digitar
instrucciones SQL. Por omisin se muestra la siguiente ventana:
Figura A.21 Ventana al seleccionar el icono Show SQL Pane.

Si se escribe la instruccin SQL Select * from clientes where nit>400 y se


pulsa el icono de verificacin de sintaxis de instrucciones SQL
se visualizar la siguiente ventana:
Figura A.22 Ventana de verificacin de sintaxis SQL.

Al pulsarse el botn Aceptar se mostrar la figura:

(Verify SQL sintax)

Figura A.23 Ventana al Aceptar la verificacin de sintaxis SQL.

Para ejecutar la instruccin SQL deber dar clic en el icono


se vera la siguiente figura:

(Execute SQL),

Figura A.24 Ventana con la instruccin SQl ejecutada.

Ahora se debern llenar con datos las tablas pedidos, productos y ventas de
acuerdo a las siguientes figuras:

Figura A.25 Tabla pedidos con datos insertados.

Figura A.26 Tabla productos con datos insertados.

Figura A.27 Tabla ventas con datos insertados.

A.4 Crear Diagramas de una base de datos


Para crear un diagrama de una base datos seleccione Database Diagrams de la base de
datos bdlibrovbnet, de clic derecho y seleccione la opcin New Database Diagram.
Para ver la ventana de adicin de tablas:

Figura A.28 Ventana Add Table de la opcin New Database Diagram.

Seleccione una tabla y pulse el botn Add. Realice esta misma operacin con
cada una de las tablas restantes. Al terminar pulse el botn Close para observar la
siguiente figura:
Figura A.29 Ventana Database Diagram con las tablas adicionadas.

Para crear la relaciones entre las tablas seleccione el campo nit de la tabla
cliente, de clic en el mouse y mantngalo pulsado y arrstrelo hacia el campo nit de la
tabla pedidos, suelte el mouse para ver la ventana Tables and Columns.

Figura A.30 Ventana Tables and Columns.

En el campo Relationship name escriba el nombre de la relacin. Seleccione


como llave primaria (Primary key table) la tabla clientes y el campo nit, como llave
secundaria (Foreign key table) la tabla pedidos y el campo nit. Pulse el botn OK para
visualizar la ventana Foreign Key Relationship.
Figura A.31 Ventana Foreign key Relationship.

En esta ventana se visualizan todas las caractersticas de la relacin. Pulse el


botn OK para terminar. Realice las dems relaciones hasta obtener la siguiente figura:

Fgura A.32 Ventana de diagrams con las relaciones entre tablas.

Ahora se debe guardar el diagrama, pulse el signo


de cambios en un diagrama.

para visualizar la ventana

Figura A.33 Ventana de cambios en un diagrama de la base de datos.

Pulse el botn Yes para obtener la ventana para escoger el nombre Choose
Name.
Figura A.34 Ventana para escribir el nombre del diagrama creado.

Escriba como nombre del diagrama relaciontablas y pulse el botn OK. Se


visualizar la ventana para guardar los cambios realizados.
Figura A.35 Ventana para guardar los cambios realizados en la base de datos.

Al pulsarse el botn Yes se guardarn los cambios. Seleccionado el diagrama


creado y dar clic derecho se visualizar una ventana donde podr realizar las siguientes
Tareas: New Database Diagrams (crear un nuevo diagrama), Modify (modificar un
diagrama), Rename (renombrar un diagrama), Delete (eliminar un diagrama), Refresh (
refrescar un diagrama).
Figura A.36 Ventana para manipulacion de los diagrams.

A.5 Crear una vista


Una vista es un espejo de cierta informacin que contiene una base de datos. Para crear
una vista de una base datos seleccione View de la base de datos bdlibrovbnet, d clic
derecho y seleccione la opcin New View. Para ver la ventana de adicin de vistas:

Figura A.37 Ventana para adicionar tablas a una vista.

Adicione las tablas clientes y pedidos. Al terminar pulse el botn Close para
visualizar la siguiente figura:
Figura A.38 Ventana de la vista con las tablas clientes pedidos.

Seleccione los campos que desea ver en la vista. D clic en el icono


(Execute SQL), para ver la Ejecucin de la vista:

Figura A.39 Ventana de ejecucin de la vista creada.

Ahora se debe guardar la vista creada, pulse el signo


ventana de cambios en una vista.

para visualizar la

Figura A.40 Ventana de cambios en una vista.

Pulse el botn Yes para obtener la ventana para escoger el nombre Choose
Name.
Figura A.41 Ventana para escribir el nombre de la vista creada.

Escriba como nombre de la vista vista_clientes_pedidos y pulse el botn OK.


Se visualizar la siguiente figura:
Figura A.42 Ventana con la vista guardada.

You might also like