Está en la página 1de 0

1

Manejo de datos con


Visual Basic y ASP .NET














Carlos Alberto Vanegas
Ingeniero de Sistemas
Especialista en Ingeniera de Software
Maestra en Ingeniera de Sistemas
Profesor ctedra, Universidad Libre
Profesor, Universidad Distrital Francisco Jos de Caldas
























Bogot agosto 2010

2



















































3

Contenido

PRLOGO .................................................................................................................................... 6
INTRODUCCIN........................................................................................................................... 8
1. MANEJO DE ARCHIVOS ........................................................................................................ 11
1.1 Clase File ................................................................................................................... 11
1.1.1 Ejemplo clase File .................................................................................................. 12
1.2 Clases StreamWriter y StreamReader ...................................................................... 17
1.2.1 Ejemplo clases StreamWriter y StreamReader ..................................................... 17
1.3 Controles OpenFileDialog y SaveFileDialog .............................................................. 20
1.3.1 Ejemplo con los controles OpenFileDialog y SaveFileDialog ............................... 20
1.4 Archivos secuenciales ............................................................................................... 24
1.4.1 Ejemplo de archivos secuenciales ........................................................................ 24
1.5 Archivos binarios ........................................................................................................ 29
1.5.1 Ejemplo de archivos binarios ................................................................................. 29
1.6 Importar y exportar datos de una hoja de Excel ........................................................ 32
16.1 Ejemplo importar y exportar datos de Excel .......................................................... 32
1.7 Exportar datos a Word ............................................................................................... 38
1.7.1 Ejemplo de exportar datos de VB.NET a Word ..................................................... 38
1.8 Ejercicios de archivos ................................................................................................ 43
2. BASES DE DATOS ................................................................................................................. 44
2.1 Tipos de bases de datos ............................................................................................ 44
2.1.1 Relacionales .......................................................................................................... 44
2.1.2 Orientada a objetos ............................................................................................... 44
2.2 Lenguaje de Consulta Estructurado (S.Q.L.) ............................................................. 44
2.2.1 Comandos ............................................................................................................. 45
2.2.2 Clusulas ............................................................................................................... 45
2.2.3 Operadores lgicos................................................................................................ 46
2.2.4 Operadores de Comparacin ................................................................................ 46
2.2.5 Funciones de agregado ......................................................................................... 46
2.3 Sentencias Bsicas SQL ........................................................................................... 47
2.3.1 CREATE DATABASE ............................................................................................ 47
2.3.2 DROP DATABASE ................................................................................................ 48
2.3.3 CREATE TABLE .................................................................................................... 48
2.3.4 DROP TABLE ........................................................................................................ 48
2.3.5 INSERT .................................................................................................................. 48
2.3.6 ALTER ................................................................................................................... 48
2.3.7 SELECT ................................................................................................................. 49
2.3.8 DELETE ................................................................................................................. 50
2.3.9 UPDATE ................................................................................................................ 50
2.3.10 INNER JOIN ...................................................................................................... 51
2.4 Conexin a bases de datos ....................................................................................... 52
2.5 Ejemplos de conexin a bases de datos ................................................................... 52
2.5.1 Conexin a una base de datos de SQL Server ..................................................... 52
2.5.2 Conexin a una base de datos de ACCESS ......................................................... 56
2.5.3 Conexin a una base de datos de ORACLE con cdigo ...................................... 59
2.6 Conexin a una bases de datos con el Explorador de servidores ............................ 63
2.6.1 Conexin a SQL Server con el Explorador de servidores ..................................... 63
2.7 Ejercicios de conexin a bases de datos ................................................................... 71
3. DESPLAZAMIENTO POR LOS REGISTROS DE UNA TABLA ............................................. 72
3.1 Ejemplos de desplazamiento por los registros de una tabla ..................................... 72
3.1.1 Formulario con campos de texto y botones .......................................................... 72
3.1.2 Formulario con una cuadrcula y botones ............................................................. 82
3.1.2 Formulario con una cuadrcula y un control BindingNavigator .............................. 85
3.2 Ejercicios de desplazamiento por los registros de una tabla ..................................... 92
4

4. OPERACIONES CON TABLAS DE UNA BASE DE DATOS ............................................. 93
4.1 Ejemplos de operaciones con tablas de una base de datos ..................................... 93
4.1.1 Insertar registros en una tabla utilizando campos de texto ................................... 93
4.1.2 Insertar registros en una tabla utilizando un DataGridView .................................. 96
4.1.3 Buscar registros por un campo especfico .......................................................... 101
4.1.4 Buscar registros por cualquier campo de una tabla ............................................ 104
4.1.5 Buscar registros mientras se escribe .................................................................. 107
4.1.6 Ejecutar instrucciones SQL sobre una base de datos ........................................ 111
4.1.7 Eliminar registros de una tabla ............................................................................ 113
4.1.8 Actualizar registros de una tabla ......................................................................... 117
4.1.9 Generar un reporte de los registros de una tabla ................................................ 120
4.2 Ejercicios de operaciones con tablas de una base de datos ................................... 131
5. MANEJO DE RELACIONES ENTRE TABLAS EN UNA BASE DE DATOS ................... 132
5.1 Ejemplos de relacin de tablas de una base de datos ............................................ 132
5.1.1 Visualizar registros de tablas relacionadas ......................................................... 132
5.1.2 Relacin de tablas utilizando dos DataGridView ................................................. 135
5.1.3 Relacin de tablas utilizando ComboBox ............................................................ 138
5.1.4 Reporte con tablas relacionadas ......................................................................... 147
5.2 Ejercicios de relacin de tablas ............................................................................... 162
6. MANEJO DE ARCHIVOS CON ASP.NET ....................................................................... 163
6.1 Manejo de Archivos de texto con ASP.NET. ........................................................... 163
6.2 Ejemplos de manejo de archivos con ASP.NET. ..................................................... 164
6.2.1 Cargar archivo con el control FileUpLoad. .......................................................... 164
6.2.2 Manejo de archivos de texto con StreamWriter y StreamReader. ...................... 168
6.2.3 Guardar /Leer Archivo de texto con FileSystem .................................................. 171
6.3 Ejercicios de archivos de texto con ASP.NET ......................................................... 175
7. BASE DE DATOS CON ASP.NET ................................................................................... 176
7.1 Ejemplos de manipulacin de bases de datos con ASP.NET ................................. 176
7.1.1 Pagina Web con los campos de una tabla .......................................................... 176
7.1.2 Conexin a una base de datos desde un Formulario Web ................................. 180
7.1.3 Conexin a SQL Server con el control DetailsView ............................................ 183
7.1.4 Pgina Web con desplazamiento de registros .................................................... 192
7.1.5 Pgina Web para insertar registros en una tabla ................................................ 200
7.1.6 Pagina Web para eliminar registros de una tabla ............................................... 210
7.1.7 Pgina Web para modificar registros .................................................................. 215
7.1.8 Pgina Web con un informe de los registros de una tabla .................................. 220
7.2 Ejercicios de bases de datos con ASP.NET ............................................................ 231
8. MANEJO DE TABLAS RELACIONADAS CON ASP.NET ............................................... 232
8.1 Ejemplos de relacin entre tablas de una base de datos con ASP.NET ................ 232
8.1.1 Relacin de dos tablas con DropDownList y GridView ....................................... 232
8.1.2 Relacin de tablas utilizando GridView y FormView ........................................... 246
8.1.3 Pgina Web con tres tablas relacionadas ........................................................... 261
8.2 Ejercicios relacin de tablas con ASP.NET ............................................................. 278
ANEXO A CREACIN DE APLICACIONES WINDOWS FORMS ........................................... 279
A.1 Crear un nuevo proyecto Visual Basic .NET (Windows Forms) ............................... 279
A.2 Elegir plantilla de aplicaciones ................................................................................... 280
A.3 Crear la interfaz de usuario ........................................................................................ 283
A.4 Establecer las propiedades de los controles ............................................................. 284
A.5 Escribir cdigo ............................................................................................................ 285
A.6 Guardar la aplicacin ................................................................................................. 286
A.7 Ejecutar la aplicacin Windows Forms ...................................................................... 286
A.8 Cerrar y abrir un proyecto .......................................................................................... 287
ANEXO B CREACIN DE APLICACIONES WEB ASP.NET ................................................... 288
B.1 Crear un nuevo Sitio Web (ASP.NET) ...................................................................... 288
5

B.2 Elegir plantilla de aplicaciones ................................................................................... 289
B.3 Crear la interfaz de usuario ........................................................................................ 293
B.4 Establecer las propiedades de los controles. ............................................................ 294
B.5 Escribir cdigo ............................................................................................................ 295
B.6 Ejecutar la aplicacin Web ......................................................................................... 298
B.7 Cerrar y abrir un sitio Web ......................................................................................... 300
ANEXO C SQL SERVER .......................................................................................................... 301
C.1. Conectarse a SQL Server. ........................................................................................ 301
C.2 Crear una base de datos ........................................................................................... 302
C.3 Crear tablas en la base de datos ............................................................................... 304
C.4 Crear Diagramas de una base de datos .................................................................... 312
C.5 Crear una vista ........................................................................................................... 316
ANEXO D ORACLE DATABASE 10G EXPRESS .................................................................... 320
D.1 Instalacin .................................................................................................................. 320
D.2 Creacin de una tabla en la base de datos con usuario system ............................... 325
NDICE ...................................................................................................................................... 332
BIBLIOGRAFA.......................................................................................................................... 334
INFOGRAFA ............................................................................................................................. 334
































6

PRLOGO

Manejo de datos con Visual Basic y ASP .NET proporciona los elementos necesarios
para el manejo de datos desde el entorno del lenguaje de Programacin Visual Basic
.NET con aplicaciones Windows Forms y ASP. Este libro ha sido pensado para todos
aquellos que estn interesados en conocer cmo se puede guardar o recuperar
informacin desde archivos de texto plano, importar o exportar desde Visual Basic
.NET datos a otros programas como Excel, Word, etc... Adems realizar la conexin a
diferentes bases de datos, desplazarse entre los registros de una tabla, realizar
operaciones entre tablas y la relacin de stas. El material didctico del libro se basa en
el aprendizaje guiado por la conceptualizacin de cada tema, la realizacin de ejemplos
prcticos explicados y con grficos que visualizan el objetivo de los ejercicios.

Todos los ejemplos del libro han sido compilados y ejecutados con el programa
Microsoft Visual Studio 2008 (la mayora de los ejemplos tambin los puede compilar y
ejecutar con las versiones Express Edition Visual Basic 2005/2008 y Visual Web
Developer 2005/2008); cada ejemplo es explicado detalladamente, solamente se omiten
explicaciones en aquellos casos en donde se ha realizado con anterioridad.

Este libro se dirige fundamentalmente a personas que conozcan el lenguaje de
programacin Visual Basic en el entorno .NET, es decir, en este libro se supone que el
lector tiene conocimiento sobre los conceptos bsicos de programacin de este lenguaje,
sabe crear y ejecutar proyectos de Visual Basic en el entorno .NET (Windows Forms,
ASP), aunque en los anexos A y B se explica en forma breve como trabajar con
proyectos Windows Forms y sitios Web (ASP.NET). Adems, que tenga conocimientos
sobre programacin orientada a objetos. Tambin es recomendable tener nociones
concernientes al lenguaje estructurado de consulta SQL y HTML. Por otro lado, es
indispensable que tenga la conceptualizacin terica y ojal prctica de bases de datos.

Captulos del libro

Manejo de datos con Visual Basic y ASP .NET contiene 8 captulos y 4 anexos
distribuidos de la siguiente forma:

Captulo 1, Manejo de Archivos: Se conceptualiza sobre las clases File,
StreamWriter, StreamReader, los controles OpenFileDialog y
SaveFileDialog, como tambin los conceptos de archivos secuenciales y
binarios. Adems, cmo importar y exportar datos. Todo esto apoyado con
ejemplos explicados sobre cada tema.
Captulo 2, Bases de datos: Se trabajan los conceptos bsicos de bases de
datos, as como tambin se realiza una descripcin del lenguaje estructurado
de consulta SQL. Adems se realizan ejemplos de sentencias bsicas de
SQL. Por otro lado, se desarrollan ejemplos para obtener la conexin a las
bases de datos SQL Server, Access y Oracle.
Captulo 3, Desplazamiento por los registros de una tabla: Bsicamente
lo que se realiza en este captulo son diversos ejemplos que permiten el
desplazamiento entre los registros de una tabla perteneciente a una base de
datos.
7

Captulo 4, Operaciones con tablas de una base de datos: Se manejan
ejemplos de las distintas operaciones que se pueden realizar con los registros
de una tabla como son: insertar, consultar, buscar, eliminar, actualizar y
generar reportes. Cada operacin es ilustrada con ejemplos debidamente
explicados.
Captulo 5, Manejo de las relaciones de tablas en una base de datos:
Aqu se conceptualiza y se crean ejemplos sobre la relacin de tablas de una
base de datos utilizando diferentes controles que ofrece Visual Basic .NET,
as como la creacin de reportes con tablas relacionadas.
Captulo 6, Manejo de Archivos con ASP.NET: Se conceptualiza sobre
ASP. NET, como tambin se crean diversos ejemplos de escritura y lectura
de archivos de texto plano en una aplicacin Web.
Captulo 7, Bases de datos con ASP.NET: Se disean ejemplos
ilustrativos sobre la operacin y manipulacin de los registros de una tabla
utilizando una aplicacin Web. Con los ejemplos se puede verificar la
estructura de una tabla, la conexin a una base de datos con distintos
controles, el desplazamiento de registros y las operaciones de insercin,
eliminacin, modificacin de registros, como tambin la creacin de
reportes.
Captulo 8, Manejo de tablas relacionadas con ASP.NET: En este
captulo se disearon ejemplos que permiten obtener la relacin entre tablas
en aplicaciones Web utilizando diferentes controles de Visual Basic. NET.
Anexo A: Se explica en forma breve cmo se crean proyectos Windows
Forms, el diseo de la interfaz de usuario, la modificacin de los controles
del proyecto, la escritura de cdigo, as como guardar y ejecutar un proyecto
Windows Forms. Adems, cmo cerrar y/o abrir un proyecto Windows
Forms.
Anexo B: Se explica cmo se crean nuevos sitios Web, el diseo de la
interfaz de usuario, la modificacin de los controles del sitio Web, la
escritura de cdigo y la ejecucin de un sitio Web. Adems, cmo cerrar y/o
abrir un sitio Web.
Anexo C: Se explica cmo se realiza la conexin a SQL Server, as como la
creacin de una base de datos, la creacin de tablas, diagramas y vistas
dentro de la base de datos.
Anexo D: En este anexo se explica cmo se realiza la instalacin de la base
de datos Oracle Database 10g Express Edition; tambin, cmo se crea e
insertan datos en una tabla de dicha base de datos.

Como apoyo complementario a esta publicacin se ha incluido un CD que
contiene cada uno de los captulos del libro, los anexos explicativos del software que se
utiliz, el cdigo fuente de todos los ejemplos mostrados en el libro por captulo, as
como el software utilizado y otros aspectos de inters. Adems se incluye el documento
en pdf.

Si al insertar el CD no se ejecuta automticamente, el usuario deber abrir el
archivo inicio.html que se encuentra en el directorio raz del CD. Una vez abierto, se
podr ver la pgina de inicio; pulse la imagen Manejo de datos con Visual Basic y
ASP.NET, se visualizar la pgina principal donde encontrar los vnculos para cada
captulo, los anexos, el software, los archivos con el cdigo fuente y el documento del
libro.
8

INTRODUCCIN
Visual Basic .NET (VB.NET) es una versin de Visual Basic enfocada al desarrollo de
aplicaciones .NET, e implementada sobre el Framework.NET (ms adelante se explica
este tema). Dicho lenguaje de programacin es orientado a objetos, donde es posible la
creacin de clases que pueden derivarse de otras mediante herencia, la sobrecarga de
mtodos, el control estructurado de excepciones o la creacin de aplicaciones con
mltiples hilos de ejecucin, adems de contar con la extensa librera de .NET, con la
que permite desarrollar tanto aplicaciones Windows Forms y formularios Web, como el
manejo de diversos proveedores de bases de datos, el envo de datos mediante
documentos XML
1
y la generacin de informes a partir de archivos de texto, bases de
datos, etc.
Para programar con Visual Basic .NET generalmente se utiliza el entorno de
desarrollo integrado Microsoft Visual Studio (2003, 2005, 2008), aunque tambin es
posible trabajar con el software libre SharpDevelop. Todos los programas basados en
Visual Basic. NET requieren un Framework .NET para ejecutarse.
Microsoft .NET.

Microsoft .NET es un entorno integrado de ejecucin, compilacin, depuracin y
desarrollo de aplicaciones. Los diferentes lenguajes de programacin de la plataforma
comparten el mismo entorno, normas, reglas y libreras de Microsoft .NET Framework.
La plataforma .NET proporciona software que permite conectar sistemas, informacin,
dispositivos y usuarios distintos de un modo ms unificado y personalizado. Incorpora
servicios Web XML como medio para permitir la interoperabilidad entre tecnologas
diferentes. Tambin proporciona a los desarrolladores de software las herramientas y la
tecnologa para crear rpida y eficazmente soluciones de negocio que abarcan mltiples
aplicaciones y mltiples dispositivos cliente entre diversas organizaciones, adems
permite a los usuarios controlar qu informacin, cmo y cundo se les entrega. Sus
componentes de trabajo son:

El conjunto de lenguajes de programacin: adems del Visual Basic, la
plataforma .NET puede trabajar los lenguajes de programacin C++, C#, J#
entre otros.
La biblioteca de clases base o BCL: maneja las operaciones bsicas involucradas
en el desarrollo de aplicaciones, algunas operaciones son: interaccin con
dispositivos perifricos, manejo de datos, administracin de memoria,
administracin de componentes Web, herramientas graficas, operaciones
matemticas, generacin de cdigo, etc. La BCL se clasifica en: .NET, Windows
Forms, ASP.NET, ADO.NET.
El entorno comn para ejecucin de lenguajes o CLR (Common Language
Runtime) es el entorno de ejecucin en donde se cargan las aplicaciones
desarrolladas en los diferentes lenguajes. Esta herramienta compila el cdigo
fuente de los lenguajes soportados por .NET en un cdigo intermedio (Microsoft
Intermediate Language MSIL o CIL
2
). Para generarlo, el compilador se basa en

1
XML es el estndar de Extensible Markup Language. XML no es ms que un conjunto de reglas para
definir etiquetas semnticas que nos organizan un documento en diferentes partes. XML es un
metalenguaje que define la sintaxis utilizada para definir otros lenguajes de etiquetas estructurados.
2
Lenguaje ensamblador orientado a objetos y est basado en pilas.
9

la especficacin CLS (Common Language Specification) que determina las
reglas necesarias para crear el cdigo MSIL compatible con el CLR. Adems,
para ejecutarse necesita un compilador JIT
3
(Just-In-Time) el cual genera el
cdigo mquina
4
real que se ejecuta en la plataforma del cliente. De esta forma
se consigue con .NET independencia de la plataforma de hardware.


.NET Framework

El .NET Framework es un conjunto de servicios de programacin diseados para
simplificar el desarrollo de aplicaciones sobre el entorno distribuido de Internet. El
diseo de .NET Framework est enfocado a cumplir los objetivos siguientes:


Proporcionar un entorno coherente de programacin orientada a objetos, en el
que el cdigo de los objetos se pueda almacenar y ejecutar en forma local pero
distribuida en Internet o ejecutar en forma remota.


Proporcionar un entorno de ejecucin de cdigo que reduzca lo mximo posible
la implementacin de software y los conflictos de versiones.


Ofrecer un entorno de ejecucin de cdigo que fomente la ejecucin segura del
mismo, incluso del creado por terceras personas desconocidas o que no son de
plena confianza.


Proporcionar un entorno de ejecucin de cdigo que elimine los problemas de
rendimiento de los entornos en los que se utilizan secuencias de comandos o
intrpretes de comandos.


Ofrecer al programador una experiencia coherente entre tipos de aplicaciones
muy diferentes, como las basadas en Windows o en el Web.
.NET Framework contiene dos componentes principales: Common Language
Runtime y la biblioteca de clases de .NET Framework. Common Language Runtime es
el fundamento de .NET Framework. El motor en tiempo de ejecucin se puede
considerar como un agente que administra el cdigo en tiempo de ejecucin y
proporciona servicios centrales, como la administracin de memoria, la administracin
de subprocesos y la interaccin remota, al tiempo que aplica una seguridad estricta a los
tipos y otras formas de especficacin del cdigo que fomentan su seguridad y solidez.
De hecho, el concepto de administracin de cdigo es un principio bsico del motor en
tiempo de ejecucin. El cdigo destinado al motor en tiempo de ejecucin se denomina
cdigo administrado, a diferencia del resto de cdigo, que se conoce como cdigo no
administrado. La biblioteca de clases, el otro componente principal de .NET
Framework, es una completa coleccin orientada a objetos de tipos reutilizables que se
pueden emplear para desarrollar aplicaciones que abarcan desde las tradicionales
herramientas de interfaz grfica de usuario (GUI) o de lnea de comandos hasta las

3
Tcnica para mejorar el rendimiento de sistemas de programacin que compilan a bytecode, consistente
en traducir el bytecode a cdigo mquina nativo en tiempo de ejecucin.
4
Sistema de cdigos directamente interpretable por un circuito microprogramable, como el
microprocesador de un computador o el microcontrolador de un autmata (un PLC). Este lenguaje est
compuesto por un conjunto de instrucciones que determinan acciones a ser tomadas por la mquina.

10

aplicaciones basadas en las innovacones ms recientes proporcionadas por ASP.NET,
como los formularios Web Forms y los servicios Web XML.
En la ilustracin siguiente se muestra la relacin de Common Language Runtime y
la biblioteca de clases con las aplicaciones y el sistema en su conjunto.

























.NET Framework en contexto.


























11

1. MANEJO DE ARCHIVOS
Muchos de los programas que se crean con Visual Basic .NET necesitan interactuar con
datos del exterior, procesarlos para luego mostrarlos en un formulario, guardarlos en
archivos de texto, en una hoja de Excel, en un archivo de Word, enviarlos a la red o
simplemente imprimirlos en papel, etc. Se usan archivos para conservar a largo plazo
grandes cantidades de datos. Los datos guardados en archivos se conocen como datos
persistentes. Los computadores guardan los archivos en dispositivos de almacenamiento
secundario como discos magnticos, pticos y cintas magnticas.

Para procesar archivos en Visual Basic .NET se debe hacer uso del espacio de
nombres
5
System.IO. El espacio de nombres System.IO contiene enumeraciones para
la apertura de archivos, el acceso a los archivos, el uso compartido de archivos,
adems, de clases para las operaciones de rutas de acceso y la manipulacin de flujos de
datos.
1.1 Clase File
Se puede utilizar la clase File para operaciones como copiar, mover, cambiar el nombre,
crear, abrir, eliminar y anexar texto a archivos de texto plano. Tambin con la clase File
se puede obtener y definir atributos del archivo o informacin relacionada con la hora y
fecha de creacin, el acceso y la escritura en un archivo.
Stream es la clase base de todas las secuencias de flujos de datos. Una secuencia
es una abstraccin de una secuencia de bytes, como un archivo, un dispositivo de
entrada/salida, un canal de comunicacin interprocesos o un socket TCP/IP. La clase
Stream y sus clases derivadas proporcionan una visin genrica de diferentes tipos de
entrada y salida, aislando al programador de los detalles especficos del sistema
operativo y sus dispositivos subyacentes.
Algunos mtodos de la clase File son:
Tabla 1.1 Mtodos de la clase File.

Mtodo Proceso
CreateText(ruta) Crea o abre un archivo para escribir texto.
Create(ruta) Crea un archivo en la ruta especficada
AppendText Anexa texto a un archivo de texto
existente.
Delete Elimina un archivo existente.
Copy Copia un archivo
Exists Determina si existe un archivo especfico.
Open Abre un archivo de texto existente
Move Mueve un archivo a un sitio especfico.
GetCreateTime Devuelve la hora y la fecha de la creacin
de un archivo.
Replace Reemplaza el contenido de un archivo en
otro.


5
Se usan para agrupar clases y otros tipos de datos que estn relacionados entre s.
12

1.1.1 Ejemplo clase File
Hacer un nuevo proyecto llamado GuardarbrirConFile y realizar un programa que
permita a un usuario guardar informacin en un archivo de texto plano, recuperar la
informacin de ste, as como adicionarle informacin utilizando la clase File.
NOTA: Si lo considera necesario puede revisar el Anexo A, donde se explica
brevemente la creacin, la interfaz de usuario, el establecimiento de propiedades a los
controles, la escritura de cdigo, la ejecucin de un nuevo proyecto Windows Forms.
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: 2 Label, 2 TextBox, 3
Button.

Figura 1.1 Interfaz de usuario (GuardarbrirConFile).
















Establecer las propiedades de los objetos de la interfaz de usuario
Establezca las siguientes modificaciones a las propiedades en los controles:

Tabla 1.2 Propiedades de los controles del proyecto GuardarbrirConFile.

Control Propiedad Valor
Label1 Name etiquetaver
Text Texto del archivo de
escritura/lectura.
Label2 Name etiquetaadicion
Text Texto para adicionar
TextBox1 Name texto
Text En blanco
Multiline true
TextBox2 Name textoadicional
Text En blanco
Multiline true
Button1 Name botonguardar

13

Text Guardar en archivo
Button2 Name botonabrir
Text Abrir archivo
Button3 Name botonadicionar
Text Adicionar texto
Form1 Name formulario
Text Guardar, leer y adicionar datos
en archivo de texto.

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

Figura 1.2 Interfaz de usuario, propiedades modificadas (GuardarbrirConFile).
















Escribir cdigo

a) Antes de la apertura de la clase se debe importar el espacio de nombres
System.IO. D doble clic sobre el formulario y busque Public class formulario
y antes de este cdigo escriba imports System.IO. El cdigo queda de la
siguiente manera:

imports System.IO
Public Class formulario

End Class

Se importa el espacio de nombres System.IO para poder manipular los mtodos
de la clase File.

b) En modo diseo del formulario, seleccione el objeto botonguardar, d doble
clic para abrir el editor de cdigo botonguardar_Click y escriba el siguiente
cdigo:

Try
Dim escribir As StreamWriter
escribir = File.CreateText("c:\datosentexto.txt")
escribir.Write(texto.Text)
escribir.Close()
texto.Text = ""

14

MsgBox("Texto Guardado", MsgBoxStyle.Information)
Catch ex As Exception
MsgBox("Error al guardar el archivo", MsgBoxStyle.Critical)
End Try

Se define un bloque Try-Catch para atrapar errores y las acciones a
seguir. Aunque no es necesario, es una buena prctica cuando se estn
realizando operaciones de entrada/salida para evitar salidas anormales del
sistema. En el bloque Try se establece el cdigo que realiza una tarea especfica
y que en un caso dado puede generar un error; en el bloque Catch ir el cdigo
que realizar las acciones a seguir en caso de error.
Dentro del bloque Try se crea un objeto llamado escribir de tipo
StreamWriter (flujo de escritura). A dicho objeto se le asigna la creacin del
archivo de texto c:\datosentexto.txt por medio del mtodo createText de la
clase File. Utilizando el mtodo write y envindole como parmetro el
contenido del control llamado texto, se guarda la informacin en el archivo
especficado. Por otro lado, se cierra el archivo utilizando el mtodo close() y se
limpia el objeto texto. Por ltimo se muestra una caja de mensajes con el
mensaje Texto Guardado. En el bloque Catch se captura en el objeto ex de
tipo Exception el error que se pueda generar y se mostrar el mensaje Error al
guardar el archivo.

c) Seleccione el objeto botonabrir, d doble clic para abrir el editor de cdigo
botonabrir_Click y escriba el siguiente cdigo:

Try
Dim leer As StreamReader
leer = File.OpenText("c:\datosentexto.txt")
texto.Text = leer.ReadToEnd
leer.Close()
Catch ex As Exception
MsgBox("Error al leer el archivo", MsgBoxStyle.Critical)
End Try

Dentro del bloque Try se crea un objeto llamado leer de tipo
StreamReader (flujo de lectura). A dicho objeto se le establece la apertura del
archivo de texto c:\datosentexto.txt por medio del mtodo openText de la
clase File. Utilizando el mtodo readToEnd se lee el archivo de texto desde el
inicio hasta el final y se le asigna su contenido al objeto texto. Por otro lado, se
cierra el archivo utilizando el mtodo close (). En el bloque Catch si se genera
algn error se mostrar el mensaje Error al leer el archivo.

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

Try
texto.Text = " "
Dim adicionartexto As StreamWriter
adicionartexto = File.AppendText("C:\datosentexto.txt")
adicionartexto.WriteLine(textoadicional.Text)
adicionartexto.Close()
textoadicional.Text = ""
Catch ex As Exception
MsgBox("Error al adicionar inf. al archivo", MsgBoxStyle.Critical)
End Try
15

Dentro del bloque Try primero se coloca el objeto texto en blanco y
luego se crea un objeto llamado adicionartexto de tipo StreamWriter (flujo de
escritura). A dicho objeto se le asigna la propiedad de adicin del texto al
archivo c:\datosentexto.txt por medio del mtodo AppendText de la clase
File. Utilizando el mtodo WriteLine y envindole como parmetro el
contenido del control llamado textoadicional, se adiciona la informacin al final
del archivo especficado. Por otro lado se cierra el archivo utilizando el mtodo
close () y se limpia el objeto textoadicional. En el bloque Catch si se genera
algn error, se mostrar el mensaje Error al adicionar inf. al archivo.

Ejecutar el proyecto
Para ejecutar el proyecto pulse la tecla F5 o el icono , se visualizar la figura 1.2. Al
escribir creando un nuevo archivo para guardarlo con el botn Guardar en archivo
en el objeto texto, dicha figura quedara as:
Figura 1.3 Ejecucin aplicacin AbrirGuardarConFile.

















Al pulsar el botn Guardar en Archivo, se crear en C:\ el archivo
datosentexto.txt y el objeto texto se limpiar. Mostrndose la siguiente caja de texto:

Figura 1.4 Mensaje de texto guardado en el archivo datosentexto.txt.












16

Pulse el botn Aceptar para cerrar dicha caja. Al pulsar el botn Leer Archivo,
se visualizar nuevamente la figura 1.3. Si se adiciona el texto adicionando texto al
archivo que previamente haba guardado en el objeto textoadicional. El formulario
deber ser semejante a la siguiente figura:

Figura 1.5 Formulario con el texto original y el texto adicional.

















Ahora pulse el botn Adicionar Texto, y nuevamente pulse el botn Leer
Archivo para visualizar la siguiente figura:

Figura 1.6 Lectura del archivo con el texto adicional.





















17

1.2 Clases StreamWriter y StreamReader
Las clases StreamWriter y StreamReader permiten las operaciones con archivos de
texto plano. Para hacer uso de estas clases es necesario incluir el espacio de nombres
System.IO. La Clase StreamReader (flujo de lectura) es una opcin ms para la
manipulacin de archivos de texto plano. Esta clase, entre otros, contiene el mtodo
ReadToEnd cuyo objetivo es leer un archivo desde una posicin inicial hasta el final.

La Clase StreamWriter (flujo de escritura) est diseada para la salida de
caracteres. Esta clase contiene entre otros el mtodo Write para escribir informacin en
el archivo.
1.2.1 Ejemplo clases StreamWriter y StreamReader
Crear un proyecto llamado GuardarbrirArchivoTexto y hacer un programa que
permita a un usuario guardar informacin en un archivo de texto plano, as como poder
abrirlo y visualizar el contenido de este, utilizando las clases StreamWriter y
StreamReader.
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 TextBox, 2
Button.

Figura 1.7 Interfaz de usuario (GuardarbrirArchivoTexto).


















Establecer las propiedades de los objetos de la interfaz de usuario
Para el caso del ejemplo, establezca las siguientes modificaciones a los controles:



18

Tabla 1.3 Propiedades de los controles del proyecto GuardarbrirArchivoTexto.

Control Propiedad Valor
Label1 Name titulo
Text Guardar y abrir un archivo de
texto.
Font Bold true
TextBox1 Name texto
Text En blanco
Multiline true
Button1 Name botonguardar
Text Guardar archivo de texto
Button2 Name botonabrir
Text Abrir archivo de texto
Form1 Name formulario
Text Guardar y abrir archivos de
texto.

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

Figura 1.8 Interfaz de usuario modificada (GuardarbrirArchivoTexto).
















Escribir cdigo
a) Seleccione el objeto botonguardar, d doble clic para abrir el editor de cdigo y
escriba el siguiente cdigo:

Try
Dim archivo As New System.IO.StreamWriter("./archivotexto.txt")
archivo.Write(texto.Text)
archivo.Close()
texto.Text = ""
Catch ex As Exception
MsgBox("No se pudo guardar la informacion", MsgBoxStyle.Critical)
End Try

Se define la variable archivo asignndosele un espacio de memoria de
tipo System.IO.StreamWriter (), al cual se le enva como parmetro el nombre
del archivo (archivotexto.txt). Dicho archivo estar ubicado en la carpeta

19

\bin\debug del proyecto. Utilizando el mtodo Write se escribe el contenido del
objeto texto en el archivo. Por otro lado se cierra el archivo utilizando el mtodo
close () y se limpia el objeto texto.

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

Try
Dim miruta As String = ("./archivotexto.txt")
Dim archivo As New System.IO.StreamReader(miruta)
texto.Text = archivo.ReadToEnd
archivo.Close()
Catch ex As Exception
MsgBox("No se pudo guardar la informacion", MsgBoxStyle.Critical)
End Try

Se definen las variables miruta de tipo String, la cual se inicializa con la
ruta y el nombre del archivo archivotexto.txt y la variable archivo
asignndosele un espacio de memoria de tipo System.IO.StreamWriter ().
Utilizando el mtodo ReadToEnd se lee el contenido del archivo y se le asigna
al objeto texto. Por ltimo se cierra el archivo.

Ejecutar el proyecto
Al ejecutarse el proyecto en el entorno de desarrollo de Visual Basic.NET/2008, se
visualizar la figura 1.8. Al adicionrsele el texto El amor es el principio de todo, la
razn de todo, el fin de todo en el objeto llamado texto, el formulario presentara el
siguiente aspecto:

Figura 1.9 Ejecucin aplicacin GuardarbrirArchivoTexto.
















Al pulsar el botn con la etiqueta Guardar Archivo de texto, se crear un
archivo de texto llamado archivotexto.txt y el objeto texto quedara en blanco. Al
pulsar el botn Abrir Archivo de texto, se cargar en el objeto texto el contenido del
archivo de texto.

20

1.3 Controles OpenFileDialog y SaveFileDialog
Los controles OpenFileDialog y SaveFileDialog del cuadro de herramientas de Visual
Basic .NET /2008, son cuadros de dilogo que permiten abrir y guardar archivos,
respectivamente. El control OpenFileDialog representa un cuadro de dilogo para
seleccionar un archivo que ser abierto. El control SaveFileDialog representa un cuadro
de dilogo para guardar un archivo nuevo o sobrescribir en un archivo existente. Estos
controles obtienen su funcionamiento de la clase abstracta FileDialog. La clase
FileDialog es un cuadro de dilogo modal; por tanto, al mostrarse, bloquea el resto de la
aplicacin hasta que el usuario haya elegido un archivo o cancelado la operacin.
1.3.1 Ejemplo con los controles OpenFileDialog y SaveFileDialog
Realizar un proyecto llamado GuardarbrirConControles y disear un programa que
permita a un usuario guardar informacin en un archivo de texto plano, as como poder
abrirlo y visualizar el contenido de ste, utilizando los controles OpenFileDialog y
SaveFileDialog.
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: 2 Label, 1 TextBox, 2
Button, 1 OpenFileDialog y 1 SaveFileDialog.

Figura 1.10 Interfaz de usuario (GuardarbrirArchivoConControles)



















Establecer las propiedades de los objetos de la interfaz de usuario
Establezca las siguientes modificaciones a los controles:


21

Tabla 1.4 Propiedades de controles proyecto GuardarbrirArchivoConControles.

Control Propiedad Valor
Label1 Name titulo1
Text Guardar y abrir archivo de texto
con los controles.
Font Bold true
Label2 Name titulo2
Text SaveFileDialog y
OpenFileDialog.
Font Bold true
TextBox1 Name texto
Text En blanco
Multiline true
SavefileDialog1 Name guardarrchivo
OpenFileDialog1 Name abrirrchivo
Button1 Name botonguardar
Text Guardar archivo de texto
Button2 Name botonabrir
Text Abrir archivo de texto
Form1 Name formulario
Text Controles SaveFileDialog y
OpenFileDialog.

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

Figura 1.11 Interfaz de usuario modificada (GuardarbrirArchivoconControles).





















Escribir cdigo

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

22

guardarrchivo.Filter = "Archivos de texto (*.txt)| *.txt"
guardarrchivo.ShowDialog()
If guardarrchivo.FileName <> "" Then
Try
Dim guardar As IO.StreamWriter
guardar = New IO.StreamWriter(guardarrchivo.FileName)
guardar.Write(texto.Text)
guardar.Close()
texto.Text = ""
Catch ex As Exception
MsgBox("No se pudo guardar el archivo")
End Try
Else
MsgBox("Archivo no contiene informacin")
End If

En el anterior cdigo se utiliza la propiedad Filter del control
guardarrchivo para que cuando se abra el cuadro de dilogo solamente se
visualicen los archivos con extensin .txt. El mtodo ShowDialog permite abrir
el cuadro de dilogo. Utilizando la estructura if se pregunta si el nombre de
archivo es diferente de vaco utilizando la propiedad FileName. Si se cumple la
condicin se crea un objeto llamado guardar de tipo IO.StreamWriter al cual
se le asigna espacio de memoria envindole como parmetro el nombre del
archivo por intermedio de la propiedad FileName del control guardarrchivo.
Por otro lado, se utiliza el mtodo Write para guardar el contenido del objeto
texto; luego se cierra el objeto con el mtodo close () y por ltimo se limpia el
objeto texto. Si el nombre del archivo est en blanco se mostrar un mensaje
informando que el archivo esta vaco o no contiene informacin.

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

abrirrchivo.Filter = "Archivos de texto (*.txt)| *.txt"
abrirrchivo.ShowDialog()
If abrirrchivo.FileName <> "" Then
Try
Dim verarchivo As New IO.StreamReader(abrirrchivo.FileName)
texto.Text = verarchivo.ReadToEnd
verarchivo.Close()
Catch ex As Exception
MsgBox("No se pudo abrir el archivo")
End Try
Else
MsgBox("Archivo no contiene informacin")
End If

Utilizando la estructura if se pregunta si el nombre de archivo es
diferente de vaco. Si se cumple la condicin se crea un objeto llamado
verarchivo de tipo IO.StreamReader al cual se le asigna espacio de memoria
envindole como parmetro el nombre del archivo por intermedio de la
propiedad FileName del control abrirrchivo. Por otro lado, se utiliza el
mtodo ReadToEnd para leer el archivo y asignarle el contenido al objeto texto,
luego se cierra el objeto con el mtodo close (). Si, por el contrario, no contiene
informacin, se mostrar un mensaje informando que el archivo esta vaci.
23

Ejecutar el proyecto
Al ejecutarse el proyecto en el entorno de desarrollo de Visual Basic.NET se visualizar
la figura 1.11. Al pulsar el botn Abrir Archivo de Texto se visualizar el cuadro de
dilogo de Abrir. Se debe seleccionar un archivo de texto y pulsar el botn del cuadro
de dilogo Abrir.

Figura 1.12 Cuadro de Dilogo control abrirrchivo.












El formulario presentara un aspecto similar:

Figura 1.13 Formulario con archivo de texto abierto.















Al pulsar el botn Guardar Archivo de Texto se visualizar el cuadro de
dilogo de Guardar como, donde se deber digitar el nombre del archivo a guardar y
pulsar el botn del cuadro de dilogo Guardar. Si el archivo ya existe, preguntar si
desea sobrescribirlo.






24

Figura 1.14 Cuadro de dilogo control guardar archivo.















1.4 Archivos secuenciales
Otra forma de guardar o leer informacin de un archivo de texto plano es utilizar
archivos secuenciales. Los archivos secuenciales se denominan de esta manera porque
para guardar y leer la informacin se realiza desde el principio hasta el final del archivo,
es decir, para acceder a un dato que se encuentra en la mitad del archivo es necesario
empezar a recorrerlo desde el principio hasta encontrar el dato, o sea en forma
secuencial. El acceso secuencial funciona mejor cuando se desea procesar archivos
nicamente de texto y no archivos en los que los datos se dividen en una serie de
registros.
Cuando se abre un archivo para acceso secuencial, se debe especficar si se va a
escribir en el archivo (Input), si se va a leer el archivo (Output) o si se va a adicionar
informacin al archivo (Append). Para accesar a un archivo secuencial se utiliza la
funcin FileOpen. Cuando se abre un archivo secuencial para Input, el archivo ya debe
existir; de lo contrario, se producir un error. No obstante, cuando se intenta abrir un
archivo que no existe para Output o Append, la instruccin FileOpen primero crea el
archivo y a continuacin lo abre. Una vez que se abre un archivo para una operacin
Input, Output o Append, debe cerrarse con la instruccin FileClose antes de volver a
abrirlo para realizar otro tipo de operacin.
1.4.1 Ejemplo de archivos secuenciales
Crear un proyecto llamado ArchivosSecuenciales y realizar un programa que permita a
un usuario guardar informacin en un archivo de texto plano, leer la informacin de
ste, as como adicionarle ms informacin a dicho archivo utilizando archivos
secuenciales.
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: 4 Label, 3 TextBox, 3
Button.

25

Figura 1.15 Interfaz de usuario (ArchivosSecuenciales).





















Establecer las propiedades de los objetos de la interfaz de usuario
Establezca las siguientes modificaciones a los controles:

Tabla 1.5 Propiedades de controles proyecto ArchivosSecuenciales.

Control Propiedad Valor
Label1 Name titulo
Text Guardar/adicionar inf. archivo
secuencial.
Label2 Name etiquetanombre
Text Digite nombres:
Label3 Name etiquetaapellido
Text Digite apellidos:
Label4 Name mostrar
Text Lectura del archivo:
TextBox1 Name textonombre
Text En blanco
TextBox2 Name textoapellido
Text En blanco
TextBox3 Name textolectura
Text En blanco
Multiline true
Button1 Name botonguardar
Text Guardar archivo
Button2 Name botonadicionar
Text Adicionar texto
Button3 Name botonabrir
Text Leer archivo
Form1 Name formulario
Text Guardar, adicionar y leer
archivo secuencial.

26

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

Figura 1.16 Interfaz de usuario modificada (ArchivosSecuenciales).
















Escribir cdigo
a) Seleccione el objeto botonguardar, d doble clic para abrir el editor de cdigo y
escriba el siguiente cdigo:

Try
FileOpen(1, "c:\datossecuenciales.txt", OpenMode.Output)
PrintLine(1, textonombre.Text, textoapellido.Text)
textonombre.Text = ""
textoapellido.Text = ""
FileClose(1)
Catch ex As Exception
MsgBox("No se pudo guardar el archivo")
End Try

En el anterior cdigo se utiliza la funcin FileOpen con los parmetros:
1, un nmero de archivo libre, c:\datossecuenciales.txt, nombre del archivo,
OpenMode.OutPut, modo de apertura del archivo (salida). Con el mtodo
PrintLine se imprime en una lnea del archivo el contenido de los objetos
textonombre y textoapellido, luego se limpian dichos objetos y por ltimo se
cierra el archivo.

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

Try
FileOpen(1, "c:\datossecuenciales.txt", OpenMode.Append)
PrintLine(1, textonombre.Text, textoapellido.Text)
textonombre.Text = ""
textoapellido.Text = ""
FileClose(1)
Catch ex As Exception
MsgBox("No se pudo adicionar el archivo")
End Try

27

Lo nico que cambia con respecto a la opcin de Guardar archivo es el
modo de apertura del archivo (OpenMode.Append), se cambia OutPut por
Append (adicionar). Este modo de apertura permite guardar ms informacin al
final del archivo especficado.

c) Seleccione el objeto botonabrir, de doble clic para abrir el editor de cdigo y
escriba el siguiente cdigo:

Try
FileOpen(1, "c:\datossecuenciales.txt", OpenMode.Input)
Dim linea As String
Do Until EOF(1)
linea = LineInput(1)
textolectura.Text = textolectura.Text & linea & vbCrLf
Loop
FileClose(1)
Catch ex As Exception
MsgBox("No se pudo abrir el archivo")
End Try

Se utiliza la funcin FileOpen con los parmetros: 1, un nmero de
archivo libre, c:\datossecuenciales.txt, nombre del archivo, OpenMode.Input
modo de apertura del archivo (entrada). Se define una variable llamada linea de
tipo String, la cual servir para guardar cada lnea del archivo. Por otro lado se
crea un ciclo (Do Until Loop) que recorrer el archivo hasta el final (EOF)
lnea por lnea y utilizando el mtodo LineInput () se le asignar la informacin
leida al objeto textolectura, por ltimo se cierra el archivo.

Ejecutar el proyecto
Al ejecutarse el proyecto se visualizar la figura 1.16. Al escribir un nombre y un
apellido en las respectivas cajas de texto y pulsar el botn Guardar archivo, se
guardar dicha informacin en el archivo c:\datossecuenciales.txt. El formulario con
la informacin quedara de la siguiente forma:

Figura 1.17 Formulario con informacin de nombre y apellido.
















28

Si se desea adicionar ms informacin al archivo de texto, escriba nuevamente
los nombres y apellidos correspondientes y pulse el botn Adicionar texto, se podra
obtener la siguiente pantalla:

Figura 1.18 Formulario con informacin para adicionar.


















Al pulsar el botn Leer Archivo se leer el contenido del archivo de texto, como
se muestra en la siguiente figura.

Figura 1.19 Formulario con la informacin del archivo.























29

1.5 Archivos binarios
Tambin es posible guardar o leer informacin desde un archivo con acceso binario.
Con los archivos de acceso binario se puede almacenar informacin ya sea numrica, de
cadena o de ambas. Este tipo de archivo no requiere campos de longitud fija. No
obstante, es necesario conocer cmo se escribieron exactamente los datos en el archivo
para poder recuperarlos correctamente. Por ejemplo, si almacena una serie de productos
y unas cantidades, debe tener en cuenta que el primer campo (producto) es texto y el
segundo (cantidades) es numrico.
Para abrir un archivo para acceso binario, se recurre a OpenMode.Binary con la
instruccin FileOpen. Una vez abierto, para escribir en el archivo se utiliza las
funciones FilePut y FilePutObject. Para leer un archivo se manejan las funciones
FileGet y FileGetObject.
1.5.1 Ejemplo de archivos binarios
Realizar un proyecto llamado ArchivosBinarios y hacer un programa que permita a un
usuario guardar informacin en un archivo de texto plano, leer la informacin de este,
utilizando archivos binarios.
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 Label, 3 TextBox, 2
Button.

Figura 1.20 Interfaz de usuario (ArchivosBinarios).









Establecer las propiedades de los objetos de la interfaz de usuario
Establezca las siguientes modificaciones a los controles:


30

Tabla 1.6 Propiedades de controles proyecto ArchivosBinarios.

Control Propiedad Valor
Label1 Name titulo
Text Guardar/adicionar inf. archivo
binario.
Label2 Name etiquetaproducto
Text Digite producto:
Label3 Name etiquetacantidad
Text Digite cantidad:
TextBox1 Name textoproducto
Text En blanco
TextBox2 Name textocantidad
Text En blanco
TextBox3 Name textolectura
Text En blanco
Multiline true
Button1 Name botonguardar
Text Guardar archivo
Button2 Name botonabrir
Text Leer archivo
Form1 Name formulario
Text Guardar/leer archivo binario.

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

Figura 1.21 Interfaz de usuario modificada (ArchivosBinarios).

















Escribir cdigo

a) Definir una estructura llamada Articulo despus de Public class formulario:

Structure Articulo
<VBFixedString(30)> Dim producto As String
<VBFixedString(10)> Dim cantidad As String
End Structure


31

Se define una estructura (Structure) llamada Articulo que contendr dos
tipos de datos String producto y cantidad. Se utiliza el atributo
VBFixedString () para definir la longitud mxima de los datos.

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

Dim nombrearchivo As String
Dim numeroarchivo As Short
Dim inventario As Articulo
inventario.producto = textoproducto.Text
inventario.cantidad = textocantidad.Text
numeroarchivo = FreeFile()
nombrearchivo = "c:\datosaleatorios.txt"
FileOpen(numeroarchivo, nombrearchivo, OpenMode.Binary)
FilePut(numeroarchivo, inventario)
FileClose(numeroarchivo)

Se crean las variables nombrearchivo de tipo String, numeroarchivo
de tipo Short e inventario de tipo Articulo. Se le asigna la informacin
capturada en los objetos textoproducto y textocantidad a los datos de la
estructura Articulo utilizando la instancia inventario. La variable
numeroarchivo es inicializada con un nmero de archivo libre utilizando la
funcin FreeFile (), como tambin se le asigna a la variable nombrearchivo la
ruta y el nombre del archivo donde se guardar la informacin. Se abre el
archivo en modo binario utilizando la funcin FileOpen que recibe como
parmetros: un nmero de archivo libre (numeroarchivo), el nombre del
archivo (nombrearchivo), la apertura del archivo binario (OpenMode.Binary).
Con FilePut se escriben los valores que contiene la estructura inventario en el
archivo binario y por ltimo se cierra el archivo.

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

Dim nombrearchivo As String
Dim numeroarchivo As Short
numeroarchivo = FreeFile()
nombrearchivo = "c:\datosaleatorios.txt"
FileOpen(numeroarchivo, nombrearchivo, OpenMode.Binary)
textolectura.Text = New String(" "c, 50)
FileGet(numeroarchivo, textolectura.Text)
FileClose(numeroarchivo)

Como se puede apreciar, las primeras cinco lneas son exactamente
iguales a la opcin de guardar. Se le asigna al objeto textolectura en su
propiedad text un espacio de memoria de tipo char ( c), con un espacio para
50 caracteres. Se utiliza la funcin FileGet para leer el contenido del archivo,
ste recibe como parmetros: el numero del archivo (numeroarchivo) y el
objeto textolectura, el cual contendr el contenido del archivo de texto. Por
ltimo se cierra el archivo.


32

Ejecutar el proyecto

Al ejecutarse el proyecto en el entorno de desarrollo de Visual Basic.NET/2008, se
visualizar la figura 1.21. Al escribir un producto y una cantidad en las respectivas cajas
de texto y pulsar el botn Guardar Archivo, se guardar dicha informacin en el
archivo c:\datosaleatorios.txt. Al pulsar el botn Leer Archivo, el formulario con la
informacin leda quedara de la siguiente forma:

Figura 1.22 Formulario con informacin de un producto y una cantidad.
















1.6 Importar y exportar datos de una hoja de Excel
Hasta el momento se ha trabajado con archivos de texto plano en donde se ha podido
guardar, adicionar y recuperar informacin. Con Visual Basic .NET tambin es posible
manipular archivos con otro tipo de formato; por eso en este aparte se exportar datos
desde un proyecto de Visual Basic .NET a un archivo de Excel y se importarn datos de
un archivo de Excel a un proyecto de Visual Basic .NET.
16.1 Ejemplo importar y exportar datos de Excel
Dentro de un proyecto llamado ImportarExportarExcel, hacer un programa que
permita a un usuario exportar y/o importar datos de una hoja de Excel. Cuando se
importe de Excel los datos se debern mostrar en un control DataGridView de Visual
Basic .NET, as como se deber solicitar el rango de datos a importar. Al exportar se
debern enviar todos los datos que contenga el control DataGridView a un archivo de
Excel.
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 TextBox, 2
Button y 1 DataGridView.

33

Figura 1.23 Interfaz de usuario (ImportarExportarExcel).

































Establecer las propiedades de los objetos de la interfaz de usuario
Establezca las siguientes modificaciones a los controles:

Tabla 1.7 Propiedades de controles proyecto ImportarExportarExcel.


Control Propiedad Valor
Label1 Name texto
Text Rango a importar de
Excel
Font Bold true
TextBox1 Name rango
Text A1:D10
DataGridView1 Name tabla
Button1 Name botonimportar
Text Importar de Excel
Button2 Name botonexportar
Text Exportar a Excel
Form1 Name formulario
Text Importar y exportar de
Excel.


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


34

Figura 1.24 Interfaz de usuario modificada (ImportarExportarExcel).





























Escribir cdigo
Antes de escribir cdigo, se deber crear un archivo en Excel llamado
importardatos.xls y en la hoja uno (1) escribir informacin en el rango A1:D10,
como se muestra en la siguiente figura:

Figura 1.25 Hoja de Excel con datos.



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

importar_Excel("c:\importardatos.xls", "hoja1", rango.Text, tabla)

Se llama al procedimiento importar_Excel, el cual tiene como


35

parmetros: la ruta y el nombre del archivo de Excel, el nombre de la hoja donde
se encuentran los datos en Excel, el rango de datos a importar y el nombre del
control DataGridView (tabla).


b) D doble clic sobre el formulario y cree el siguiente procedimiento Sub:

Private Sub importar_Excel(ByVal archivoexcel As String, ByVal nombrehoja As String,
ByVal rangohoja As String, ByVal tabla As DataGridView)
Try
If System.IO.File.Exists(archivoexcel) Then
Dim conjuntodedatos As System.Data.DataSet
Dim adaptadordedatos As System.Data.OleDb.OleDbDataAdapter
Dim conexion As String = "provider=Microsoft.Jet.OLEDB.4.0; " & "data
Source =" & archivoexcel & "; Extended Properties=Excel 8.0;"
Dim conectordedatos As System.Data.OleDb.OleDbConnection
conectordedatos = New System.Data.OleDb.OleDbConnection(conexion)
Dim selecciondedatos As String = "select * from " & "[" & nombrehoja & "$" &
rangohoja & "]"
adaptadordedatos = New System.Data.OleDb.OleDbDataAdapter
(selecciondedatos,conectordedatos)
conjuntodedatos = New System.Data.DataSet
adaptadordedatos.Fill(conjuntodedatos)
conectordedatos.Close()
With tabla
.DataSource = conjuntodedatos
.DataMember = conjuntodedatos.Tables(0).TableName
End With
conjuntodedatos = Nothing
conexion = Nothing
adaptadordedatos = Nothing
conectordedatos = Nothing
Else
MsgBox("No se ha encontrado el archivo: " & archivoexcel,
MsgBoxStyle.Exclamation)
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical)
End Try
End Sub

Se crea el procedimiento importar_Excel, el cual recibe como
parmetros: las variables archivoexcel, nombrehoja, rangohoja de tipo String
y tabla de tipo DataGridView. La variable archivoexcel contendr la ruta y el
nombre del archivo de Excel, nombrehoja almacenar el nombre de la hoja de
Excel, rangohoja obtendr el rango a importar y tabla visualizar los datos
importados. Utilizando la estructura if y con el mtodo Exists se determina si el
archivo existe. Si es verdadero, se crean las variables: conjuntodedatos de tipo
DataSet para guardar el conjunto de datos a importar; adaptadordedatos de
tipo OleDbDataAdapter, con la cual se obtiene el adaptador de datos OLEDB
para recuperar los datos; conexion de tipo String que contendr la cadena de
conexin a Excel; conectordedatos de tipo OleDbConnection que representa
una conexin nica a un origen de datos; en este caso, se le asigna espacio de
memoria y se le enva como parmetro la cadena de conexin; selecciondedatos
de tipo String a la cual se le asigna la sentencia de seleccin SQL (select) que
trae los datos de la hoja1(nombrehoja) en el rango especficado (rangohoja).
36

Al adaptador de datos adaptadordedatos se le asigna espacio de memoria,
envindole como parmetro los datos seleccionados (selecciondedatos) y la
cadena de conexin (conexiondedatos), tambin se asigna espacio de memoria
de tipo DataSet al objeto conjuntodedatos y el adaptador de datos
(adaptadordedatos) se rellena (fill) con el conjunto de datos. Por otro lado se
cierra la conexin de los datos con close (). Adems se asigna a la propiedad
DataSource del objeto tabla el conjunto de datos y al adaptador de datos se le
asigna la lista de datos que contiene el archivo de Excel, por ltimo se liberan
todos los objetos utilizando la palabra clave Nothing (liberar). Si la condicin es
falsa se mostrar un mensaje donde se informa que no se pudo encontrar el
archivo de Excel.

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

exportar_Excel(tabla, tabla.Rows.Count)

Se llama al procedimiento exportar_Excel, el cual tiene como
parmetros: el objeto DataGridView llamado tabla y la cantidad de filas que
contiene dicho objeto utilizando la funcin Count de la propiedad Rows.

d) D doble clic sobre el formulario y cree el siguiente procedimiento Sub:

Private Sub exportar_Excel(ByVal tabla As DataGridView, ByVal nrofilas As Long)
Dim archivo_excel As Object
Dim libro_excel As Object
Dim hoja_excel As Object
Dim i As Integer
Dim j As Integer
Dim iColumnas As Integer
If nrofilas = 0 Then
MsgBox("No hay datos para exportar a excel. Se ha indicado 0 en el parmetro
Filas ") : Exit Sub
Else
archivo_excel = CreateObject("Excel.Application")
libro_excel = archivo_excel.Workbooks.Open("c:\exportardatos.xls")
hoja_excel = archivo_excel.ActiveSheet
iColumnas = 0
For i = 0 To tabla.Columns.Count - 1
If tabla.ColumnHeadersVisible Then
iColumnas = iColumnas + 1
hoja_excel.Cells(1, iColumnas) = tabla.Columns(i).HeaderText
For j = 0 To nrofilas - 1
hoja_excel.Cells(j + 2, iColumnas) = tabla.Item(i, j).Value
Next
End If
Next
archivo_excel.Visible = True
End If
hoja_excel = Nothing
libro_excel = Nothing
archivo_excel = Nothing
End sub

Se crea el procedimiento exportar_Excel, el cual recibe como
parmetros: las variables tabla de tipo DataGridView y nrofilas de tipo long.
37

El objeto tabla contendr los datos a exportar y nro_filas el nmero de filas del
objeto tabla. Se definen los objetos archivo_excel, hoja_excel, libro_excel de
tipo Object y se crean las variables i, j, icolumnas de tipo Integer. Utilizando la
estructura if se pregunta si nro_filas es igual a cero (0), si es verdadero se
imprimir el mensaje de la no existencia de datos en el archivo Excel y se saldr
del procedimiento por intermedio de la palabra clave exit. En caso contrario se
crea un objeto (CreateObject) que inicializa una aplicacin Excel y es asignado
al objeto archivo_excel, al objeto libro_excel se le asigna la ruta y el nombre
del archivo de Excel que se va a abrir utilizando el mtodo Open de
WorkBooks, como tambin se asigna la hoja activa (ActiveSheet) del archivo
de Excel a hoja_excel. Se inicializa la variable icolumnas en cero y ejecutan
dos ciclos for. En el ciclo externo se recorre la cantidad de columnas existente
en el objeto DataGridView (tabla.Columns.Count - 1). Si el nombre de la
columna es visible se incrementa la variable icolumna en uno (1) y se asigna a
la primera celda en la posicin del valor de la variable icolumna el nombre de la
columna del objeto DataGridView utilizando el mtodo HeaderText, en el
ciclo ms interno se recorre cada una de las filas del objeto DataGridView y se
coloca en la celda (j, i) el valor que tiene el objeto tabla en la posicin (i, j). Por
otro lado, se hace visible (se abre) el archivo de Excel. Por ltimo se liberan
todos los objetos utilizando la palabra clave Nothing (liberar).

Ejecutar el proyecto
Al ejecutarse el proyecto en el entorno de desarrollo, se visualizar la figura 1.25. Al
escribir el rango A1:D10 y pulsar el botn Importar de Excel, se visualizar la
siguiente figura:

Figura 1.26 Formulario con datos importados de Excel.

























Si se pulsa el boton Exportar a Excel, se exportarn todos los datos del objeto
tabla y se abrir el archivo de Excel exportardatos.xls en c:\. Dicho archivo debe
existir para que no ocurra ningn error.


38

Figura 1.27 Hoja de Excel con datos exportados desde VB.NET.



1.7 Exportar datos a Word
Con Visual Basic .NET tambin es posible exportar los datos que existen en un control
de Visual Basic .NET a un archivo de Word. Para esto es necesario agregar una
referencia .NET llamada Microsoft.Office.Interop.Word en el proyecto que se est
trabajando.
1.7.1 Ejemplo de exportar datos de VB.NET a Word
Crear un proyecto llamado ExportarWord y realizar un programa que permita a un
usuario exportar los datos de un control DataGridView de Visual Basic .NET a una
tabla en un archivo de Microsoft Word.
Agregar referencia
Desde el submen proyecto seleccione la opcin Agregar referencia y busque el
nombre del componente Microsoft.Office.Interop.Word, se debera visualizar la
siguiente pantalla:

Figura 1.28 Agregar referencia .NET.
















39

Al estar seleccionado dicho componente, pulse el botn Aceptar para
incorporarlo al proyecto.

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 y 1
DataGridView.

Figura 1.29 Interfaz de usuario (ExportarWord).



















Establecer las propiedades de los objetos de la interfaz de usuario
Establezca las siguientes modificaciones a los controles:

Tabla 1.8 Propiedades de controles proyecto ExportarWord.

Control Propiedad Valor
DataGridView1 Name tabla
Button1 Name botonexportar
Text Exportar a Word
Form1 Name formulario
Text Exportar datos a Word.



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







40

Figura 1.30 Interfaz de usuario modificada (ExportarWord).















Escribir cdigo
a) Seleccione el objeto botonexportar, d doble clic para abrir el editor de cdigo
y escriba el siguiente cdigo:

Dim archivo_Word As Microsoft.Office.Interop.Word.Application
Dim Documento As Microsoft.Office.Interop.Word.Document
Dim Parrafo As Microsoft.Office.Interop.Word.Table
Dim filas As Integer
Dim columnas As Integer
Dim dato As Object
archivo_Word = New Microsoft.Office.Interop.Word.Application
archivo_Word.Visible = True
Documento = archivo_Word.Documents.Add
Parrafo = Documento.Tables.Add(Documento.Range(0, 0), tabla.RowCount + 1,
tabla.Columns.Count)
For columnas = 0 To tabla.Columns.Count - 1
arrafo.Cell(1, columnas + 1).Range.InsertAfter(tabla.Columns(columnas).HeaderText)
For filas = 0 To tabla.RowCount - 1
dato = tabla.Item(columnas, filas).Value
Parrafo.Cell(filas + 2, columnas + 1).Range.InsertAfter(dato)
Next
Next
archivo_Word = Nothing
Documento = Nothing
Parrafo = Nothing

Se definen los objetos archivo_Word de tipo Aplicacin de Word
(Word.application), Documento de tipo documento de Word
(Word.Document), Parrafo de tipo Tabla de Word (Word.Table), como
tambin se crean las variables filas y columnas de tipo Integer y dato de tipo
Object. Se asigna espacio de memoria al objeto archivo_Word de tipo
Word.Application, se hace visible un archivo de Word y se aade un nuevo
documento de Word con Word.Documents.Add. Al objeto Parrafo se le asigna
una tabla desde un rango (0,0, total_filas, total_columnas). Se ejecutan dos
ciclos For. En el ciclo externo se recorre la cantidad de columnas existentes en
el objeto DataGridView (tabla.Columns.Count - 1) y se asigna a la primera
fila en la posicin del valor de la variable columnas+1 el nombre de la columna
del objeto DataGridView utilizando el mtodo HeaderText; en el ciclo ms

41

interno se recorre cada una de las filas del objeto DataGridView y se van
asignando a la variable dato el valor de cada celda(columnas, filas) del objeto
tabla y se coloca en la celda (j, i) de la tabla de Word el valor que tiene el objeto
dato. Por ltimo se liberan todos los objetos utilizando la palabra clave Nothing
(liberar).

b) D doble clic sobre el formulario para abrir el editor del procedimiento
formulario_load y escriba el siguiente cdigo:

With tabla
.Columns.Add("Cdigo", "Cdigo")
.Columns.Add("Producto", "Producto")
.Columns.Add("Precio", "Precio")
.Columns.Add("Inventario", "Inventario actual")
.Columns.Add("Proveedor", "Nombre Proveedor")
.RowCount = 10
For i As Integer = 0 To .RowCount - 1
.Item(0, i).Value = i.ToString
.Item(1, i).Value = "Producto " & i.ToString
.Item(2, i).Value = FormatNumber(225 + i)
.Item(3, i).Value = CInt(Rnd() * 100)
.Item(4, i).Value = "Proveedor: " & i.ToString
Next
End With

Con el anterior cdigo se llena el objeto tabla con datos. Se le adicionan
cinco nombres, uno en cada columna con el mtodo Add de la propiedad
Columns y se asignan como valor inicial a la propiedad RowCount 10 filas.
Con un ciclo For que se ejecutar desde una posicin i igual a cero (0) hasta el
nmero de filas -1 del objeto tabla y por cada fila se adicionarn cinco tems. En
la primera columna el valor de i, en la segunda un texto Producto unido con
el valor de la variable i, en la tercera el valor 225 sumndole el valor de i, en la
cuarta un nmero aleatorio entre 0 y 100 y por ltimo un texto Proveedor
unido al valor de i.

Ejecutar el proyecto
Al ejecutarse el proyecto en el entorno de desarrollo de Visual Basic.NET/2008, se
visualizar el formulario con los datos que se asignaron en el procedimiento
formulario_Load, se visualizar la siguiente figura:
Figura 1.31 Formulario con datos cargados desde el load.













42

Al pulsar el botn Exportar a Word, se abrir un nuevo documento de Word y
se visualizara lo siguiente:

Figura 1.32 Ventana de Word con los datos exportados de VB.NET.



















En este momento puede seleccionar todos los datos y pulsar el icono bordes de
Word y escoger la opcin Todos los bordes para que el documento presente el
siguiente aspecto:

Figura 1.33 Tabla de Word con datos y bordes.
























43

1.8 Ejercicios de archivos

1. Realizar un programa que permita guardar 10 datos y leerlos en un archivo de
texto plano utilizando la clase File.
2. Hacer un programa que permita guardar 10 datos y leerlos en un archivo de texto
plano utilizando las clases StreamWriter y StreamReader.
3. Disear un programa que permita guardar 10 datos y leerlos en un archivo de
texto plano utilizando archivos secuenciales.
4. Escribir un programa que permita guardar 10 datos y leerlos en un archivo de
texto plano utilizando archivos binarios.
5. Crear un programa que permita importar todos los datos que existan en un
archivo de Excel y visualizarlos en un ListView.
6. Elaborar un programa que permita importar todos los datos que existan en un
archivo de Excel y visualizarlos en un ListBox.
7. Realizar un programa que permita exportar un rango de datos a una tabla de
Word.
8. Hacer un programa que permita importar los datos de un archivo de texto a un
DataGridView.
9. Crear un programa que permita exportar los datos de un control ListView a
Excel.
10. Escribir un programa que permita exportar los datos de un ListView a Word.




























44

2. BASES DE DATOS

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 (SGBD sistema de gestin de bases de datos).
Cada base de datos se compone de una o ms tablas que guardan los datos. Cada tabla
tiene una o ms columnas y filas. Las columnas guardan una parte de la informacin
sobre cada elemento que se quiere guardar en la tabla, cada fila de la tabla conforma un
registro. Un registro contiene campos que pueden ser del mismo tipo de dato o de
diferentes tipos de datos. Entre las principales caractersticas de las bases de datos se
pueden mencionar:

Independencia lgica y fsica de los datos.
Redundancia mnima.
Acceso concurrente por parte de mltiples usuarios.
Integridad de los datos.
Consultas complejas optimizadas.
Seguridad de acceso y auditora.
Respaldo y recuperacin.
Acceso a travs de lenguajes de programacin estndar.
2.1 Tipos de bases de datos
Los tipos de bases datos ms comunes son las relacionales y en el mercado existen
varios sistemas de administracin de bases de datos de ese tipo, algunos son: SQL
Server, Access, Oracle, MySQL, PostgresSQL, etc.
2.1.1 Relacionales
Son las que ms se utilizan. Las bases de datos relacionales son un conjunto de tablas
relacionadas entre s, cada tabla est definida por una serie de campos. Los campos
forman las columnas de las tablas; estos definen el tipo y la variedad de los datos. Las
filas de datos se denominan registros (tuplas), cada tipo definido en un registro se le
denomina atributo. Las tablas pertenecientes a una base de datos pueden relacionarse
entre s utilizando campos clave comunes entre las tablas.
2.1.2 Orientada a objetos
El esquema de una base de datos por objetos est representado por un conjunto de clases
que definen las caractersticas y el comportamiento de los objetos que poblarn la base
de datos. Con una base de datos orientada a objetos, los objetos memorizados en la base
de datos contienen tanto los datos como las operaciones posibles con tales datos. En
cierto sentido, se podr pensar en los objetos como en datos a los que se les ha puesto
una inyeccin de inteligencia que les permite saber cmo comportarse, sin tener que
apoyarse en aplicaciones externas.
2.2 Lenguaje de Consulta Estructurado (S.Q.L.)
Es un lenguaje de base de datos normalizado, utilizado por los diferentes motores de
bases de datos para realizar determinadas operaciones sobre los datos o sobre la
45

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 y manipular las bases de datos.
2.2.1 Comandos
Existen dos tipos de comandos SQL:
DLL que permiten crear y definir nuevas bases de datos, tablas, campos e ndices.
DML que permiten generar consultas para ordenar, filtrar y extraer datos de la base de
datos.
Tabla 2.1 Comandos DLL y DML de SQL.
Comandos DLL
Comando Descripcin
CREATE Utilizado para crear nuevas bases de datos, tablas, campos e ndices.
DROP Empleado para eliminar bases de datos, tablas e ndices.
ALTER
Utilizado para modificar las tablas agregando campos o cambiando la
definicin de los campos.
Comandos DML
SELECT
Utilizado para consultar registros de la base de datos que satisfagan un
criterio determinado.
INSERT
Utilizado para cargar lotes de datos en la base de datos en una nica
operacin.
UPDATE Utilizado para modificar los valores de los campos y registros especficados.
DELETE Utilizado para eliminar registros de una tabla de una base de datos.

2.2.2 Clusulas
Las clusulas son condiciones de modificacin utilizadas para definir los datos que se
desea seleccionar o manipular.
Tabla 2.2 Clusulas SQL.

Clusula Descripcin
FROM Para especficar la tabla de la cual se van a seleccionar los registros.
WHERE
Para especficar las condiciones que deben reunir los registros a
seleccionar.
GROUP BY Utilizada para separar los registros seleccionados en grupos especficos.
HAVING Utilizada para expresar la condicin que debe satisfacer cada grupo.
ORDER BY Para ordenar los registros seleccionados.


46

2.2.3 Operadores lgicos
Los operadores lgicos comprueban la veracidad de alguna condicin. stos devuelven
el tipo de datos Boolean con el valor TRUE o FALSE.
Tabla 2.3 Operadores lgicos SQL.

Operador Uso
AND
Es el "y" lgico. Evala dos condiciones y devuelve un valor de
verdad slo si ambas son ciertas.
OR
Es el "o" lgico. 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 Utilizado para especficar un intervalo de valores.
LIKE Utilizado en la comparacin de un patrn.
IN Utilizado para especficar registros de una base de datos.
ALL Devuelve True si el conjunto de comparaciones en verdad.

2.2.4 Operadores de Comparacin

Los operadores de comparacin comprueban si dos expresiones son iguales,
devolviendo un valor booleano True o False. Se pueden utilizar en todas las
expresiones excepto en las de los tipos de datos text, ntext o image.

Tabla 2.4 Operadores de comparacin SQL.

Operador Uso
< Menor que
> Mayor que
<> Distinto de
<= Menor o igual que
>= Mayor o igual que
= Igual que

2.2.5 Funciones de agregado

Las funciones de agregado realizan un clculo sobre un conjunto de valores y devuelven
un solo valor. Si exceptuamos la funcin COUNT, todas las funciones de agregado
ignoran los valores NULL. Las funciones de agregado se suelen utilizar con la clusula
GROUP BY de la instruccin SELECT.

47

Tabla 2.5 Funciones de agregado SQL.

Funcin Descripcin
AVG
Utilizada para calcular el promedio de los valores de un campo
determinado.
COUNT Utilizada para devolver el nmero de registros de la seleccin.
SUM
Utilizada para devolver la suma de todos los valores de un campo
determinado.
MAX Utilizada para devolver el valor ms alto de un campo especficado.
MIN
Utilizada para devolver el valor ms bajo de un campo
especficado.

2.3 Sentencias Bsicas SQL
Se describir muy brevemente algunas de las sentencias SQL para la manipulacin de
los datos de una tabla. Para trabajar las sentencias a continuacin, se supondr que se
tiene creada una tabla llamada usuarios con la siguiente estructura:

Tabla 2.6 Estructura de los campos de la tabla USUARIOS.

Campo Tipo de Dato Longitud
identificacion varchar 15
nombres varchar 20
apellidos varchar 20
direccin varchar 25
telfono varchar 20
ciudad_nac varchar 20
fecha_nac date

Y que contiene la siguiente informacin:

Tabla 2.7 Informacin de la tabla usuarios.

Identificacin Nombres Apellidos Direccin Telfono Ciudad_nac Fecha_nac
100 Carlos Romero Cra 7 # 20-10 4152584 Bogota 01/02/1980
101 Mara Castro Calle 25 # 25-10 3692581 Cali 15/03/1984
112 Jos Pelez Av. 35 # 32-45 1234567 Medelln 20/05/1960
114 Cristian Vanegas Cra 7 # 29-58 9874561 Manizales 31/08/1974
116 Rosa Cetina Calle 17 # 21-14 3571596 Buga 15/12/1985
118 Andrs Vanegas Tranvs 48 # 22-10 8527419 Bogot 10/04/1978
130 Anglica Morales Cra 68 # 21-11 6549518 Medelln 20/06/1981
150 Johana Duarte Cra 2 # 45-38 9637534 Bogot 12/06/1988
170 Mario Vargas Calle 1 # 99-18 6598743 Medelln 28/08/1980

2.3.1 CREATE DATABASE
El comando CREATE DATABASE permite crear una base de datos. Su formato es:

CREATE DATABASE <nombre_base_de_datos)

48

2.3.2 DROP DATABASE
El comando DROP DATABASE permite eliminar una base de datos que previamente
se haba creado. Su formato es:

DROP DATABASE <nombre_base_de_datos_a_eliminar>
2.3.3 CREATE TABLE
El comando CREATE TABLE permite crear una tabla. Con este comando se
especfica el nombre de la tabla, las columnas y sus tipos de datos, las claves primarias
y si es necesario, la 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).
2.3.4 DROP TABLE
El comando DROP TABLE permite eliminar una tabla que previamente se haba
creado. Su formato es:

DROP TABLE nombre_tabla
2.3.5 INSERT
La sentencia SQL de insercin de datos INSERT permite insertar informacin en una
tabla. Su formato es:

INSERT INTO nombre_tabla (campo1, campo2,.) VALUES (valor1, valor2,.)

Para insertar un nuevo registro a la tabla usuarios se debera realizar la siguiente
sentencia:

INSERT INTO usuarios (identificacin, nombres, apellidos, direccin, telfono, ciudad_nac,
fecha_nac) VALUES ( 160, Carmen, Bolvar, Calle 100 # 115-55,2014201, Barranquilla,
18/11/1692)
2.3.6 ALTER
La sentencia 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 credito de tipo
numrico se debera realizar la siguiente sentencia:

ALTER TABLE usuarios ADD credito numeric (18,0)

49

2.3.7 SELECT
La sentencia SQL que ms se utiliza es la instruccin de seleccin SELECT. Como su
nombre lo indica, es una instruccin que permite seleccionar informacin 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 menor o igual a 116, se
debe utilizar la clusula WHERE que especfica las condiciones que deben
reunir los registros que se van a seleccionar.

SELECT * FROM usuarios WHERE identificacin<=116

d) Si se desea obtener los registros cuyos nombres sean Andrs o Cristian, se debe
utilizar el operador IN que especfica los registros que se quieren visualizar de
una tabla.

SELECT nombres FROM usuarios WHERE nombres IN (Andres,Cristian)

O se puede utilizar el operador OR

SELECT * FROM usuarios WHERE nombres=Andrs OR nombres=Cristian

e) Si se desea obtener los registros cuya identificacin sea menor de 130 y la
ciudad sea Bogota, se debe utilizar el operador AND.

SELECT * FROM usuarios WHERE identificacin<=130 AND ciudad=Bogota

f) Si se desea obtener los registros cuyos nombres empiecen por la letra C, se
debe utilizar el operador LIKE que utiliza los patrones % (todos) y _
(carcter).

SELECT * FROM usuarios WHERE nombres LIKE C%

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

SELECT * FROM usuarios WHERE nombres LIKE %i%

h) Si se desea obtener los registros donde la segunda letra del nombre sea una o.
50

SELECT * FROM usuarios WHERE nombres LIKE _o%

i) Si se desea obtener los registros cuya identificacin est entre el intervalo 116 y
140, se debe utilizar la clusula BETWEEN, que sirve para especficar un
intervalo de valores.

SELECT * FROM usuarios WHERE identificacin BETWEEN 116 AND 140
2.3.8 DELETE
La sentencia SQL de eliminacin de datos DELETE permite borrar todos o un grupo
especfico 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 150.

DELETE FROM usuarios WHERE identificacin >150

c) Para eliminar los registros diferentes del nombre Cristian

DELETE FROM usuarios WHERE nombres NOT IN (Cristian)
2.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=criterio

A continuacin se realizan algunos ejemplos:

a) Para actualizar el campo credito con un valor de 100000 en la tabla usuarios.

UPDATE usuarios SET credito=100000

b) Para actualizar el campo credito en 200000 para los registros cuyo nombre
empiecen por A.

UPDATE usuarios SET credito=credito +200000 WHERE nombres LIKE A%

c) Para actualizar el campo credito en 50000 para los registros cuya ciudad sea
igual a Bogota.

UPDATE usuarios SET credito=credito+50000 WHERE ciudad=Bogota

51

2.3.10 INNER JOIN
Permite recuperar datos de 2 o ms tablas. Cuando se realiza la concatenacin de las
tablas, no necesariamente se deben mostrar todos los datos de las tablas, o sea, se
pueden mostrar los campos que en realidad se desea ver. Su formato es:
SELECT tabla1.campo, tabla2.campo, tabla1.campo2,. FROM tablaprincipal
INNER JOIN tablasecundaria ON campocomuntabla1=campocomuntabla2
Para realizar algunos ejemplos explicativos se utilizara la tabla usuarios y
adems se supondr que se tiene otra tabla llamada pedidos, que contendr la siguiente
estructura:
Tabla 2.8 Estructura de los campos de la tabla USUARIOS.

Campo Tipo de Dato Longitud
nropedido varchar 15
identificacion varchar 15
fechacompra date 20
fechavence date 25
observacon varchar 30

Y que contiene la siguiente informacin:

Tabla 2.9 Informacin de la tabla usuarios.

nropedido Identificacin fechacompra fechavence observacon
10 100 01/02/2006 01/02/2006 Pago de contado
20 101 15/03/2006 15/03/2006 Descuento del 5%
30 100 20/05/2006 20/06/2006 Descuento del 2%
40 112 31/08/2006 31/10/2006 Pago a sesenta das
50 101 15/12/2006 30/12/2006 Pago de contado
60 118 10/04/2006 10/06/2006 Sin descuento
70 101 20/06/2006 20/07/2006 Descuento del 5%
80 100 12/06/2006 12/09/2006 Pago a noventa das
90 101 28/08/2006 28/09/2006 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, usuarios.apellidos,
pedidos.nropedido, pedidos.fechacompra, pedidos.fechavence,
pedidos.observacon
FROM usuarios INNER JOIN pedidos
ON usuarios.identificacion = pedidos.identificacion

b) Para visualizar todos campos de las tablas usuarios y pedidos donde
identificacin sea igual a 100, se debe realizar la siguiente instruccin:

SELECT usuarios.*, pedidos.*
FROM usuarios INNER JOIN pedidos
ON usuarios.identificacion = pedidos.identificacion
WHERE usuarios.identificacion=100

52

2.4 Conexin a bases de datos
Visual Basic .NET utiliza la tecnologa ADO.NET que permite el acceso a bases de
datos mediante proveedores para sistemas 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. Las aplicaciones para usuarios
que comparten datos pueden utilizar ADO.NET para conectar a estos 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 un cdigo que utiliza el espacio de nombres System.Data se hace referencia a
dichos archivos. Estas clases sirven para separar el acceso a la base de datos y la
manipulacin de los mismos.

Sus principales clases son:

DataSet: Es el conjunto de datos donde se pueden incluir una o ms tablas con
la informacin acerca de las relaciones entre stas, y las restricciones que
puedan tener los datos.
DataTable: Permite la manipulacin de los datos en la memoria y realiza
operaciones como exploracin, ordenacin, edicin, aplicacin de filtros,
creacin de vistas, 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 de una
base de datos. Se utiliza SqlCommand para una conexin a SQL Server,
OleDbCommand para una conexin a Access y OracleCommand para Oracle.
DataAdapter: Es el 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.

2.5 Ejemplos de conexin a bases de datos

2.5.1 Conexin a una base de datos de SQL Server
Dentro de un proyecto llamado ConexionBDSQLSERVER, realizar un programa que
permita a un usuario hacer una conexin a una base de datos de SQL Server y mostrar
53

los datos de una tabla en un objeto DataGridView, utilizando cdigo de Visual Basic
.NET.
NOTA: para este ejemplo el usuario debe tener instalado Microsoft SQL SERVER
2005 o posterior y crear una base de datos llamada bdlibrovbnet (Ver anexo C, SQL
Server) y dentro de ella una tabla llamada clientes, con la siguiente estructura:
Figura 2.1 Estructura tabla clientes en SQL Server.


Dicha tabla debe contener unos registros para poder consultarlos. La siguiente
figura muestra el aspecto de la tabla con los datos:

Figura 2.2 Tabla clientes con datos 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, 1 Label y 1
DataGridView.







54

Figura 2.3 Interfaz de usuario (ConexionBDSQLSERVER).















Establecer las propiedades de los objetos de la interfaz de usuario

Establezca las siguientes modificaciones a los controles:

Tabla 2.10 Propiedades de controles proyecto ConexionBDSQLSERVER.

Nombre del proyecto: ConexionBDSQLSERVER
Control Propiedad Valor
DataGridView1 Name tabla
Button1 Name boton
Text Mostrar datos tabla
Label1 Name titulo
Text Conexin a una base de datos de SQL
SERVER.
Font True
Form1 Name formulario
Text Conexin BD SQL SERVER - Clientes.


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

Figura 2.4 Interfaz de usuario modificada (ConexionBDSQLSERVER).















55

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 boton, 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 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 localhost o como
direccin IP 127.0.0.1.
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 todos los datos 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
56

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 tabla 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 Mostrar datos tabla, se visualizar el
formulario con los datos de la tabla clientes de SQL Server:

Figura 2.5 Formulario con datos de la tabla clientes de SQL Server.

















2.5.2 Conexin a una base de datos de ACCESS
Crear un proyecto llamado ConexionBDACCESS y disear un programa que permita a
un usuario realizar una conexin a una base de datos de ACCESS y mostrar los datos de
una tabla en un objeto DataGridView, utilizando cdigo de Visual Basic .NET.
NOTA: para este ejemplo el usuario debe tener instalado Microsoft Access y crear una
base de datos llamada bdaccesslibrovbnet y dentro de ella una tabla llamada clientes
(bsque en Internet cmo crear una base de datos y una tabla en Microsoft Access), con
la siguiente estructura:
Figura 2.6 Estructura tabla clientes en Access.







57

Dicha tabla debe contener unos registros para poder consultarlos. La siguiente
figura muestra el aspecto de la tabla con los datos:

Figura 2.7 Tabla clientes con datos en Access.


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 Label y 1
DataGridView.

Figura 2.8 Interfaz de usuario (ConexionBDACCESS).
















Establecer las propiedades de los objetos de la interfaz de usuario
Establezca las siguientes modificaciones a los controles:

Tabla 2.11 Propiedades de controles proyecto ConexionBDACCESS.

Control Propiedad Valor
DataGridView1 Name tabla
Button1 Name boton
Text mostrar datos tabla
Label1 Name titulo
Text Conexin a una base de datos de
ACCESS.
Font True
Form1 Name formulario
Text Conexin a ACCESS tabla Clientes.


58

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

Figura 2.9 Interfaz de usuario modificada (ConexionBDACCESS).
















Escribir cdigo

a) Antes de la apertura de la clase formulario se debe importar el espacio de
nombres system.data.OleDb:

Imports System.Data.OleDb
Public Class Form1
.

End Class

El espacio de nombres System.Data.OleDb es necesario para utilizar las
diferentes clases que permitan las operaciones con la base de datos Access.


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

Dim conexion As String
conexion = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" &
"f:\bdaccess\bdaccesslibrovbnet.mdb" & ";"
Dim seleccion As String = "SELECT * FROM clientes"
Dim adaptadordedatos As OleDbDataAdapter
Dim tabladedatos As New DataTable
Try
adaptadordedatos = New OleDbDataAdapter(seleccion, conexion)
adaptadordedatos.Fill(tabladedatos)
tabla.DataSource = tabladedatos
Catch ex As Exception
MsgBox("Error: " & ex.Message)
End Try


59

Con relacin al cdigo que se realiz para conectarse a la base de datos SQL
Server, se efectuarn dos cambios, a saber:

1) Cadena de conexin: Dicha conexin debe contener como mnimo los
siguientes parmetros:
Provider: Es el proveedor del sistema administrador de bases de
datos, en este caso es Microsoft.Jet.OLEDB.4.0, el cual es el
proveedor de la base de datos Access.
Data Source: Se especfica la ruta y el nombre de la base de datos a
utilizar.

2) Adaptador de datos: se cambia el adaptador de datos SqlDataAdapter por
OleDBDataAdapter.


Ejecutar el proyecto

Al ejecutarse el proyecto y pulsar el botn mostrar datos tabla, se visualizar el
formulario con los datos de la tabla clientes de Access:

Figura 2.10 Formulario con datos de la tabla clientes de Access.
















2.5.3 Conexin a una base de datos de ORACLE con cdigo
Realizar un proyecto llamado ConexionBDORACLE, y desde all permitir a un
usuario realizar una conexin a una base de datos de Oracle 10g Express Edition y
mostrar los datos de una tabla en un objeto DataGridView.
NOTA: para este ejemplo el usuario debe tener instalada la base de datos Oracle 10g
Express Edition (Ver anexo D, Oracle Database 10g Express), e ingresar con el

60

usuario y clave creados cuando se realiza la instalacin del Oracle y crear una tabla
llamada clientes, con la siguiente estructura:
Figura 2.11 Estructura tabla clientes en Oracle.




Dicha tabla debe contener unos registros para poder consultarlos. La siguiente
figura muestra el aspecto de la tabla con los datos en Oracle:

Figura 2.12 Tabla clientes con datos en Oracle.




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 Label y 1
DataGridView.




61

Figura 2.13 Interfaz de usuario (ConexionBDORACLE).
















Establecer las propiedades de los objetos de la interfaz de usuario
Establezca las siguientes modificaciones a los controles:

Tabla 2.12 Propiedades de controles proyecto ConexionBDORACLE.

Control Propiedad Valor
DataGridView1 Name tabla
Button1 Name boton
Text Mostrar datos tabla
Label1 Name titulo
Text Conexin a una Base de Datos de
ORACLE.
Font True
Form1 Name formulario
Text Conexin a ORACLE tabla Clientes.

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

Figura 2.14 Interfaz de usuario modificada (ConexionBDORACLE).

















62

Escribir cdigo

a) Antes de la apertura de la clase formulario se debe importar el espacio de
nombres System.Data.OleDb:

Imports System.Data.OleDb
Public Class Form1
.

End Class

El espacio de nombres System.Data.OleDb es necesario para utilizar las diferentes
clases que permitan las operaciones con una base de datos Oracle.

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

Dim conexion As String
conexion = "Provider=MSDAORA.1;User ID=system;password=123456;" &
"Data Source=localhost;Persist Security Info=False"
Dim seleccion As String = "SELECT * FROM clientes"
Dim adaptadordedatos As OleDbDataAdapter
Dim tabladedatos As New DataTable
Try
adaptadordedatos = New OleDbDataAdapter(seleccion, conexion)
adaptadordedatos.Fill(tabladedatos)
tabla.DataSource = tabladedatos
Catch ex As Exception
MsgBox("Error: " & ex.Message)
End Try

Con relacin al cdigo que se realizo para conectarse a la base de datos
ACCESS, se hizo solamente el cambio de la cadena de conexin. Dicha conexin
debe contener como mnimo los siguientes parmetros:

Provider: Es el proveedor del sistema administrador de bases de
datos, en este caso es MSDORA.1, el cual es el proveedor de la base
de datos ORACLE.
User: es la identificacin del usuario y su respectiva clave.
Data Source: Se le especfica la direccin del servidor donde se
encuentra la base de datos a utilizar.
Persist Security Info: Se le asigna true o false para determinar si la
seguridad es persistente o no.


Ejecutar el proyecto

Al ejecutarse el proyecto y pulsar el botn Mostrar datos tabla, se visualizar el
formulario con los datos de la tabla clientes de Oracle:




63

Figura 2.15 Formulario con datos de la tabla clientes de Oracle.


















2.6 Conexin a una bases de datos con el explorador de servidores
Tambin es posible establecer una conexin y realizar operaciones con una base de
datos utilizando la herramienta Explorador de servidores (explorador de bases de
datos Visual Basic .NET /2005) del men Ver, el cual tiene asociados las opciones:
Actualizar, Detener Actualizacin, Conectar con Base de Datos y Conectar con el
Servidor. Esta herramienta mantiene las conexiones definidas y/o permite definir
nuevas. Cada conexin define un nodo con la estructura de la base de datos.
2.6.1 Conexin a SQL Server con el Explorador de servidores
Dentro de un proyecto llamado ConexionConExploradorServidores, realizar un
programa que permita a un usuario hacer una conexin a una base de datos de SQL
Server y mostrar los datos de una tabla en un objeto DataGridView utilizando el
Explorador de servidores de Visual Basic. NET.
NOTA: para este ejemplo se utilizar la base de datos llamada bdlibrovbnet de SQL
Server (Ver anexo C, conectarse a SQL Server) y la tabla llamada clientes de dicha
base de datos.
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.





64

Figura 2.16 Interfaz de usuario (ConexionConExploradordeServidores).















Establecer las propiedades de los objetos de la interfaz de usuario
Establezca las siguientes modificaciones a los controles:

Tabla 2.13 Propiedades de los controles de ConexionConExploradordeServidores

Control Propiedad Valor
DataGridView1 Name tabla
Label1 Name texto
Text Conexin a SQL Server con el
Explorador de servidores.
Font True
Form1 Name formulario
Text Conexin con Explorador de servidores.

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

Figura 2.17 Interfaz de usuario con controles modificados.



















65

Explorador de servidores..

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

Figura 2.18 Ventana Explorador de servidores.



Al pulsar el icono conectar con bases de datos , se visualizar la ventana de
Agregar conexin como muestra la figura:

Figura 2.19 Ventana Agregar conexin.






















66

En esta ventana se puede realizar bsicamente lo siguiente:

Elegir proveedor base de datos: se puede cambiar el proveedor de la base de
datos. Por omisin se carga 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.

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 realiz en c:\ la ruta sera:
C:\Archivos de programa\Microsoft SQL Server\MSSQL.1\MSSQL\Data. Si desea
puede probar la conexin y si fue exitosa se mostrar el mensaje La conexin de
prueba se realiz correctamente.

Figura 2.20 Ventana con la base de datos seleccionada y la prueba de conexin.














Pulse los botones Aceptar hasta visualizar la siguiente figura:

Figura 2.21 Explorador de servidor con la conexin a la base de datos.





67

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 2.22 Estructura de la base de datos bdlibrovbnet.mdf.












Ahora seleccione el objeto DataGridView llamado tabla y en la flecha que
aparece en el lado superior derecho, d clic en el mouse para visualizar las Tareas de
DataGridView:

Figura 2.23 Ventana de las Tareas del DataGridView.













Seleccione la opcin Elegir origen de datos, para visualizar la siguiente figura:

Figura 2.24 Ventana Elegir origen de datos.














68

Ahora seleccione la opcin Agregar origen de datos del proyecto, se
visualizar la siguiente ventana:

Figura 2.24 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. Pulse la ventana y seleccione la base de
datos bdlibrovbnet.mdf:

Figura 2.25 Ventana Elegir la conexin de datos.














Al seleccionar la base de datos que se va a trabajar y pulsando el botn
Siguiente> se visualiza el siguiente mensaje:

Figura 2.26 Ventana Microsoft Visual Studio.










69

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 2.27 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 2.28 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 figura:







70

Figura 2.29 DataGridView con los campos de la tabla clientes.




Como se puede apreciar, se crearon tres nuevos objetos: el objeto conjuntodedatos
que contendr los datos seleccionados, el objeto ClientesBindingSource que en su
propiedad DataSource se le asignar el objeto conjuntodedatos 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 2.30 DataGridView con los datos de la tabla clientes de SQL Server.



















71

2.7 Ejercicios de conexin a bases de datos
1. Disear un programa que permita realizar una conexin a una base de datos y
mostrar datos de una tabla en un control ComboBox.
2. Crear un programa que permita realizar una conexin a una base de datos y
mostrar datos de una tabla en un control ListView.
3. Realizar un programa que permita realizar una conexin a una base de datos y
mostrar datos de una tabla en un control ListBox.
4. Elaborar un programa que permita realizar una conexin a una base de datos y
mostrar los datos de una tabla en un campo de texto.
5. Realizar un programa que permita realizar una conexin a una base de datos y
mostrar los campos de una tabla en un Label.
6. Hacer un programa que permita realizar una conexin a una base de datos
MySQL y mostrar datos de una tabla en una cuadrcula.
7. Disear un programa que permita realizar una conexin a una base de datos en
Oracle utilizando la herramienta explorador de servidores y mostrar los datos de
una tabla en campos de texto.
8. Crear un programa que permita realizar una conexin a una base de datos en
Access utilizando la herramienta explorador de servidores y mostrar los datos de
una tabla en Label.
9. Elaborar un programa que permita realizar una conexin a una base de datos en
MySQL y mostrar los datos de una tabla en un ListBox.
10. Realizar un programa que permita hacer una conexin a una base de datos en
MySQL y mostrar los datos de una tabla en un control ListView.












72

3. DESPLAZAMIENTO POR LOS REGISTROS DE UNA TABLA
Hasta el momento con los ejemplos se ha realizado una conexin a una base de datos ya
sea utilizando cdigo o por medio de la herramienta Explorador de servidores y
recurriendo al control DataGridView, visualizndose los registros de una tabla
especfica. Ahora lo que se pretende es que el usuario, aparte de visualizar la
informacin que contenga una tabla, tambin pueda desplazar o moverse por cada uno
de los registros que contenga dicha tabla. Est operacin la podr realizar en un
formulario utilizando campos de texto (TextBox) o una cuadrcula (DataGridView) y
poder desplazarse por cada uno de los registros por medio de botones (Button) o de un
control BindingNavigator. Para esto es necesario implementar las opciones de
movimiento de registros: ir al primer registro, al siguiente registro, al anterior registro y
al ltimo registro.

3.1 Ejemplos de desplazamiento por los registros de una tabla

3.1.1 Formulario con campos de texto y botones

Dentro de un proyecto llamado MovregCampotexto, realizar un programa que
permita visualizar cada registro de la tabla clientes de la base de datos
bdlibrovbnet.mdf de SQL Server en campos de texto. El usuario deber poder
desplazarse por cada registro de la tabla utilizando los botones: Primero, Siguiente,
Anterior y ltimo.

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: 4 Button, 7 Label y 6
TextBox.

Figura 3.1 Interfaz de usuario (MovRegCampoTexto).










73

Establecer las propiedades de los objetos de la interfaz de usuario
Establezca las siguientes modificaciones a los controles:

Tabla 3.1 Propiedades de controles proyecto MovRegCampoTexto.

Nombre del proyecto: MovRegCampoTexto
Control Propiedad Valor
Label1 Name texto
Text Desplazamiento registros tabla
clientes.
Font true
Label2 Name tnit
Text Nit:
Label3 Name tempresa
Text Empresa:
Label4 Name trepresentante
Text Representante:
Label5 Name tdireccion
Text Direccin:
Label6 Name ttelefono
Text Telfono:
Label7 Name tciudad
Text ciudad
Textobox1Textbox6 Name campo1.campo6
Text blanco
Button1 Name botonprimero
Text Primero
Button2 Name botonsiguiente
Text Siguiente
Button3 Name botonanterior
Text Anterior
Button4 Name botonltimo
Text ltimo
Form1 Name formulario
Text Desplazamiento de Registros de
una tabla.

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

Figura 3.2 Interfaz de usuario modificada (MovRegCampoTexto).















74

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 3.3 Ventana Elegir la conexin de datos




















D clic en el botn Nueva Conexin. En la ventana que se visualiza elija como
origen de datos Microsoft SQL Server y la base de datos bdlibrovbnet.

Figura 3.4 Ventana Agregar conexin.


















Pulse el botn Aceptar, para visualizar nuevamente la ventana de Elegir la
conexin de datos. All pulse Siguiente> para visualizar el siguiente mensaje:





75

Figura 3.5 Ventana Microsoft Visual Studio.








Pulse el botn S para copiar el archivo de datos en la carpeta en donde guard el
proyecto. El Explorador de soluciones visualizara la base de datos como muestra la
figura:

Figura 3.6 Ventana Explorador de soluciones.














Y tambin se visualizar la ventana de eleccin de tipo de comando:

Figura 3.7 Ventana eleccin tipo de comando.










Por omisin est seleccionada la opcin Usar Instrucciones SQL. Pulse
Siguiente> para visualizar la ventana de generacin de instrucciones SQL.



76

Figura 3.8 Ventana Generar las instrucciones SQL.









Aqu se puede realizar la seleccin de los datos que debera cargar el adaptador
de datos. Una forma es escribir 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 3.9 Ventana Generador de consultas.









Seleccione la tabla clientes, pulse el botn Agregar y luego el botn Cerrar, se
visualizar la siguiente figura:





77

Figura 3.10 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 3.11 Generador de consultas con los campos seleccionados (tabla clientes).






















Pulse el botn Aceptar, y se visualizar la siguiente figura:


78

Figura 3.12 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 adaptadordedatos y
conexion respectivamente, para ver la siguiente figura:

Figura 3.13 Formulario con los objetos adaptadordedatos y conexin.



















Ahora ejecute la opcin Generar Conjunto de Datos del men Datos y se
mostrar el siguiente cuadro de dilogo:






79

Figura 3.14 Ventana Generar conjunto de datos.

















Seleccione la opcin Nuevo y cambie el nombre DataSet1 por conjuntodedatos
y pulse el botn Aceptar para agregar el conjunto de datos a la aplicacin, como
muestra la figura:

Figura 3.15 Formulario con el objeto conjuntodedatos.



















Ahora se deben vincular los campos de texto con los campos de la tabla clientes.
Seleccione el objeto campo1, busque la propiedad DataBindings, expanda el nodo (+),
seleccione la propiedad Text y expanda los nodos formulario instancias de lista,
conjuntodedatos, clientes y seleccione el campo nit, como se aprecia en la figura:






80

Figura 3.16 Vinculacin del campo nit al objeto campo1.












Realice el paso anterior para cada objeto TextBox (campo2campo6)
asignndole un campo respectivamente de la tabla clientes. Al finalizar d doble clic
sobre el formulario para visualizar el procedimiento formulario_load y all digite el
siguiente cdigo:

conjuntodedatos.Clear()
adaptadordedatos.Fill(conjuntodedatos)

En el anterior cdigo primero se limpia el conjunto de datos actual utilizando el
metodo clear y luego se llama al mtodo fill (rellenar) del adaptador de datos,
pasandole como argumento el conjunto de datos que se desea visualizar. Al ejecutar la
aplicacin se muestra algo similar a la figura 3.17:

Figura 3.17 Visualizacin del primer registro de la tabla clientes.

















Como se puede apreciar, solamente se visualiza el primer registro de la tabla
clientes. Para poder ver cada uno de los registros de la tabla se debe realizar el cdigo
para los botones: Primero, Siguiente, Anterior, ltimo.

Escribir cdigo para los botones

a) Seleccione el objeto botonprimero, d doble clic para abrir el editor de cdigo y


81

escriba el siguiente cdigo:

BindingContext(conjuntodedatos, "clientes").Position = 0

Se utiliza el objeto BindingContext de la clase Form que recibe el
conjunto de datos y el nombre de la tabla. Con la propiedad Position se realiza
el desplazamiento de los registros de la tabla, en este caso, la posicion es igual a
cero (0) lo que indica que el cursor de la tabla estara en el primer registro.

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

BindingContext(conjuntodedatos, "clientes").Position += 1

La propiedad Position se incrementa en uno para desplazarse al siguiente
registro.

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

BindingContext(conjuntodedatos, "clientes").Position -= 1

La propiedad Position se decrementa en uno para desplazarse al anterior
registro.

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

BindingContext(conjuntodedatos, "clientes").Position = _
BindingContext(conjuntodedatos, "clientes").Count - 1

La propiedad Position se hace igual al nmero de registros 1. Se utiliza
el mtodo count para contar los registros de la tabla clientes.

Al volver a ejecutar la aplicacin, y cuando el usuario pulse cada uno de los
botones se podr desplazar por cada uno de los registros de la tabla clientes.

Figura 3.18 Desplazamiento por los registros de la tabla clientes.









82

3.1.2 Formulario con una cuadrcula y botones

Disear de un proyecto llamado MovregDataGridView, y realizar un programa que
permita visualizar cada registro de la tabla clientes de la base de datos
bdlibrovbnet.mdf de SQL Server en una cuadrcula. El usuario deber poder
desplazarse por cada registro de la tabla utilizando los botones: Primero, Siguiente,
Anterior y ltimo.

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: 4 Button, 1
DataGridView.

Figura 3.19 Interfaz de usuario (MovRegDataGridView).







Establecer las propiedades de los objetos de la interfaz de usuario
Establezca las siguientes modificaciones a los controles:

Tabla 3.2 Propiedades de controles proyecto MovRegDataGridView.

Nombre del proyecto: MovRegDataGridView
Control Propiedad Valor
DataGridView1 Name tabla
Button1 Name botonprimero
Text Primero
Button2 Name botonsiguiente
Text Siguiente
Button3 Name botonanterior
Text Anterior
Button4 Name botonltimo
Text ltimo
Form1 Name formulario
Text Desplazamiento de Registros en un
DataGridView.

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

83

Figura 3.20 Interfaz de usuario modificada (MovRegDataGridView).









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

Private transaccion As New BindingSource
Private adaptador As SqlDataAdapter
Dim conexion As String = "Data Source=(local)\SQLEXPRESS;Database=bdlibrovbnet;
Integrated Security=True"

Se inicializan los siguientes objetos: transaccin de tipo BindingSource
para encapsular y manipular el origen de los datos; adaptador de tipo
SqlDataAdapter para intercambiar datos con una base de datos SQL Server;
conexin 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 del
procedimiento formulario_ Load y escriba el siguiente cdigo:


84

tabla.dataSource = transaccion
Dim seleccion As String = "Select * From clientes"
Try
adaptador = New SqlDataAdapter(seleccion, 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

A la propiedad DataSource del objeto tabla se le establece el origen de
datos (transaccion) y se crea una variable llamada seleccion de tipo String a la
cual se le asigna la instruccin de SQL Select. En un bloque try se le asigna
espacio de memoria de tipo SqlDataAdapter al objeto adaptador recibiendo
los datos seleccionados (seleccion) y la cadena de conexin a SQL Server
(conexion), como tambin se concede espacio de memoria al objeto
tabladedatos de tipo DataTable. Luego se rellena (fill) el adaptador de datos
(adaptador) con la tabla de datos (tabladedatos) y se asigna al objeto
transaccin la tabla de datos utilizando la propiedad DataSource. Por otro lado
se refresca (Refresh ()) la cuadrcula para cargar los datos y se obtiene la
posicin del primer registro de la cuadrcula
(FirstDisplayedScrollingRowIndex = transaccion.Position). Utilizando dos
bloques catch se atrapan las excepciones SQLException (por si existe algn
error en la ejecucin de las sentencias SQL) y Exception (por si existe algn
problema con el sistema).

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

transaccion.MoveFirst()

Se utiliza el mtodo MoveFirst() del objeto transaccion para moverse al
primer registro de la tabla.

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

transaccion.MoveNext()

Se utiliza el mtodo MoveNext() del objeto transaccion para moverse al
siguiente registro de la tabla.

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

transaccion.MovePrevious()

85

Se utiliza el mtodo MovePrevious() del objeto transaccion para
moverse al anterior registro de la tabla.

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

transaccion.MoveLast()

Se utiliza el mtodo MoveLast del objeto transaccion para moverse al
ltimo registro de la tabla.

Ejecutar el proyecto

Al ejecutarse el proyecto, se visualizar el formulario con los datos en el objeto
DataGridView de la tabla clientes de SQL Server y los botones de desplazamiento. El
usuario podr pulsar cualquier botn y se desplazara por cada registro de la tabla en la
cuadrcula.

Figura 3.21 Formulario con un DataGridView y botones de desplazamiento.








3.1.3 Formulario con una cuadrcula y un control BindingNavigator

Disear de un proyecto llamado MovregBindingNavigator y realizar un programa que
permita visualizar cada registro de la tabla clientes de la base de datos
bdlibrovbnet.mdf de SQL Server en una cuadrcula. El usuario deber poder
desplazarse por cada registro de la tabla utilizando un control BindingNavigator.

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 BindingNavigator, 1
DataGridView.


86

Figura 3.22 Interfaz de usuario (MovRegBindingNavigator).








Establecer las propiedades de los objetos de la interfaz de usuario
Establezca las siguientes modificaciones a los controles:

Tabla 3.3 Propiedades de controles proyecto MovRegDataGridView.

Control Propiedad Valor
DataGridView1 Name tabla
BindingNavigator1 Name navegador
Form1 Name formulario
Text Desplazamiento de Registros en un
BindingNavigator.

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

Figura 3.23 Interfaz de usuario modificada (MovRegDataGridView).










87

Ahora seleccione el objeto DataGridView llamado tabla y en la flecha que
aparece en el lado superior derecho, d clic en el mouse para visualizar las Tareas de
DataGridView:

Figura 3.24 Ventana de las Tareas de DataGridView.

















Seleccione la opcin Elegir origen de datos, para visualizar la siguiente figura:


Figura 3.25 Ventana Elegir origen de datos.



Al seleccionar Agregar origen de datos del proyecto, se visualizar la
siguiente ventana:






88

Figura 3.26 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 3.27 Ventana Elegir la conexin de datos.






















D clic en el botn Nueva Conexin. En la ventana que se visualiza elija como
origen de datos Microsoft SQL Server y la base de datos bdlibrovbnet.



89

Figura 3.28 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 3.29 Ventana con la base de datos seleccionada.



















Pulse Siguiente> para visualizar el siguiente mensaje:




90

Figura 3.30 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 3.31 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 3.32 Ventana de eleccin de objetos de la base de datos.


















91

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 figura 3.33:

Figura 3.33 DataGridView con los campos de la tabla clientes.















Como se puede apreciar, se crearon tres nuevos objetos: el objeto
conjuntodedatos que contendr los datos seleccionados; el objeto
ClientesBindingSource que en su propiedad DataSource tiene asignado el objeto
conjuntodedatos 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.

Seleccione el objeto navegador y en la propiedad BindingSource asigne el
objeto ClientesBindingSource para poder desplazarse por cada uno de los registros que
contiene la cuadrcula.

Ejecutar el proyecto

Al ejecutarse el proyecto, se visualizar el formulario con los datos de la tabla clientes
de SQL Server en el objeto DataGridView y por medio del control BindingNavigator
podr desplazarse por cada uno de los registros:

Figura 3.34 Formulario con un DataGridView y un BindingNavigator












92

3.2 Ejercicios de desplazamiento por los registros de una tabla

1. Realizar un programa que permita hacer una conexin a ORACLE y visualizar
los registros de una tabla en campos de texto y desplazarse por ellos.
2. Disear un programa que permita realizar una conexin a ORACLE y visualizar
los registros de una tabla en una cuadrcula y desplazarse por ellos.
3. Crear un programa que permita realizar una conexin a ORACLE y visualizar
los registros de una tabla en un ListView y desplazarse por ellos con control
BindingNavigator.
4. Hacer un programa que permita realizar una conexin a ACCESS y visualizar
los registros de una tabla en campos de texto y desplazarse por ellos con un
control BindingNavigator.
5. Elaborar un programa que permita realizar una conexin a ACCESS y visualizar
los registros de una tabla en una cuadrcula y desplazarse por ellos.
6. Realizar un programa que permita hacer una conexin a ACCESS y visualizar
los registros de una tabla en un ListView y desplazarse por ellos.
7. Hacer un programa que permita realizar una conexin a MySQL y visualizar los
registros de una tabla en campos de texto y desplazarse por ellos.
8. Elaborar un programa que permita realizar una conexin a MySQL y visualizar
los registros de una tabla en una cuadrcula y desplazarse por ellos.
9. Disear un programa que permita realizar una conexin a MySQL y visualizar
los registros de una tabla en un ListView y desplazarse por ellos con un control
BindingNavigator.
10. Crear un programa que permita realizar una conexin a SQL Server y visualizar
los registros de una tabla en un ListView y desplazarse por ellos.












93

4. OPERACIONES CON TABLAS DE UNA BASE DE DATOS
Cuando se trabaja con bases de datos se pueden realizar operaciones de aadir, eliminar
tablas, vistas, como tambin insertar, modificar, eliminar o consultar informacin de
una tabla. Generalmente estas operaciones se realizan ejecutando instrucciones del
lenguaje SQL.

En este aparte se realizarn ejemplos que permitan efectuar dichas operaciones
utilizando algunos de los controles de Visual Basic .NET.

4.1 Ejemplos de operaciones con tablas de una base de datos

4.1.1 Insertar registros en una tabla utilizando campos de texto

Desde un proyecto llamado InsertarRegCampoTexto, hacer un programa que permita
insertar datos en la tabla clientes de la base de datos bdlibrovbnet.mdf de SQL
Server. Los datos a insertar de deben capturar en campos de texto (TextBox).

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, 7 Label y 6
TextBox.

Figura 4.1 Interfaz de usuario (InsertarRegcampoTexto).









Establecer las propiedades de los objetos de la interfaz de usuario
Establezca las siguientes modificaciones a los controles:





94


Tabla 4.1 Propiedades de controles proyecto InsertarRegCampoTexto.

Control Propiedad Valor
Label1 Name texto
Text Insertar Registros en la tabla
clientes.
Font true
Label2 Name tnit
Text Digite Nit:
Label3 Name tempresa
Text Nombre empresa:
Label4 Name trepresentante
Text Representante:
Label5 Name tdireccion
Text Direccin:
Label6 Name ttelefono
Text Telfono:
Label7 Name tciudad
Text Ciudad
Textobox1Textbox6 Name campo1.campo6
Text blanco
Button1 Name botoninsertar
Text Insertar Registro
Form1 Name formulario
Text Insertar registros en una tabla.

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

Figura 4.2 Interfaz de usuario modificada (InsertarRegCampoTexto).









Escribir cdigo

a) Antes de la apertura de la clase formulario se debe importar el siguiente espacio
de nombres:

95

Imports System.Data.SqlClient
Public Class Form1
.

End Class


b) Seleccione el objeto botoninsertar, 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 tnit As String = campo1.Text
Dim tempresa As String = campo2.Text
Dim trepresentante As String = campo3.Text
Dim tdireccion As String = campo4.Text
Dim ttelefono As String = campo5.Text
Dim tciudad As String = campo6.Text
Dim seleccion As String = "INSERT INTO clientes(nit, empresa, representante,
direccion,telefono,ciudad)VALUES('" + tnit + "' ,'" + tempresa +
"','" + trepresentante + "','" + tdireccion + "','" + ttelefono + "','" +
tciudad + "')"
Dim adaptadordedatos As SqlDataAdapter
Dim tabladedatos As New DataTable
Try
adaptadordedatos = New SqlDataAdapter(seleccion, conexion)
adaptadordedatos.Fill(tabladedatos)
MsgBox("Registro insertado", MsgBoxStyle.Information)
Catch ex As Exception
MsgBox("Error: " & ex.Message, MsgBoxStyle.AbortRetryIgnore)
End Try


Se crean las variables tnit, tempresa, trepresentante, tdireccion,
ttelefono, tciudad de tipo String que almacenarn los valores de cada campo de
texto (campo1 campo6), tambin se crea una variable seleccion de tipo String
que almacenar la instruccin SQL insert into. En dicha instruccin primero se
selecciona la tabla donde se va a insertar el nuevo registro, seguido del nombre
de los campos de dicha tabla y con la propiedad values se le asignan los
respectivos valores a cada campo. Se crean los objetos 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 (sentencia SQL) y conexion (cadena de
conexin), luego se rellena (fill) el adaptador de datos con la tabla de datos
(tabladedatos) y por ltimo se muestra el mensaje Registro Insertado. Por el
bloque Catch se establece un mensaje en caso de que ocurra un error.






96

Ejecutar el proyecto
Al ejecutarse el proyecto, se debe digitar la informacin solicitada en cada campo de
texto y pulsar el botn Insertar Registro, se insertar el registro en la tabla clientes y
se visualizar el mensaje de Registro Insertado. Si desea puede ejecutar alguno de
los programas que permiten consultar una base de datos SQL Server para verificar que
el registro efectivamente se ha guardado en la tabla.

Figura 4.3 Formulario con datos en los campos de texto (InsertarRegCampoTexto).







Figura 4.4 Mensaje cuando es insertado el registro (InsertarRegCampoTexto).




4.1.2 Insertar registros en una tabla utilizando un DataGridView

Crear un proyecto llamado InsertarRegDataGridView y realizar un programa que
permita insertar datos en la tabla clientes de la base de datos bdlibrovbnet.mdf de SQL
Server. Los datos se deben visualizar y adicionar utilizando 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: 3 Button, 1
DataGridView.







97

Figura 4.5 Interfaz de usuario (InsertarRegDataGridView).








Establecer las propiedades de los objetos de la interfaz de usuario
Establezca las siguientes modificaciones a los controles:

Tabla 4.2 Propiedades de controles proyecto InsertarRegDataGridView.

Nombre del proyecto: InsertarRegDataGridView
Control Propiedad Valor
Button1 Name botoncargar
Text Cargar datos
Button2 Name botonnuevo
Text Agregar registro
Button3 Name botonguardar
Text Guardar registro
DataGridView1 Name tabla
Form1 Name formulario
Text Insertar registros en DataGridView.

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

Figura 4.6 Interfaz de usuario modificada (InsertarRegDataGridView).








98

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 origen 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 cargar_datos:

Public Sub cargar_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

99

El procedimiento cargar_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 cuadrcula para cargar los datos y se obtiene la posicin del primer registro de
la cuadrcula (FirstDisplayedScrollingRowIndex = transaccion.Position).
Utilizando dos bloques catch se atrapan las excepciones SQLException (por si
existe algn error en la ejecucin de las sentencias SQL) y Exception (por si
existe algn problema con el sistema).

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

tabla.DataSource = transaccion
cargar_datos("select * from clientes", tabla)

A la propiedad DataSource del objeto tabla se le establece el origen de
datos (transaccion) y se llama al procedimiento cargar_datos envindole la
sentencia SQL Select * from clientes y el objeto tabla.

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 tabla.

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 tabla 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 cargar_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.





100

Ejecutar el proyecto

Al ejecutarse el proyecto y pulsar el botn Cargar Datos, se visualizarn los registros
de la tabla clientes, como se aprecia en la siguiente figura:

Figura 4.7 Formulario con los registros de la tabla clientes.









Al pulsar el botn Agregar Registro, se seleccionar en una nueva fila el primer
campo del objeto tabla, el formulario queda de la siguiente forma:

Figura 4.8 Cuadrcula con una nueva fila para insertar datos.








Si se captura la informacin en cada campo de la cuadrcula y luego se pulsa el
botn Guardar Registro, se insertarn los datos en la tabla clientes. En la siguiente
figura se aprecia el registro insertado:


101

Figura 4.9 Cuadrcula con un nuevo registro insertado en la tabla clientes.








4.1.3 Buscar registros por un campo especfico
Dentro de un proyecto llamado ConsultaPorCampo, disear un programa que permita
buscar una ciudad especfica en la tabla clientes 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: 1 Label, 1 TextBox, 1
Button, 1 DataGridView.

Figura 4.10 Interfaz de usuario (ConsultaPorCampo).















Establecer las propiedades de los objetos de la interfaz de usuario
Establezca las siguientes modificaciones a los controles:



102

Tabla 4.3 Propiedades de controles proyecto ConsultaPorCampo.

Control Propiedad Valor
Label1 Name titulo
Text Ciudad a Buscar:
TextBox1 Name campobusqueda
Text blanco
Button1 Name botonbuscar
Text Buscar
DataGridView1 Name tabla
Form1 Name formulario
Text Consultar tabla por campo.

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

Figura 4.11 Interfaz de usuario modificada (ConsultaPorCampo).















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


b) Seleccione el objeto botonbuscar, 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 = campobusqueda.Text
Dim seleccion As String = "SELECT * FROM clientes where ciudad='" + clave + "'"
Dim adaptador As SqlDataAdapter
Dim tabladedatos As New DataTable
Try

103

adaptador = New SqlDataAdapter(seleccion, conexion)
adaptador.Fill(tabladedatos)
tabla.DataSource = tabladedatos
If Not (tabla.Rows.Count - 1 > 0) Then
MsgBox("Ciudad no existe en la tabla Clientes...", MsgBoxStyle.Information,
"Consulta por ciudad")
End If
Catch ex As Exception
MsgBox("Error: " & ex.Message)
End Try

Se crea una variable clave que almacenar el nombre de la ciudad que
ser escrita en el objeto campobusqueda, 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 slo aquellos registros
cuya ciudad sea igual al nombre de la ciudad escrita en el objeto
campobusqueda. 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. Se utiliza la estructura if para determinar si en el objeto tabla no
se visualizaron registros, es decir, no se encontr la ciudad buscada, por lo cual
se muestra el mensaje Ciudad no existe en la tabla Clientes.

Ejecutar el proyecto

Al ejecutarse el proyecto en el entorno de desarrollo, se visualizar la figura 4.11. Si en
el campo de texto se escribe cali, al pulsar el botn Buscar, se mostrar en la
cuadrcula todos aquellos registros cuya ciudad sea igual a cali, como se muestra en la
siguiente figura:

Figura 4.12 Formulario con los registros cuya ciudad es igual a Cali.




















104

4.1.4 Buscar registros por cualquier campo de una tabla
Dentro de un proyecto llamado ConsultaCualquierCampo hacer un programa que
permita realizar una bsqueda de informacin en la tabla clientes 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: 4 Label, 1 TextBox, 1
Button, 1 DataGridView y 2 ComboBox.

Figura 4.13 Interfaz de usuario (ConsultaCualquierCampo).




















Establecer las propiedades de los objetos de la interfaz de usuario
Establezca las siguientes modificaciones a los controles:

Tabla 4.4 Propiedades de controles proyecto ConsultaCualquierCampo.

Control Propiedad Valor
Label1 Text Bsqueda de registros
por cualquier campo de
una tabla.
name titulo
Font /Bold true
Label2 Text Campo
name txtcampo
Label3 Text Operador
name txtoperador
Label4 Text Criterio
name txtcriterio
TextBox1 name valorcampo

105

Button1 name boton
Text Consultar
ComboBox1 name listacampos
ComboBox2 name listaoperadores
DataGridView1 Name tabla
Form1 Name formulario
Text Bsqueda de registros
en una tabla.


Figura 4.14 Interfaz de usuario modificada (ConsultaCualquierCampo).





















Escribir cdigo
a) Seleccione el control listacampos, busque la propiedad Items, d clic en los tres
puntos al lado de Coleccin y en la 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 4.15 Ventana Editor del objeto listacampos.














106

b) Seleccione el control listaoperadores, busque la propiedad Items, d clic en los
tres puntos al lado de Coleccin y en la 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 4.16 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) Seleccione el objeto boton, 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 est escrito en
el objeto valorcampo; nombre_campo de tipo String que almacenar el

107

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 4.14. Si se
selecciona del objeto listacampos el campo nit, del objeto listaoperadores el
operador >, se escribe en el objeto valorcampo 300 y se pulsa el botn Consultar,
se visualizar en la cuadrcula todos aquellos registros cuyo nit sea mayor que 300,
como se muestra en la siguiente figura:

Figura 4.17 Formulario con los registros cuyo nit es mayor que 300.

















4.1.5 Buscar registros mientras se escribe
Desde un proyecto llamado ConsultaMientrasSeEscribe, disear un programa que
permita realizar una bsqueda de informacin en la tabla clientes mientras se escribe en
un campo de texto. Se debe ir mostrando en un control ListBox la (s) empresa(s) que
cumplan la condicin unido al campo representante.

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: 2 Label, 1 TextBox, 1
ListBox, 1 DataGridView.

108

Figura 4.18 Interfaz de usuario (ConsultaMientrasSeEscribe).














Establecer las propiedades de los objetos de la interfaz de usuario
Establezca las siguientes modificaciones a los controles:

Tabla 4.5 Propiedades de controles proyecto ConsultaCualquierCampo.

Control Propiedad Valor
Label1 Text Consulta de registros
mientras se escribe.
name titulo
Font /bold true
Label2 Text Empresa a Buscar:
name txtbusqueda
Textbox1 name campobusqueda
ListBox1 Name listaempresas
DataGridView1 Name Tabla
Form1 Name formulario
Text Consulta de Registros.

Figura 4.19 Interfaz de usuario modificada (ConsultaMientrasSeEscribe).

















109

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 tabladedatos As New DataTable
.
End Class

Se inicializa un objeto global llamado tabladedatos al que se le asigna
espacio de memoria de tipo DataTable para manipular los datos a seleccionar.

c) D doble clic sobre el formulario para abrir el editor de cdigo del
procedimiento formulario_ Load y escriba el siguiente cdigo:

Dim conexion As String = "Data Source=(local)\SQLEXPRESS;Database=bdlibrovbnet;
Integrated Security=True"
Dim seleccion As String = "SELECT empresa,representante FROM clientes"
Dim adaptador As SqlDataAdapter
adaptador = New SqlDataAdapter(seleccion, conexion)
tabladedatos = New DataTable
Try
adaptador.Fill(tabladedatos)
tabla.DataSource = tabladedatos
Catch ex As Exception
MsgBox("Error: " & ex.Message)
End Try

A la variable seleccion de tipo String se le asigna la sentencia SQL
Select. En dicha instruccin se selecciona los campos empresa y representante
de la tabla clientes (Select empresa, representante from clientes). Al
ejecutarse el formulario se realiza la conexin a la base de datos
bdlibrovbnet.mdf de SQL Server y se visualiza en el objeto tabla los datos de
los campos empresa y representante de la tabla clientes.

d) D doble clic sobre el objeto campobusqueda para abrir el editor de cdigo del
procedimiento campobusqueda_TextChanged y escriba el siguiente cdigo:

Dim filas() As DataRow
Dim texto As String = campobusqueda.Text
Dim empresaencontrada As String = "Select empresa from clientes where empresa like'"
& campobusqueda.Text & "%'"
filas = tabladedatos.Select("empresa LIKE '" & campobusqueda.Text & "%'")
listaempresas.Items.Clear()
If filas.Length > 0 Then
For Each filascondatos As DataRow In filas
110

listaempresas.Items.Add(filascondatos("Empresa").ToString & ", " &
filascondatos("Representante").ToString)
Next
End If

Se crean las variables: un arreglo llamado filas () de tipo DataRow (fila
de datos) que almacenar los datos coincidentes por la bsqueda realizada; una
variable llamada texto de tipo String a la cual se le asigna el contenido del
objeto campobusqueda en su propiedad Text; otra variable llamada
empresaencontrada de tipo String a la cual se le asigna la sentencia SQL
Select. En dicha instruccin se selecciona el campo empresa de la tabla clientes
(Select empresa from clientes), y se utiliza la clusula where para seleccionar
aquellos registros cuyo campo empresa comiencen (like) con el texto del objeto
campobusqueda sin importar el resto de caracteres del campo empresa (%). Al
arreglo filas () se le asigna la coleccin resultante de los registros que cumplan
la condicin de la propiedad Select (empresa like ????%) del objeto
tabladedatos. Por otro lado, se borran todos elementos (Items) anteriores del
objeto listaempresas utilizando la funcin clear (). Con la instruccin
condicional if, se pregunta si el arreglo filas tiene una longitud (Length) mayor
que cero para crear un ciclo que permita adicionar los campos empresa y
representante de la tabla clientes en el objeto listaempresas utilizando la
funcin Add de la propiedad Items.

Ejecutar el proyecto

Al ejecutarse el proyecto, se visualizar la figura 4.19. Si se escribe en el objeto
campobusqueda el carcter c, se visualizar en el objeto listaempresas todos los
registros en donde el nombre de la empresa empiecen por la letra c, como se muestra en
la figura:

Figura 4.20 Formulario con nombres de empresas que comienzan con c.
















Ahora si se escribe en el campo de texto la slaba ca, se borrarn los elementos
actuales del objeto listaempresas y se visualizarn los registros cuyo nombre de
empresa empiezan por ca.


111

Figura 4.21 Formulario con nombres de empresas que comienzan con ca.
















4.1.6 Ejecutar instrucciones SQL sobre una base de datos
Dentro de un proyecto llamado ConsultarConInstruccionesSQL, crear un programa
que permita escribir sentencias SQL en un campo de texto y visualizar los resultados de
dicha sentencia en una cuadrcula.

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: 2 Label, 1 TextBox, 1
Button, 1 DataGridView.

Figura 4.22 Interfaz de usuario (ConsultarConInstruccionesSQL).







Establecer las propiedades de los objetos de la interfaz de usuario
Establezca las siguientes modificaciones a los controles:



112

Tabla 4.6 Propiedades de controles proyecto ConsultarConInstruccionesSQL.

Control Propiedad Valor
Label1 Text Consultar una base de
datos utilizando
instrucciones SQL.
name titulo
Font /bold True
Label2 Text Digite Cdigo SQL:
name texto
TextBox1 name textosql
Multiline true
Button1 name boton
Text Ejecutar
DataGridView1 Name tabla
Form1 Name formulario
Text Consultar con SQL.

Figura 4.23 Interfaz de usuario modificada (ConsultarConInstruccionesSQL).








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) D doble clic sobre el objeto boton para abrir el editor de cdigo y escriba el
siguiente cdigo:

Dim conexion As String
conexion = "Data Source=(local)\SQLEXPRESS;Database=bdlibrovbnet;

113

Integrated Security=True"
Dim seleccion As String = textosql.Text
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 crea una variable seleccion de tipo String que almacenar la sentencia
SQL que ser digitada en el campo de texto textosql. 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, se visualizar la figura 4.23. Si se escribe la sentencia SQL en
el objeto textosql Select nit, empresa, representante from clientes where nit>300,
se visualizar en el objeto tablas todos los registros donde el nit sea mayor que 300,
como se muestra en la figura:

Figura 4.24 Formulario con el campo nit mayor que 300.













4.1.7 Eliminar registros de una tabla
Realizar un proyecto llamado EliminarRegistrosTabla, que permita a un usuario
eliminar registros de la tabla clientes de la base de datos bdlibrovbnet.mdf y visualizar
los dems registros de la tabla en una cuadrcula.




114

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 Label, 1 TextBox, 1
Button, 1 DataGridView.

Figura 4.25. Interfaz de usuario (EliminarRegistrosTabla).















Establecer las propiedades de los objetos de la interfaz de usuario.
Establezca las siguientes modificaciones a los controles:

Tabla 4.7 Propiedades de controles proyecto EliminarRegistrosTabla.

Control Propiedad Valor
Label1 Text Eliminar registros de la
tabla clientes.
name titulo
Font /bold true
Label2 Text Nit a Eliminar:
name etiquetaeliminar
Label3 Text Consultar Tabla
name etiquetaconsulta
TextBox1 name textoeliminar
Button1 name boton
Text Eliminar Registros
DataGridView1 Name Tabla
Form1 Name formulario
Text Eliminar registros de
una tabla.





115

Figura 4.26 Interfaz de usuario modificada (EliminarRegistrosTabla).











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) D doble clic sobre el objeto boton 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 = textoeliminar.Text
Dim seleccion As String = "DELETE FROM clientes where nit='" + clave + "'"
Dim adaptador As SqlDataAdapter
Dim tabladedatos As New DataTable
Try
Dim respuesta = MsgBox("Esta Seguro de Eliminar los registros con Nit =" & clave,
MsgBoxStyle.YesNo, "Eliminar registros")
If (respuesta = MsgBoxResult.Yes) Then
adaptador = New SqlDataAdapter(seleccion, conexion)
adaptador.Fill(tabladedatos)
seleccion = "select * FROM clientes"
adaptador = New SqlDataAdapter(seleccion, conexion)
adaptador.Fill(tabladedatos)
tabla.DataSource = tabladedatos
Else
MsgBox("Registros NO eliminados", MsgBoxStyle.Information, "Eliminar Registros")
End If
Catch ex As Exception
MsgBox("Error: " & ex.Message)
End Try

116

Se crean las variables: clave que almacenar el valor que est escrito en
el objeto textoeliminar; seleccion de tipo String almacenar la instruccin SQL
Delete. En dicha instruccin se eliminarn todos los registros de la tabla clientes
(Delete from clientes) cuyo (where) campo nit sea igual al contenido del objeto
clave. Si el valor de la variable respuesta es igual a S, se ejecutar la accin de
eliminacin y se visualizar en el objeto tabla los registros restantes de la tabla
clientes.

Ejecutar el proyecto

Al ejecutarse el proyecto, se visualizar la figura 4.26. Si se escribe en el objeto
textoeliminar el valor de 900 y se pulsa el botn Eliminar, se visualizar una caja
de mensajes con el mensaje Esta Seguro de eliminar los registros con Nit=900. Si
el usuario pulsa el botn S se visualizar la figura 4.28., en caso contrario se mostrar
el mensaje Registros No eliminados.

Figura 4.27 Formulario para eliminar registros.







Figura 4.28 Formulario con el registro eliminado.















117

4.1.8 Actualizar registros de una tabla
Realizar un proyecto llamado ActualizarRegistrosTabla, que permita a un usuario
cambiar todas las ciudades cuyo nombre sea Barranquilla por Cartagena de la tabla
clientes de la base de datos bdlibrovbnet.mdf y visualizar los registros de la tabla en
una cuadrcula.

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: 2 Label, 1 TextBox, 1
Button, 1 DataGridView.

Figura 4.29 Interfaz de usuario (ActualizarRegistrosTabla).














Establecer las propiedades de los objetos de la interfaz de usuario
Establezca las siguientes modificaciones a los controles:

Tabla 4.8 Propiedades de controles proyecto ActualizarRegistrosTabla.

Control Propiedad Valor
Label1 Text Actualizacin del
campo CIUDAD de la
tabla clientes.
name titulo
Font /bold true
Label2 Text Nueva Ciudad:
name etiquetaciudad
TextBox1 name textociudad
Button1 name boton
Text Actualizar Ciudad
DataGridView1 Name tabla
Form1 Name formulario
Text Actualizar un campo de
una tabla.

118

Figura 4.30 Interfaz de usuario modificada (ActualizarRegistrosTabla).

















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) D doble clic sobre el objeto boton 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 = textociudad.Text
Dim seleccion As String = "UpDate clientes set ciudad = '" + clave + "'" + " where
ciudad='" + "Barranquilla" + "'"
Dim adaptador As SqlDataAdapter
Dim tabladedatos As New DataTable
Try
Dim respuesta = MsgBox("Esta Seguro de Actualizar los registros",
MsgBoxStyle.YesNo, "Actualizar registros")
If (respuesta = MsgBoxResult.Yes) Then
adaptador = New SqlDataAdapter(seleccion, conexion)
adaptador.Fill(tabladedatos)
Else
MsgBox("Registros NO Actualizados", MsgBoxStyle.Information, "Actualizar
Registros")
End If
seleccion = "select * FROM clientes"
adaptador = New SqlDataAdapter(seleccion, conexion)
adaptador.Fill(tabladedatos)
tabla.DataSource = tabladedatos
Catch ex As Exception
MsgBox("Error: " & ex.Message)
End Try

119

Se crean las variables: clave que almacenar el valor que est escrito en
el objeto textociudad; seleccion de tipo String que almacenar la instruccin
SQL Update. En dicha instruccin se actualizarn todos los registros de la tabla
clientes (Update clientes set ciudad) en el campo ciudad igual al contenido del
objeto clave para aquellas ciudades cuyo nombre sea igual a Barranquilla. Si
el valor de la variable respuesta es igual a S, se ejecutar la accin de
actualizacin y se visualizar en el objeto tabla los registros de la tabla clientes.

Ejecutar el proyecto
Al ejecutarse el proyecto, se visualizar la figura 4.30. Si se escribe en el objeto
textociudad el valor de Cartagena y se pulsa el botn Actualizar Ciudad, se
visualizar una caja de mensajes con el mensaje Esta Seguro de Actualizar los
registros. Si el usuario pulsa el botn S se visualizar la figura 4.32, en caso contrario
se mostrar el mensaje Registros No Actualizados.

Figura 4.31 Formulario para actualizar el campo ciudad.















Figura 4.32 Formulario con la ciudad actualizada.















120

4.1.9 Generar un reporte 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 4.33. 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 4.34 Interfaz de usuario (InformeDatosTabla).



121

Seleccione la opcin Acoplar en contenedor principal, se visualizar el
formulario con el control acoplado como se aprecia en la siguiente figura:

Figura 4.35 Control MicrosoftReportViewer acoplado al formulario.
















Establecer las propiedades de los objetos de la interfaz de usuario
Establezca las siguientes modificaciones a los controles:

Tabla 4.9 Propiedades de controles proyecto InformeDatosTabla.

Control Propiedad Valor
MicrosoftReportViewer1 Name reporte
Form1 Name formulario
Text Reporte de una tabla.

Figura 4.36 Interfaz de usuario modificada (InformeDatosTabla).





















122

Disear el informe

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

Figura 4.37 Seleccionar Disear nuevo informe.


















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

Figura 4.38 Asistente para informes.























123

D clic en Siguiente> para ver la ventana del Asistente para la configuracin
de orgenes de datos.

Figura 4.39 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 4.40 Ventana Elegir la conexin de datos.























124

D clic en el botn Nueva Conexin. En la ventana que se visualiza elija como
origen de datos Microsoft SQL Server y la base de datos bdlibrovbnet.

Figura 4.41 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 4.42 Ventana con la base de datos seleccionada.



















Pulse Siguiente> para visualizar el siguiente mensaje:



125

Figura 4.43 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 4.44 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 4.45 Ventana de eleccin de objetos de la base de datos.
















126

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 figura:

Figura 4.46 Asistente para informes seleccionar el origen de datos.





















Pulse los signos (+) para desplegar la tabla. D clic en Siguiente> para
visualizar la ventana de seleccin de tipo de informe.

Figura 4.47 Asistente para informes seleccionar el tipo de informe.






















127

Seleccione la opcin Tabular o Matriz y d clic en Siguiente> para visualizar
la ventana de diseo de tabla.

Figura 4.48 Asistente para informes disear la tabla.






















Seleccione cada campo y pulse el botn Detalles>. Se obtendr la siguiente
figura:

Figura 4.49 Diseo de la tabla con los campos seleccionados.






















128


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

Figura 4.50 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 4.51 Asistente para informes elegir el estilo de tabla.






















129

Seleccione la opcin con el estilo que desee y d clic en Siguiente> para
visualizar la ventana de finalizacin del asistente de informes.

Figura 4.52 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 4.53 Diseo final del informe.







130












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 4.54 Seleccionar opcin Elegir informe.




All escoja InformeDatosTabla.Informe Cliente.rdlc, para visualizar el
formulario con los objetos conjuntodedatos, clientesBindingSource y
clientesTableAdapter.

Figura 4.55 Formulario con los objetos de manejo de datos.

131



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 4.56 Formulario con el reporte de los registros de la tabla clientes.



















4.2 Ejercicios de operaciones con tablas de una base de datos

1. Realizar un programa que permita hacer una conexin a ORACLE y visualizar
los registros cuyo nit sea menor o igual a 500 en un ListView.
2. Disear un programa que permita eliminar los registros cuyo nombre de empresa
contengan la letra e.


132

3. Hacer un programa que permita realizar una conexin a SQL Server y aumentar
en 10 das la fecha de entrega de la tabla pedidos.
4. Crear un programa que permita realizar una conexin a una base de datos e
insertar datos. Slo se deben ingresar datos a la tabla si el nit es mayor que 5000.
5. Realizar un programa que permita conectarse a una base de datos e imprimir en
un formulario un reporte de todos los registros cuya ciudad empiece por B.
6. Crear un programa que permita desplazarse por los registros de una tabla cuya
condicin es que la ciudad tenga en su segundo carcter la letra A.
7. Realizar un programa que visualice en un formulario los registros de una tabla
cuyo nit sea mayor que 200 y menor que 900.
8. Hacer un programa que permita a un usuario agregar un nuevo campo a una
tabla.
9. Disear un programa que permita visualizar los registros que se van a eliminar
de una tabla en una cuadrcula.
10. Crear un programa que permita visualizar los registros de una tabla en una
cuadrcula. Cada vez que el usuario seleccione un registro se debern mostrar en
campos de texto los datos de los respectivos campos.






5. MANEJO DE RELACIONES ENTRE TABLAS EN UNA BASE DE DATOS
Generalmente una base de datos contiene muchas tablas, algunas de las cuales tienen
campos en comn. Dichas tablas se pueden relacionar por el campo comn para
manipular la informacin de los registros de dos o ms tablas. Con la relacin de tablas
tambin se puede realizar el desplazamiento y la operacin de los registros de dichas
tablas. Como se ha podido observar, en los captulos anteriores se ha realizado la
conexin a las bases de datos SQL Server, Access y Oracle, como tambin se han
realizado diferentes ejemplos con SQL Server. En los siguientes ejemplos se seguir
trabajando con SQL Server y la base de datos bdlibrovbnet.mdf, la cual contiene las
tablas clientes, pedidos, productos, ventas. (Se puede consultar el Anexo C, para ver
la estructura de las tablas y su informacin).

5.1 Ejemplos de relacin de tablas de una base de datos

5.1.1 Visualizar registros de tablas relacionadas

Crear un proyecto llamado RelacionarDosTablas, que permita a un usuario visualizar
los campos nit, empresa, de la tabla clientes y nropedido, fechaentrega y
observacin de la tabla pedidos de la base de datos bdlibrovbnet.mdf en una
cuadrcula.

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 Button, 1
133

DataGridView.

Figura 5.1 Interfaz de usuario (RelacionarDosTablas).



Establecer las propiedades de los objetos de la interfaz de usuario
Establezca las siguientes modificaciones a los controles:

Tabla 5.1 Propiedades de controles proyecto RelacionarDosTablas

Control Propiedad Valor
Label1 Text Relacin de las tablas
clientes y pedidos de
bdlibrovbnet.mdf.
name titulo
Font /bold true
Button1 Text Ejecutar
name boton
DataGridView1 Name tabla
Form1 Name formulario
Text Relacin de tablas de
una base de datos.

Figura 5.2 Interfaz de usuario modificada (RelacionarDosTablas).


134



















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) D doble clic sobre el objeto boton 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 clientes.nit,clientes.empresa,pedidos.nropedido,
pedidos.fechaentrega, pedidos.observacon FROM clientes
INNER JOIN pedidos ON clientes.nit = pedidos.nit"
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 crea la variable seleccion de tipo String que almacenar una
instruccin SQL. En dicha instruccin se relacionan las tablas clientes y pedidos
con la clusula INNER JOIN. Primero se seleccionan los campos que se quiere
visualizar de las dos tablas (SELECT clientes.nit, clientes.empresa,
pedidos.nropedido,..), con INNER JOIN se realiza la relacin de ests
(FROM clientes INNER JOIN pedidos) y utilizando la clusula ON se compara
el campo comn entre las dos tablas, para el ejemplo el campo comn es nit.

135

Por ltimo se ejecuta la instruccin SQL y se rellena el objeto tabla con los
registros que cumplan la condicin de relacin entre las tablas clientes y
pedidos.

Ejecutar el proyecto
Al ejecutarse el proyecto, se visualizar la figura 5.2. Si se pulsa el botn Ejecutar, se
visualizarn todos los registros relacionados de las tablas clientes y pedidos. Solamente
se visualizarn los registros cuyo nit de la tabla pedidos exista en la tabla clientes.

Figura 5.3 Formulario con la relacin de las tablas clientes - pedidos.





















5.1.2 Relacin de tablas utilizando dos DataGridView
Crear un proyecto llamado RelacionConDataGridView, que permita a un usuario
visualizar en un primer objeto DataGridView los campos de la tabla clientes y al
seleccionar de dicho objeto un registro, mostrar en un segundo objeto DataGridView
todos los registros relacionados con la tabla pedidos 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: 2 Label, 2 DataGridView.

Figura 5.4 Interfaz de usuario (RelacionConDataGridView).

136


















Establecer las propiedades de los objetos de la interfaz de usuario
Establezca las siguientes modificaciones a los controles:

Tabla 5.2 Propiedades de controles proyecto RelacionConDataGridView.

Control Propiedad Valor
Label1
Text
Clientes
name
etiquetaclientes
Label2
Text
Pedidos
name
etiquetapedidos
DataGridView1 Name tablaclientes
DataGridView2 Name tablapedidos

Form1
Name formulario
Text Relacin de tablas con
DataGridView.


Figura 5.5 Interfaz de usuario modificada (RelacionConDataGridView).















137





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) D doble clic sobre el formulario para abrir el editor de cdigo del
procedimiento formulario_ Load y escriba el siguiente cdigo:

Dim conexion As String = "Data Source=(local)\SQLEXPRESS;Database=bdlibrovbnet;
Integrated Security=True"
Dim nvaconexion As New SqlConnection(conexion)
Try
nvaconexion.Open()
Dim conjuntodedatos As New DataSet
Dim datosclientes As New SqlDataAdapter("select * from clientes", nvaconexion)
Dim datospedidos As New SqlDataAdapter("select * from pedidos", nvaconexion)
datosclientes.Fill(conjuntodedatos, "clientes")
datospedidos.Fill(conjuntodedatos, "pedidos")
nvaconexion.Close()
With tablaclientes
.DataMember = "clientes"
.DataSource = conjuntodedatos
.SelectionMode = DataGridViewSelectionMode.FullRowSelect
End With
With conjuntodedatos
.Relations.Add("relacion",.Tables("clientes").Columns("nit"),
.Tables("pedidos").Columns("nit"))
End With
With tablapedidos
.DataSource = conjuntodedatos
.DataMember = "clientes.relacion"
.SelectionMode = DataGridViewSelectionMode.FullRowSelect
End With
Catch ex As Exception
MsgBox(ex.Message.ToString)
End Try

Se crea la variable nvaconexion de tipo SqlConecction que almacenar
la cadena de conexin a la base de datos bdlibrovbnet.mdf de SQL Server. En
un bloque Try se abre la conexin utilizando la funcin Open del objeto
nvaconexion, adems se crean los objetos conjuntodedatos al cual se le asigna
espacio de memoria de tipo DataSet; datosclientes al cual se le asigna espacio
de memoria de tipo SqlDataAdapter y recibe como parmetros la seleccin de
todos los registros de la tabla clientes y el objeto nvaconexion; datospedidos al
cual se le asigna espacio de memoria de tipo SqlDataAdapter y recibe como
parmetros la seleccin de todos los registros de la tabla pedidos y el objeto
nvaconexion. Por otro lado, se rellenan los objetos datosclientes y
138

datospedidos con el conjunto de datos y su respectiva tabla. Al objeto
tablaclientes en su propiedad DataMember se le asigna el nombre de la tabla
clientes, a la propiedad DataSource el conjunto de datos y a la propiedad
SelectionMode se le asigna la operacin de seleccin completa de la fila
(DataGridViewSelectionMode.FullRowSelect). Utilizando la propiedad
Relations y la funcin Add del objeto conjuntodedatos se crea un alias
llamado relacion para definir la relacin entre las tablas clientes y pedidos por
el campo comn (nit). Al objeto tablapedidos en su propiedad DataMember se
le asigna la relacin de las tablas (clientes.relacion), en la propiedad
DataSource el conjunto de datos y en la propiedad SelectionMode se le asigna
la operacin de seleccin completa de la fila
(DataGridViewSelectionMode.FullRowSelect).

Ejecutar el proyecto

Al ejecutarse el proyecto, se visualizar al menos los registros de la tabla clientes. Si
selecciona un registro de la primera cuadrcula se mostrarn en la segunda cuadrcula
los registros relacionados entre las tablas clientes - pedidos.

Figura 5.6 Relacin de las tablas clientes pedidos con DataGridView.


















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

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.

Figura 5.7 Interfaz de usuario (RelacionConComboBox).

139





















Establecer las propiedades de los objetos de la interfaz de usuario
Establezca las siguientes modificaciones a los controles:

Tabla 5.3 Propiedades de controles proyecto RelacionConComboBox.

Control Propiedad Valor
Label1
Text
Seleccione empresa:
name
etiquetaclientes
Button1
Text
Ver Pedidos
name
boton
DataGridView1 Name tablapedidos
ComboBox1 Name lista

Form1
Name formulario
Text Relacin de tablas con un
ComboBox.



Figura 5.8 Interfaz de usuario modificada (RelacionConComboBox).













140





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 5.9. Ventana Elegir la conexin de datos




















D clic en el botn Nueva Conexin. En la ventana que se visualiza elija como
origen de datos Microsoft SQL Server y la base de datos bdlibrovbnet.



Figura 5.10 Ventana Agregar conexin.














141







Pulse el botn Aceptar, para visualizar nuevamente la ventana de Elegir la
conexin de datos. All pulse Siguiente> para visualizar el siguiente mensaje:

Figura 5.11 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 5.12 Ventana eleccin tipo de comando.








Por omisin est
seleccionada la opcin Usar instrucciones SQL. Pulse Siguiente> para visualizar la
ventana de generacin de instrucciones SQL.

Figura 5.13 Ventana Generar las instrucciones SQL.


142










Aqu se puede
realizar la seleccin de los datos que debera cargar el adaptador de datos. Una forma es
escribir en la ventana instrucciones SQL y la otra es pulsar el botn Generador de
consultas. Para el ejemplo se pulsar el botn y se visualiza la siguiente figura:

Figura 5.14 Ventana Generador de consultas.









Seleccione la tabla clientes, pulse el botn Agregar y luego el botn Cerrar, se
visualizar la siguiente figura:
Figura 5.15 Generador de consultas con la tabla clientes.


143











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 5.16 Generador de consultas con los campos seleccionados (tabla clientes).






















Pulse el botn Aceptar, y se visualizar la siguiente figura:
Figura 5.17 Generador de consultas con la instruccin SQL.


144




















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 dieron 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 5.18 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:


145


Figura 5.19 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 5.20 Formulario con el objeto conjuntodedatos.

























Escribir cdigo
a) Antes de la apertura de la clase formulario se debe importar el siguiente espacio


146

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 con el 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:

147

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 5.8, 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 cuadrcula todos los registros que estn relacionados con la tabla
pedidos.

Figura 5.21 Relacin de las tablas clientes pedidos con DataGridView.












5.1.4 Reporte con tablas relacionadas
Realizar un proyecto llamado ReporteTablasRelacionadas, que permita a un usuario
visualizar en un formulario un reporte de todos los registros relacionados de las tablas
clientes pedidos 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 5.22 Interfaz de usuario (ReporteTablasRelacionadas).

148

















Establecer las propiedades de los objetos de la interfaz de usuario
Establezca las siguientes modificaciones a los controles:

Tabla 5.4 Propiedades de controles proyecto ReporteTablasRelacionadas.

Control Propiedad Valor
MicrosoftReportViewer1 Name reporte

Form1
Name formulario
Text Reporte con tablas
relacionadas.


Figura 5.23 Interfaz de usuario modificada (ReporteTablasRelacionadas).




















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


149

la siguiente figura:

Figura 5.24 Ventana Explorador de servidores.














Al pulsar el icono conectar con bases de datos , se visualizar l ventana de
Agregar conexin como muestra la figura:

Figura 5.25 Ventana Agregar conexin.























En la ventana que se visualiza elija como origen de datos Microsoft SQL
Server y la base de datos bdlibrovbnet. Se visualizar la siguiente figura:


Figura 5.26 Ventana con la base de datos seleccionada.


150























Pulse el boton Aceptar, para observar la siguiente figura:

Figura 5.27 Base de datos seleccionada en el Explorador de servidores.



D clic en el signo (+) al lado del nombre de la base de datos para visualizar la
estructura definida en la base de datos. Seleccione la carpeta vistas y d clic derecho
para ver en el men contextual la opcin Agregar nueva vista, seleccinela para
visualizar la ventana Agregar tabla.




Figura 5.28 Ventana Agregar tabla.


151





















Agregue las tablas clientes, pedidos y pulse el botn Cerrar. Por otro lado, de
la tabla clientes seleccione los campos nit, empresa, representante y de la tabla
pedidos nropedido, fechaentrega, fechavence, observacon. Se obtendr la siguiente
figura:

Figura 5.29 Vista con las tablas clientes pedidos.


Cierre la ventana de la vista (parte superior derecha), para ver la ventana de
guardar el cambio de la vista.





Figura 5.30 Ventana guardar cambio de la vista.


152



















D clic sobre el botn S, para elegir el nombre de la vista.

Figura 5.31 Ventana elegir nombre vista.









Escriba como nombre de la vista tablasrelacionadas y pulse el botn Aceptar,
para guardar la vista en la base de datos.

Figura 5.32 Base de Datos con la vista tablasrelacionadas.





153

Elija la ficha de diseo del formulario y d clic sobre la flecha del objeto
reporte y seleccione la opcin Disear nuevo informe.

Figura 5.33 Seleccionar opcin Disear nuevo informe del objeto reporte.














Al seleccionar dicha opcin se visualizar la ventana del asistente de informes.

Figura 5.34 Asistente para informes.







154

D clic en Siguiente, para ver la ventana de configuracin de orgenes de datos.

Figura 5.35 Asistente para la configuracin de orgenes de datos.






















D clic en el botn Nueva Conexin. En la ventana que se visualiza elija como
origen de datos Microsoft SQL Server y la base de datos bdlibrovbnet.

Figura 5.36 Ventana con la base de datos seleccionada.























155

Pulse Siguiente> para visualizar el siguiente mensaje:


Figura 5.37 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 5.38 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:








156

Figura 5.39 Ventana de eleccin de objetos de la base de datos.






















Pulse el signo (+) al lado de Vistas para desplegar las vistas actuales de la base
de datos, seleccione la vista tablasrelacionadas. Por otro lado, cambie el nombre del
DataSet que all aparece por conjuntodedatos y pulse el botn Finalizar, para
visualizar la figura 5.40:

Figura 5.40 Asistente para informes seleccionar el origen de datos.























157

Pulse los signos (+) para desplegar la vista. D clic en Siguiente> para visualizar
la ventana de seleccin de tipo de informe.

Figura 5.41 Asistente para informes seleccionar el tipo de informe.





















Seleccione la opcin Tabular o Matriz y de clic en Siguiente> para visualizar
la ventana de diseo de tabla.

Figura 5.42 Asistente para informes disear la tabla.





















158

Seleccione los campos nit, empresa, representante y sitelos en la casilla
Grupo>, el resto de campos en la casilla Detalles>. Se observar la siguiente figura:

Figura 5.43 Diseo de la tabla con los campos seleccionados.























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

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





















159

Seleccione la opcin Escalonado o Bloquear y si desea incluir subtotales o
no. D clic en Siguiente> para visualizar la ventana de estilo de la tabla.

Figura 5.45 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 5.46 Ventana de finalizacin del asistente de informes.























160

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

Figura 5.47 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 5.48 Seleccionar opcin Elegir informe.



All escoja ReporteTablasRelacionadas.Informe Clientes-Pedidos.rdlc, para
visualizar el formulario con los objetos conjuntodedatos,
tablasrelacionadasBindingSource y tablasrelacionadasTableAdapter.




161

Figura 5.49 Formulario con los objetos de manejo de datos.

















Ejecutar el proyecto
Al ejecutarse el proyecto, se visualizar la figura 5.50. 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 5.50 Formulario con el reporte de la relacion clientes- pedidos.













162

5.2 Ejercicios de relacin de tablas

1. Realizar un programa que permita hacer una relacin entre tres tablas de una
base de datos en SQL Server.
2. Disear un programa que permita realizar una relacin entre dos tablas con un
filtro por el campo comn.
3. Hacer un programa que permita visualizar en un reporte los registros de una
relacin de tres tablas.
4. Crear un programa que permita realizar una relacin de tres tablas; para la
primera relacin se deben seleccionar los datos desde un ListBox y visualizarlos
en un DataGridView. Desde este se debe seleccionar un registro y mostrar los
registros de la segunda relacin en un segundo DataGridView.
5. Elaborar un programa que permita realizar una relacin de tres tablas y los
registros se deben mostrar en tres DataGridView.
6. Realizar un programa que permita visualizar un reporte de los registros
relacionados cuyos nit sean mayores que 500.
7. Hacer un programa que permita visualizar un reporte de los registros
relacionados cuyas empresas empiecen por la letra C.
8. Disear un programa que permita realizar y mostrar en un TreeView los
registros relacionados de tres tablas.
9. Crear un programa que permita mostrar en un TreeView los registros
relacionados de dos tablas cuyo nombre de empresa contenga la letra O.
10. Elaborar un programa que permita realizar un reporte con registros relacionados
utilizando CrystalReportViewer.

























163

6. MANEJO DE ARCHIVOS CON ASP.NET
ASP.NET es un marco de trabajo de programacin que se ejecuta desde un servidor
Web que genera y administra dinmicamente formularios Web. ASP.NET ofrece varias
ventajas importantes:
Mejor rendimiento. ASP.NET es un cdigo de Common Language Runtime
compilado que se ejecuta en el servidor. 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. Debido a que ASP.NET se basa en Common Language
Runtime, la eficacia y la flexibilidad de toda esa plataforma se encuentra
disponible para los programadores de aplicaciones Web. 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.
Simplicidad. El marco de trabajo de pgina 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 .NET.
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. Debido a que la informacin de configuracin
se almacena como texto sin formato, se puede aplicar la nueva configuracin sin
ayuda de herramientas de administracin local.
Escalabilidad y disponibilidad. ASP.NET se ha diseado teniendo en cuenta la
escalabilidad, con caractersticas diseadas especficamente a medida, con el fin
de mejorar el rendimiento en entornos agrupados y de mltiples procesadores.
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 estn a
salvo.
6.1 Manejo de Archivos de texto con ASP.NET.

Como se vio en el Captulo 1, Visual Basic .NET permite interactuar con datos externo
a un proyecto, realizar las diferentes operaciones con archivos de texto plano, como son:
la creacin, eliminacin, sobreescritura de archivos, as como guardar, leer o adicionar
informacin a stos, adems importar o exportar informacin desde y hacia Visual
164

Basic .NET. Con ASP.NET y trabajando en el entorno integrado de desarrollo de Visual
Studio 2008 tambin es posible desde formularios Web realizar estas operaciones con
archivos de texto plano.

Para procesar archivos se hace necesario el uso del espacio de nombres
System.IO. El espacio de nombres System.IO contiene enumeraciones para la apertura
de archivos, el acceso a los archivos y el uso compartido de archivos, adems de clases
para las operaciones de rutas de acceso y la manipulacin de flujos de datos.

6.2 Ejemplos de manejo de archivos con ASP.NET.

6.2.1 Cargar archivo con el control FileUpLoad.
Crear un sitio Web FileUpLoadArchivoTexto y realizar un programa que permita a un
usuario cargar un archivo en un formulario Web y guardar dicho archivo en el sitio
Web, utilizando el control FileUpLoad.
NOTA: Si lo considera necesario puede revisar el Anexo B, donde se explica
brevemente la creacin, la interfaz de usuario, el establecimiento de propiedades de los
controles, la escritura de cdigo y la ejecucin de un nuevo sitio 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: 1 Label, 1 TextBox,
1 Button, 1 FileUpLoad.

Figura 6.1 Interfaz de usuario (FileUpLoadArchivoTexto).




165

Establecer las propiedades de los objetos de la interfaz de usuario.
Establezca las siguientes modificaciones a las propiedades en los controles:

Tabla 6.1 Propiedades de los controles del sitio Web FileUpLoadArchivoTexto.

Control Propiedad Valor
Label1 id titulo
Text Cargar Archivo en un
Formulario Web.
Font - Bold true
TextBox1 id texto
Text En blanco
TextMode Multiline
Button1 id boton
Text Cargar Archivo
FileUpLoad1 id cargadorarchivos
Form1 id formulario
Document Title Cargar Archivo en
Formulario Web.
Default.aspx.vb Nombre de archivo (d
clic derecho sobre la
pgina).
pagina.aspx.vb

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


Figura 6.2 Controles con propiedades modificadas (FileUpLoadArchivoTexto).




















NOTA: Si no se puede modificar el ancho, el alto o la posicin de un objeto, seleccione
dicho objeto y del men Formato escoja la opcin Posicin y all en el Estilo de
ubicacin seale el cuadro con el rtulo de nombre Relativo para poder movilizar o
cambiar de tamao el objeto escogido.


166

Escribir cdigo

a) Seleccione el objeto boton, d doble clic para abrir el editor de cdigo
botonguardar_Click y escriba el siguiente cdigo:

Try
If cargadorarchivos.HasFile Then
If (cargadorarchivos.FileBytes.Length > 0) Then
texto.Text = texto.Text & "Tipo de Contenido del Archivo: " &
cargadorarchivos.PostedFile.ContentType & vbCrLf
texto.Text = texto.Text & "Tamao de archivo: " &
cargadorarchivos.PostedFile.ContentLength & vbCrLf
texto.Text = texto.Text & "Nombre del archivo: " & cargadorarchivos.FileName
& vbCrLf
cargadorarchivos.SaveAs(MapPath("./" & cargadorarchivos.FileName))
texto.Text = texto.Text & "El archivo se guardar en: " & MapPath("./") & vbCrLf
texto.Text = texto.Text & "La informacion del archivo es:" &
cargadorarchivos.FileContent.ReadByte
End If
Else
MsgBox("No se ha seleccionado archivo", MsgBoxStyle.Critical, "Cargar Archivo")
End If
Catch ex As Exception
MsgBox("Error:" & ex.Message, MsgBoxStyle.Critical)
End Try

Dentro del bloque Try se pregunta si el objeto cargadorarchivos
(FileUpLoad) tiene escrito en el campo de texto un nombre de archivo utilizando
el mtodo HasFile. Si la respuesta es verdadera, se determina si la longitud del
archivo es mayor que cero utilizando el mtodo Length de la propiedad
FileBytes del objeto cargadorarchivos para visualizar en el objeto texto el tipo
de contenido del archivo por medio de la funcin ContentType de la propiedad
PostedFile, el nombre del archivo (FileName), la ruta donde se guardar el
archivo que se ha cargado (MapPath (./), el contenido del archivo se
mostrar en formato byte por intermedio de la funcin ReadByte de la
propiedad FileContent. Si por el contrario no se ha escrito en el campo de texto
del objeto cargadorarchivos, se mostrar el mensaje No se ha seleccionado
archivo. En el bloque Catch si se genera algn error, se mostrar un mensaje.


Ejecutar la aplicacin Web
Para ejecutar el proyecto pulse la tecla F5 o el icono , se visualizar la siguiente
figura:




167

Figura 6.3 Ejecucin del sitio Web FileUpLoadArchivoTexto.



















Pulse el botn Examinar, seleccione cualquier archivo de texto y luego pulse el
botn Cargar Archivo para visualizar la informacin relativa al archivo, as como la
ruta en donde est guardado dicho archivo; se obtendra una figura similar a la
siguiente:

Figura 6.4 Formulario Web con la informacin del archivo seleccionado.
























168

6.2.2 Manejo de archivos de texto con StreamWriter y StreamReader.

Crear un sitio Web llamado GuardarLeerArchivodeTexto y hacer un programa que
permita a un usuario guardar informacin en un archivo de texto plano, as como leer
dicha informacin, utilizando las clases StreamWriter y StreamReader.

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 TextBox, 2
Button.

Figura 6.5 Interfaz de usuario (GuardarLeerArchivodeTexto).
















Establecer las propiedades de los objetos de la interfaz de usuario
Para el caso del ejemplo establezca las siguientes modificaciones a los controles:

Tabla 6.2 Propiedades de los controles del sitio web GuardarLeerArchivodeTexto.

Control Propiedad Valor
Label1 id titulo
Text Guardar y Leer un archivo de
texto.
Font Bold true
TextBox1 id texto
Text En blanco
TextMode Multiline
Button1 id botonguardar
Text Guardar Informacin
Button2 id botonabrir
Text Leer Informacin
Form1 id formulario
Document Title Guardar/leer archivo de texto
Default.aspx.vb Nombre de archivo (d
clic derecho sobre la
pgina).
pagina.aspx.vb

169

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

Figura 6.6 Interfaz de usuario modificada (GuardarLeerArchivodeTexto).
















Escribir cdigo
a) Seleccione el objeto botonguardar, d doble clic para abrir el editor de cdigo y
escriba el siguiente cdigo:

Try
Dim miruta As String = Server.MapPath("./miarchivo.txt")
Dim archivo As New System.IO.StreamWriter(miruta)
archivo.Write(texto.Text)
archivo.Close()
texto.Text = ""
MsgBox("Informacin guardada...", MsgBoxStyle.Information, "Guardar en archivo")
Catch ex As Exception
MsgBox("No se pudo guardar la informacion", MsgBoxStyle.Critical,
"Guardar en archivo")
End Try

Se definen las variables miruta de tipo String, la cual se inicializa con la
ruta fsica del archivo miarchivo.txt que se guardar en la misma carpeta del
sitio Web y que corresponde a la ruta de acceso virtual al servidor Web,
utilizando la funcin MapPath de la propiedad Server del espacio de nombres
System.Web.HttpServerUtility; la variable archivo asignndosele un espacio
de memoria de tipo System.IO.StreamWriter (), a la cual se le enva como
parmetro la ruta y el nombre del archivo (miruta). Utilizando el mtodo Write
se escribe el contenido del objeto texto en el archivo. Por otro lado, se cierra el
archivo utilizando el mtodo close () y se limpia el objeto texto. Adems se
muestra un mensaje confirmando la accin realizada.

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


Try
Dim miruta As String = Server.MapPath("./miarchivo.txt")

170

Dim archivo As New System.IO.StreamReader(miruta)
texto.Text = archivo.ReadToEnd
archivo.Close()
Catch ex As Exception
MsgBox("No se pudo leer la informacion", MsgBoxStyle.Critical,Guardar archvo)
End Try

Se definen las variables miruta de tipo String, la cual se inicializa con la
ruta fsica del archivo miarchivo.txt que se guardar en la carpeta del nombre
del sitio Web y que corresponde a la ruta de acceso virtual al servidor Web,
utilizando la funcin MapPath de la propiedad Server del espacio de nombres
System.Web.HttpServerUtility; la variable archivo asignndosele un espacio
de memoria de tipo System.IO.StreamReader (). Utilizando el mtodo
ReadToEnd se lee el contenido del archivo y se le asigna al objeto texto. Por
ltimo se cierra el archivo.

Ejecutar la aplicacin Web
Al ejecutarse el proyecto en el entorno de desarrollo de Visual Web Developer/2008, se
visualizar la ventana de depuracin.

Figura 6.7 Ventana de Depuracin.



Seleccione la opcin Modificar el archivo Web.config para habilitar la
depuracin y pulse el botn Aceptar. Se visualizar la figura 6.8. Al digitar el texto
guardando informacin en el archivo de texto, el formulario Web presentara el
siguiente aspecto:

Figura 6.8 Ejecucin Pagina Web (GuardarLeerArchivodeTexto).













171

Si se pulsa el botn Guardar informacin, se limpia el objeto texto y se
mostrar una caja de mensajes reportando que la informacin ha sido guardada y en la
carpeta donde se guard el sitio Web ya se debe encontrar el archivo de texto con la
informacin adicionada. Al pulsar el boton Leer informacin se mostrar en el objeto
texto la informacin del archivo de texto.

Figura 6.9 Mensaje de informacin guardada en el archivo de texto.









6.2.3 Guardar /Leer Archivo de texto con FileSystem
Crear un sitio Web llamado FileSystem y hacer un programa que permita a un usuario
guardar informacin en un archivo de texto plano, leer la informacin de este utilizando
la clase FileSystem.
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 TextBox, 2
Button.

Figura 6.10 Interfaz de usuario (FileSystem)


Establecer las propiedades de los objetos de la interfaz de usuario

Establezca las siguientes modificaciones a los controles:


172

Tabla 6.3 Propiedades de los controles del sitio Web FileSystem.

Control Propiedad Valor
Label1 id titulo
Text Guardar Leer archivo de
texto con FileSystem.
Font - Bold true
TextBox1 id texto
Text En blanco
TextMode Multiline
Button1 id botonguardar
Text Guardar en archivo
Button2 id botonleer
Text Leer de Archivo
Document Title Guardar/Leer Archivo de
Texto.
Form1 id formulario
Default.aspx.vb Nombre de
archivo.
pagina.aspx.vb

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

Figura 6.11 Interfaz de usuario modificada (FileSystem).



















Escribir cdigo

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

Try
Dim archivolibre As Integer = FreeFile()
FileSystem.FileOpen(archivolibre, MapPath("./archivodetexto.txt"),
OpenMode.Output)
FileSystem.PrintLine(archivolibre, texto.Text)

173

FileSystem.FileClose(archivolibre)
texto.Text = ""
MsgBox("Informacion guardada en archivo", MsgBoxStyle.Information,
"Guardar archivo")
Catch ex As Exception
MsgBox("La Informacion no fue guardada en archivo" & ex.Message,
MsgBoxStyle.Critical, "Guardar archivo")
End Try

En el anterior cdigo se crea una variable archivolibre de tipo Integer a
la que se le asigna el valor numrico del archivo libre por intermedio de la
funcin FreeFile. Por otro lado, se utiliza la funcin FileOpen de la clase
FileSystem que recibe como parmetros: archivolibre, valor numrico del
archivo libre; MapPath (./) que corresponde a la ruta de acceso virtual al
servidor Web; OpenMode.OutPut, modo de apertura del archivo (salida). Con
el mtodo PrintLine se imprime el contenido del objeto texto, luego se limpia
dicho objeto y por ltimo se cierra el archivo con la funcin FileClose. Adems
se visualizar el mensaje Informacin guardada en archivo.

b) Seleccione el objeto botonabrir, de doble clic para abrir el editor de cdigo y
escriba el siguiente cdigo:

Try
Dim archivolibre As Integer = FreeFile()
FileSystem.FileOpen(archivolibre, MapPath("./archivodetexto.txt"),
OpenMode.Input)
Dim linea As String
Do Until EOF(archivolibre)
linea = FileSystem.LineInput(archivolibre)
texto.Text = texto.Text & linea & vbCrLf
Loop
FileSystem.FileClose(archivolibre)
Catch ex As Exception
MsgBox("La Informacion no fue leida" & ex.Message, MsgBoxStyle.Critical,
"Leer archivo")
End Try

Se utiliza la funcin FileOpen de la clase FileSystem que recibe como
parmetros: archivolibre, valor numrico del archivo libre; MapPath (./) que
corresponde a la ruta de acceso virtual al servidor Web; OpenMode.InPut,
modo de apertura del archivo (entrada). Se define una variable llamada linea de
tipo String, la cual servir para guardar cada lnea del archivo. Por otro lado, se
crea un ciclo (Do Until Loop) que recorrer el archivo hasta el final (EOF)
lnea por lnea y utilizando el mtodo LineInput de la clase FileSystem se le
asignar dicha informacin al objeto texto, por ltimo se cierra el archivo.

Ejecutar la aplicacin Web
Al ejecutarse el sitio Web se visualizar en el explorador la figura 6.12. Al escribir
guardando informacin en el archivo para leer despus utilizando el botn leer de
archivo en el objeto texto, el formulario Web con la informacin quedara de la
siguiente forma:

174

Figura 6.12 Formulario Web con informacin para ser guardada.



















Al pulsar el botn Guardar en archivo, se guardar dicha informacin en el
archivo archivodetexto.txt en la ruta del sitio Web y el objeto texto quedar en
blanco. Se visualizar el mensaje Informacin guardada en archivo. Si se pulsa el
botn Leer de Archivo, se leer el contenido del archivo de texto y se mostrar la
informacin en el objeto texto.

Figura 6.13 Mensaje de informacin guardada.























175

6.3 Ejercicios de archivos de texto con ASP.NET
1. Hacer un sitio Web que permita guardar 10 datos y leerlos en un archivo de texto
plano utilizando la clase FileSystem.
2. Crear un sitio Web que permita guardar 10 datos y leerlos en un archivo de texto
plano utilizando las clases StreamWriter y StreamReader.
3. Disear un sitio Web que permita cargar archivos slo de extensin .doc utilizando
FileUpLoad.
4. Hacer un sitio Web que permita adicionar informacin a un archivo de texto
previamente creado.
5. Disear un sitio Web que permita importar todos los datos que existan en un archivo
de Excel y visualizarlos en un GridView (apyese en los ejemplos del captulo 1).
6. Elaborar un sitio Web que permita importar todos los datos que existan en un
archivo de Excel y visualizarlos en un DataList (apyese en los ejemplos del
captulo 1).
7. Hacer un sitio Web que permita exportar un rango de datos a una tabla de Word
(apyese en los ejemplos del captulo 1).
8. Crear un sitio Web que permita importar los datos de un archivo de texto a un
GridView (apyese en los ejemplos del captulo 1).
9. Disear un sitio Web que permita exportar los datos de un control DataList a Excel
(apyese en los ejemplos del captulo 1).
10. Realizar un sitio Web que permita exportar los datos de un GridView a Word
(apyese en los ejemplos del captulo 1).



























176

7. BASE DE DATOS CON ASP.NET
Con los proyectos Windows Forms se logr manipular diferentes bases de datos, como
fue realizar la conexin a las bases de datos SQL Server, Access y Oracle, el
desplazamiento entre los registros de una tabla, las operaciones entre una o ms tablas,
la creacin de reportes de una o ms tablas utilizando la tecnologa ADO.NET.

Con ASP.NET tambin es posible realizar dicha manipulacin en diversas bases
de datos utilizando los diferentes controles de los formularios Web para el manejo de
datos. Para trabajar con bases de datos y ASP.NET se debe tener en cuenta la
conceptualizacin sobre bases de datos y el manejo del lenguaje de consulta
estructurado SQL realizada en el Captulo 2.
En este captulo se crearn ejemplos que permitan utilizar los diferentes
controles Web para conectarse, desplazarse, realizar operaciones con una o ms tablas
de la base de datos bdlibrovbnet.mdf de SQL Server y sus tablas clientes, pedidos,
productos y ventas (Ver anexo C).
Por otro lado, si lo considera necesario puede revisar el Anexo B, donde se
explica brevemente la creacin, la interfaz de usuario, el establecimiento de propiedades
de los controles, la escritura de cdigo y la ejecucin de un nuevo sitio Web.

7.1 Ejemplos de manipulacin de bases de datos con ASP.NET

7.1.1 Pagina Web con los campos de una tabla

Dentro de un sitio Web llamado WebCamposTabla, realizar un programa que permita
visualizar en una caja de texto la estructura de la tabla clientes de la base de datos
bdlibrovbnet.mdf de 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 Button, 1 TextBox y 1
Label.

Figura 7.1 Interfaz de usuario (WebCamposTabla).















177

Establecer las propiedades de los objetos de la interfaz de usuario
Establezca las siguientes modificaciones a los controles:

Tabla 7.1 Propiedades de controles proyecto WebCamposTabla.

Control Propiedad Valor
Label1 id titulo
Text Estructura de la tabla clientes.
Font - Bold true
TextMode Multiline
TextBox1 id texto
Text blanco
Button1 id boton
Text Ver Estructura
Form1 id formulario
Document title Estructura de la tabla clientes de SQL
Server,
Default.aspx.vb Nombre de
archivo.
pagina.aspx.vb

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

Figura 7.2 Interfaz de usuario modificada (WebCamposTabla).









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

178

Los espacios de nombres System.Data y System.Data.SqlClient son
necesarios para utilizar las diferentes clases que permitan las operaciones con
bases de datos en una aplicacin Web, en este caso SQL Server.

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

Dim conexion As String = "Data Source=(local)\SQLEXPRESS;Database=bdlibrovbnet;
Integrated Security=True"
Dim datostabla As DataTable
Dim datoscolumna As DataColumn
Dim conjuntodedatos As New DataSet()
Dim seleccion As New SqlDataAdapter("SELECT * FROM clientes", conexion)
seleccion.Fill(conjuntodedatos, "Clientes")
seleccion = Nothing
Dim consulta As String = ""
consulta += "Conexin establecida: " & conexion & vbCrLf & vbCrLf
For Each datostabla In conjuntodedatos.Tables
consulta += "Estructura de la Tabla: " & datostabla.TableName & vbCrLf & vbCrLf
For Each datoscolumna In datostabla.Columns
consulta += datoscolumna.ColumnName & vbTab & "(" &
datoscolumna.DataType.Name & ")" & vbCrLf
Next
Next
texto.Text = (consulta)

Se crea una variable llamada conexion que contendr la cadena de
conexin a la base de datos 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 instal en el computador de
trabajo por lo cual el nombre del servidor es localhost o como
direccin IP 127.0.0.1.
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: datostabla de tipo DataTable;
datoscolumna de tipo DataColumn; conjuntodedatos con asignacin de
espacio de memoria de tipo DataSet; seleccion de tipo SqlDataAdapter a la
cual se le asigna la sentencia SQL (Select * From Clientes) y la cadena de
conexin (conexion), luego se rellena (fill) el objeto seleccin con el conjunto
de datos y el nombre de la tabla, como tambin se libera dicho objeto (nothing).
Por otro lado, se crea una variable llamada consulta de tipo String que
almacenar la cadena de conexin y la estructura de la tabla. Adems se crea un
ciclo externo que recorrer las tablas que contenga el objeto conjuntodedatos en
su propiedad Tables (en este caso solamente estar la tabla clientes) y se
asignar a la variable consulta el texto Estructura de la Tabla: concatenado
con el nombre de la tabla (TableName). En un segundo ciclo se recorrer cada
uno de los campos de la tabla seleccionada y se adicionar a la variable consulta
el nombre del campo utilizando la propiedad ColumnName del objeto
179

datoscolumna y el nombre del tipo de dato de dicho campo (DataType.Name),
por ltimo se muestra en el objeto texto el contenido de la variable consulta.

Ejecutar la aplicacin Web
Al ejecutarse la aplicacin Web, se visualizar la figura 7.3:

Figura 7.3 Ejecucin sitio del Web WebCamposTabla.









Al pulsarse el botn Ver Estructura se visualizar la cadena de conexin, los
campos y el tipo de dato de la tabla clientes, como se aprecia en la siguiente figura:

Figura 7.4 Pagina Web con la estructura de la tabla clientes.














180

7.1.2 Conexin a una base de datos desde un Formulario Web
Dentro de un sitio Web llamado ConexionBDWebSQLServer, crear un programa que
permita a un usuario realizar una conexin a una base de datos de SQL Server y
mostrar los datos de una tabla llamada clientes en un objeto GridView, utilizando
cdigo de Visual Basic .NET.
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: 2 Label y 1 GridView.

Figura 7.5 Interfaz de usuario (ConexionBDWebSQLServer).




















Establecer las propiedades de los objetos de la interfaz de usuario

Establezca las siguientes modificaciones a los controles:

Tabla 7.2 Propiedades de controles proyecto ConexionBDWebSQLServer.


Control Propiedad Valor
GridView1 id tabla
Label1 id titulo
Text Conexin a una base de datos de SQL
SERVER tabla clientes.
Font - Bold true
Label2 id etiquetaregistros
Text blanco
Font - Bold True
Form1 id formulario
Document title Conexin a una base de datos
Default.aspx.vb Nombre de
archivo.
pagina.aspx.vb

181

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

Figura 7.6 Interfaz de usuario modificada (ConexionBDWebSQLServer).




















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

Los espacios de nombres System.Data y System.Data.SqlClient son necesarios
para utilizar las diferentes clases que permitan las operaciones con bases de
datos, en este caso SQL Server.

b) D doble clic sobre la pgina para abrir el editor de cdigo del procedimiento
Page_Load 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

182

tabla.DataBind()
etiquetaregistros.text=Total de Registros: & talabdedatos.Rows.Count
Catch ex As Exception
MsgBox("Error: " & ex.Message)
End Try

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
cuadrcula 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 tabla 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 tabla el origen de datos (DataBind()) y por ltimo se
establece a la propiedad Text del objeto etiquetaregistros el texto Total de
Registros: 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.


Ejecutar la aplicacin Web
Al ejecutarse la aplicacin Web, se visualizar en la pgina Web los datos de la tabla
clientes de la base de datos bdlibrovbnet.mdf de SQL Server en el objeto tabla:

Figura 7.7 Formulario Web con datos de la tabla clientes.











183

7.1.3 Conexin a SQL Server con el control DetailsView
Dentro de un sitio Web llamado ConexionWebDetailsView, realizar un programa que
permita a un usuario hacer una conexin a una base de datos de SQL Server y mostrar
los datos de tabla clientes en un objeto 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 y 1 DetailsView.

Figura 7.8 Interfaz de usuario (ConexionWebDetailsView).





















Establecer las propiedades de los objetos de la interfaz de usuario.
Establezca las siguientes modificaciones a los controles:

Tabla 7.3 Propiedades de controles del sitio Web ConexionWebDetailsView.

Control Propiedad Valor
DetailsView1 id detalles
Label1 id titulo
Text Conexin a una base de datos de SQL
SERVER - DetailsView.
Font - Bold true
Form1 id formulario
Document title Conexin a una base de datos con un
DetailsView
Default.aspx.vb Nombre de
archivo.
pagina.aspx.vb

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

184

Figura 7.9 Interfaz de usuario con controles modificados.



















Establecer la conexin

Seleccione el objeto DetailsView llamado detalles y en la flecha que aparece en el lado
superior derecho, d clic en el mouse para visualizar las Tareas de DetailsView:

Figura 7.10 Ventana de Tareas de DetailsView.


Seleccione la opcin Elegir origen de datos y <Nuevo origen de datos>,
para visualizar la siguiente figura:





185

Figura 7.11 Ventana tipo origen de datos.

Seleccione el objeto Base de datos y cambie el identificador para el origen de
datos SqlDataSource1 por datos y pulse el botn Aceptar, para ver la siguiente figura:

Figura 7.12 Ventana Elegir la conexin de datos.
























186

Pulse el botn Nueva Conexin, se visualizar la ventana de Agregar
conexin:

Figura 7.13 Ventana Agregar conexin.




















En la ventana que se visualiza elija como origen de datos Microsoft SQL
Server y la base de datos bdlibrovbnet y pulse Aceptar. Se visualizar la siguiente
figura:

Figura 7.14 Ventana con la base de datos seleccionada.






















187

Pulse el botn Siguiente> para visualizar el siguiente mensaje:

Figura 7.15 Ventana configuracin de origen de datos.




















Cambie el nombre de la conexin bdlibrovbnetConnectionString1 por
conexion y pulse el botn Siguiente para ver la ventana para configurar la instruccin
Select.

Figura 7.16 Ventana para configurar la instruccin Select.






















188

En esta ventana se debe seleccionar los datos a mostrar. Una forma es utilizar
instrucciones SQL y la otra es escoger una tabla o vista. Eligiendo la segunda opcin
seleccione la tabla cliente y elija * para ver todos los registros de la tabla clientes y
pulse el botn Siguiente para ver la ventana Consulta de prueba.

Figura 7.17 Ventana Consulta de prueba.





















Pulsando el botn Consulta de prueba se visualizarn los datos, como se
aprecia en la figura 7.17. Pulse el botn Finalizar para volver al diseo de la pgina:

Figura 7.18 Ventana de diseo pagina.aspx.




















189

Ejecutar la aplicacin Web
Al ejecutarse la aplicacin Web, se visualizar en la pgina Web el primer registro de la
tabla clientes de la base de datos bdlibrovbnet.mdf de SQL Server en el objeto
detalles:

Figura 7.19. Formulario Web con el primer registro de la tabla clientes.





















Como se puede apreciar, solamente se puede ver el primer registro de la tabla
clientes. Si se desea ver el resto de los registros vuelva a modo diseo y nuevamente
seleccione el objeto detalles y en la flecha que aparece en el lado superior derecho, d
clic para visualizar las Tareas de DetailsView y habilite el cuadro de verificacin
Habilitar paginacin, como se aprecia en la siguiente figura:

Figura 7.20 Objeto detalles con la opcin Habilitar paginacin.

190


Nuevamente ejecute el sitio Web para visualizar la pgina Web con la
paginacin de registros.

Figura 7.21 Pgina Web con registros de la tabla clientes y paginacin.




















En este momento puede moverse entre los registros de la tabla clientes
seleccionando el valor numrico que desee. Tambin es posible obtener una apariencia
ms agradable para visualizar los datos en el objeto detalles. Otra vez en modo de
diseo seleccione el objeto detalles y en la ventana Tareas de DetailsView seleccione
la opcin Formato automtico para ver la ventana Autoformato.

Figura 7.22 Ventana para cambio de formato del DetailsView.


191


















Si selecciona el esquema Pizarra y se pulse el botn Aceptar, se obtendr en
modo diseo la siguiente figura:

Figura 7.23 Objeto DetailsView con formato Pizarra.


Al ejecutarse nuevamente el sitio Web, se aprecia la siguiente figura:

Figura 7.24 Pgina Web con el objeto DetailsView con formato Pizarra.



192


























7.1.4 Pgina Web con desplazamiento de registros

Crear un sitio Web llamado WebListViewDataPager y realizar un programa que
permita visualizar los registros de la tabla clientes de la base de datos
bdlibrovbnet.mdf de SQL Server en un control ListView. El usuario deber poder
desplazarse cada cinco registros de la tabla utilizando los botones: Primero, Siguiente,
Anterior y ltimo.

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 ListView.

Figura 7.25 Interfaz de usuario (WebListViewDataPager).






193





Establecer las propiedades de los objetos de la interfaz de usuario
Establezca las siguientes modificaciones a los controles:

Tabla 7.4 Propiedades de controles del sitio WebListViewDataPager.

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

Control Propiedad Valor
ListView1 id lista
Form1 id formulario
Document title Desplazamiento de registros con un
ListView.
Default.aspx.vb Nombre de
archivo.
pagina.aspx.vb





Establecer la conexin

Seleccione el objeto ListView llamado lista y en la flecha que aparece en el lado
superior derecho, d clic en el mouse para visualizar las Tareas de ListView:

Figura 7.26 Ventana de las Tareas de ListView.

Seleccione la opcin Elegir origen de datos y <Nuevo origen de datos>,
para visualizar la siguiente figura:

Figura 7.27 Ventana tipo origen de datos.
194



Seleccione el objeto Base de datos y cambie el identificador para el origen de
datos SqlDataSource1 por datos y pulse el botn Aceptar, para ver la siguiente figura:





Figura 7.28 Ventana elegir la conexin de datos.



















195







Pulse el botn Nueva Conexin, se visualizar la ventana Agregar conexin:

Figura 7.29 Ventana Agregar conexin.



















En la ventana que se visualiza elija como origen de datos Microsoft SQL
Server y la base de datos bdlibrovbnet y pulse Aceptar. Se visualizar la siguiente
figura:
Figura 7.30 Ventana con la base de datos seleccionada.



















196






Pulse el botn Siguiente> para visualizar la ventana de configuracin de origen
de datos:

Figura 7.31 Ventana configuracin de origen de datos.






















Cambie el nombre de la conexin bdlibrovbnetConnectionString1 por
conexion y pulse el botn Siguiente para ver la ventana para configurar la instruccin
Select.

Figura 7.32 Ventana para configurar la instruccin Select.

197





















En esta ventana se debe seleccionar los datos a mostrar. Una forma es utilizar
instrucciones SQL y la otra es escoger una tabla o vista. Eligiendo la segunda opcin
seleccione la tabla cliente y elija * para ver todos los registros de la tabla clientes y
pulse el botn Siguiente para ver la ventana Consulta de prueba.

Figura 7.33 Ventana Consulta de prueba.


















Pulsando el botn Consulta de prueba se visualizarn los datos, como se
aprecia en la figura 7.33. Pulse el botn Finalizar para volver al diseo de la pgina:



198

Figura 7.34 Ventana de diseo control ListView.

Ahora seleccione la opcin Configurar ListView en la ventana Tareas de
ListView.

Figura 7.35. Ventana para seleccionar la opcin Configurar ListView.



Al pulsar la opcin se visualizar la ventana de diseo del ListView, escoja
como diseo cuadrcula, como estilo Multicolor y seleccione Habilitar paginacin,
se obtendra la siguiente figura:

Figura 7.36 Configurar el tipo de diseo, el estilo y habilitar la paginacin.



















A
l pulsar el botn Aceptar, nuevamente se regresa a modo diseo de la pgina, como se
muestra en la figura:



199


Figura 7.37 Modo diseo del sitio WebListViewDataPager.





















Seleccione la pestaa Dividir y busque la etiqueta asp:DataPager y adicione la
propiedad PageSize con un valor igual a cinco (5), como se muestra en la figura:

Figura 7.38 Cdigo del objeto DataPager del sitio WebListViewDataPager.



Ejecutar sitio Web



200

Al ejecutarse el sitio Web, se visualizar la pgina con los cinco primeros registros de la
tabla clientes, como tambin, los botones de desplazamiento.

Figura 7.39 Pgina con un ListView y botones de desplazamiento.


Si la tabla contiene ms de cinco registros se activarn los botones Siguiente,
ltima. El usuario podr pulsar el botn Siguiente y se desplazar a los prximos cinco
registros de la tabla. Pulsando los diferentes botones se podr desplazar por todos los
registros que contenga la tabla.

Figura 7.40 Pgina con los siguientes cinco registros.
7.1.5 Pgina Web para insertar registros en una tabla
Crear un sitio Web llamado InsertarDatosWeb y disear un programa que permita
insertar registros en una tabla utilizando el control DetailsView. Adems se deben poder
visualizar en una cuadrcula los registros de dicha tabla.

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: 2 Label, 1 DetailsView,
1 DataGridView.
Figura 7.41 Interfaz de usuario (InsertarDatosWeb).


201























Establecer las propiedades de los objetos de la interfaz de usuario

Establezca las siguientes modificaciones a los controles:

Tabla 7.5 Propiedades de controles del sitio InsertarDatosWeb.


Control Propiedad Valor
Label1 ID titulo
Text Insertar un registro en la tabla Clientes
Font - Bold true
Label2 ID titulotabla
Text Registros de la tabla Clientes.
Font - Bold true
DetailsView1 ID detalles
GridView1 ID tabla
Form1 ID formulario
Document title Insertar un registro en una tabla.
Default.aspx.vb Nombre de
archivo.
pagina.aspx.vb


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





202

Figura 7.42 Interfaz de usuario modificada (InsertarDatosWeb).

Establecer la conexin

Seleccione el objeto DetailsView llamado detalles y en la flecha que aparece en el lado
superior derecho, d clic en el mouse para visualizar las Tareas de DetailsView:

Figura 7.43 Ventana de las Tareas de DetailsView.



203

Seleccione la opcin Elegir origen de datos y <Nuevo origen de datos>,
para visualizar la siguiente figura:

Figura 7.44 Ventana tipo origen de datos.






















Seleccione el objeto Base de datos y cambie el identificador para el origen de
datos SqlDataSource1 por datos y pulse el botn Aceptar, para ver la siguiente figura:

Figura 7.45 Ventana elegir la conexin de datos.






















204

Pulse el botn Nueva Conexin, se visualizar la ventana Agregar conexin:

Figura 7.46 Ventana Agregar conexin.




















En la ventana que se visualiza elija como origen de datos Microsoft SQL
Server y la base de datos bdlibrovbnet y pulse Aceptar. Se visualizar la siguiente
figura:

Figura 7.47 Ventana con la base de datos seleccionada.























205

Pulse el botn Siguiente> para visualizar la ventana de configuracin de origen
de datos:

Figura 7.48 Ventana configuracin de origen de datos.




















Cambie el nombre de la conexin bdlibrovbnetConnectionString1 por
conexion y pulse el botn Siguiente para ver la ventana para configurar la instruccin
Select.

Figura 7.49 Ventana para configurar la instruccin Select.




















206

Seleccione la tabla clientes y elija * para ver todos los registros de la tabla
clientes. Adems pulse el botn Avanzadas para ver la ventana de opciones de
generacin de consultas SQL avanzadas.

Figura 7.50 Ventana Consulta de prueba.

















Habilite las opciones Generar instrucciones Insert, Update y Delete, Usar
concurrencia optimista y pulse el botn Aceptar para ver nuevamente la ventana de
configurar origen de datos - datos.

Figura 7.51 Configurar origen de datos - Consulta de prueba.























207

Pulse el botn Finalizar para volver al diseo de la pgina:

Figura 7.52 Ventana diseo del sitio Web InsertardatosWeb.



Habilite la opcin Habilitar insercin en la ventana de Tareas de DetailsView.
Se observar la siguiente figura:

Figura 7.53 DetailsView con la opcin Habilitar insercin habilitada.


Ahora seleccione el objeto tabla y en las Tareas de GridView en la opcin
elegir origen de datos escoja el objeto datos para visualizar la siguiente figura:







208

Figura 7.54 Objeto tabla con el objeto datos como origen de datos.



Ejecutar el sitio Web

Al ejecutarse el sitio Web, se visualizar la pgina con los objetos DetailsView y
GridView. En el objeto DetailsView se muestra el primer registro de la tabla clientes y
en el objeto GridView se visualizan todos los registros de dicha tabla.

Figura 7.55 Pgina Web con los objetos DetailsView y GridView.



























209

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

Figura 7.56 Pgina Web para insertar registros.






















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

Figura 7.57 Pgina Web con la informacin a insertar.





















210

Al pulsarse el link Insertar se guardarn los datos en la tabla clientes y
nuevamente se mostrar el primer registro y el link Nuevo, adems se visualizar en el
objeto tabla el nuevo registro.

Figura 7.58 Pgina Web con el registro insertado.





























7.1.6 Pagina Web para eliminar registros de una tabla
Crear un sitio Web llamado EliminarRegistrosWeb y disear un programa que permita
eliminar un determinado registro de la tabla clientes. El registro lo deber escoger el
usuario por medio de la paginacin de registros.

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: 2 Label, 1 DetailsView,
1 DataGridView.

Establecer las propiedades de los objetos de la interfaz de usuario.
Establezca las siguientes modificaciones a los controles:






211

Tabla 7.6 Propiedades de controles del sitio EliminarRegistrosWeb.

Control Propiedad Valor
Label1 ID titulo
Text Eliminar un registro en la tabla Clientes
Font - Bold true
Label2 ID titulotabla
Text Registros de la tabla Clientes.
Font - Bold true
DetailsView1 ID detalles
GridView1 ID tabla
Form1 ID formulario
Document title Eliminar un registro en una tabla.
Default.aspx.vb Nombre de
archivo.
pagina.aspx.vb

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

Figura 7.59 Interfaz de usuario (EliminarRegistrosWeb).






















Establecer la conexin

Seleccione el objeto DetailsView llamado detalles y en la flecha que aparece en el lado
superior derecho, d clic en el mouse para visualizar las Tareas de DetailsView.
Realice la eleccin del origen de datos y los pasos subsiguientes segn el ejercicio
anterior (desde la figura 7.43 hasta la 7.51), obtendr como resultado final la siguiente
figura:





212

Figura 7.60 Ventana de diseo de sitio Web EliminarRegistrosWeb.



Habilite las opciones Habilitar paginacin, Habilitar eliminacin en la
ventana de Tareas de DetailsView. Se observar la siguiente figura:

Figura 7.61 Opciones Habilitar paginacin y Habilitar eliminacin habilitadas.


Ahora seleccione el objeto tabla y en las Tareas de GridView en la opcin
elegir origen de datos escoja el objeto datos para visualizar la siguiente figura:







213

Figura 7.62 Objeto tabla con el objeto datos como origen de datos.


Ejecutar el sitio Web
Al ejecutarse el sitio Web, se visualizar la pgina con los objetos DetailsView y
GridView. En el objeto DetailsView se muestra el primer registro de la tabla clientes y
en el objeto GridView se visualizan los registros de dicha tabla.

Figura 7.63 Pgina Web con los objetos DetailsView y GridView.






















Busque el registro que se insert en el ejemplo anterior utilizando los link
numricos. Se visualiza la siguiente figura.


214

Figura 7.64 Pgina Web para eliminar registros.





















Al pulsarse el link Eliminar se borrar de la tabla el registro seleccionado en la
tabla clientes y nuevamente se mostrar el primer registro, adems se visualizar en el
objeto tabla los registros actuales.

Figura 7.65 Pgina Web con el registro eliminado.























215

7.1.7 Pgina Web para modificar registros
Crear un sitio Web llamado ModificarRegistrosWeb y disear un programa que
permita modificar un determinado registro de la tabla clientes. El registro lo deber
escoger el usuario utilizando la paginacin de registros.

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: 2 Label, 1 DetailsView,
1 DataGridView.

Establecer las propiedades de los objetos de la interfaz de usuario.
Establezca las siguientes modificaciones a los controles:

Tabla 7.7 Propiedades de controles del sitio ModificarRegistrosWeb.

Control Propiedad Valor
Label1 ID titulo
Text Modificar un registro en la tabla Clientes
Font - Bold true
Label2 ID titulotabla
Text Registros de la tabla Clientes.
Font - Bold true
DetailsView1 ID detalles
GridView1 ID tabla
Form1 ID formulario
Document title Modificar un registro en una tabla.
Default.aspx.vb Nombre de
archivo.
pagina.aspx.vb

La interfaz de usuario queda como muestra la siguiente figura:

Figura 7.66 Interfaz de usuario (ModificarRegistrosWeb).



















216

Establecer la conexin

Seleccione el objeto DetailsView llamado detalles y en la flecha que aparece en el lado
superior derecho, d clic en el mouse para visualizar las Tareas de DetailsView.
Realice la eleccin del origen de datos y los pasos subsiguientes segn el ejercicio 7.1.5
Pgina Web para insertar registros (desde la figura 7.43 hasta la 7.51), obtendr
como resultado final la siguiente figura:

Figura 7.67 Ventana diseo sitio Web ModificarRegistrosWeb.


Habilite las opciones Habilitar paginacin, Habilitar edicin en la ventana de
Tareas de DetailsView. Se observar la siguiente figura:

Figura 7.68 Opciones Habilitar paginacin y Habilitar edicin habilitadas.




217

Ahora seleccione la opcin Editar campos del objeto detalles para visualizar la
siguiente figura:

Figura 7.69 Ventana Campos del objeto detalles.























En la ventana Campos seleccionados seleccione los objetos Editar, Actualizar,
Cancelar y en las Propiedades de CommandField en Apariencia en la propiedad
ButtonType cambie Link por Button y pulse el botn Aceptar, para visualizar la
siguiente figura:

Figura 7.70 Objeto detalles con botn Editar.


Ahora seleccione el objeto tabla y en las Tareas de GridView en la opcin
elegir origen de datos escoja el objeto datos para visualizar la siguiente figura:




218

Figura 7.71 Objeto tabla con el objeto datos como origen de datos.



Ejecutar el sitio Web

Al ejecutarse el sitio Web, se visualizar la pgina con los objetos DetailsView y
GridView. En el objeto DetailsView se muestra el primer registro de la tabla clientes y
en el objeto GridView se visualizan los registros de dicha tabla.

Figura 7.72 Pgina Web con los objetos DetailsView y GridView.

























219

Por ejemplo, si se desea modificar el primer registro de la tabla pulse el botn
Editar para que las cajas de texto queden en modo de edicin y se visualicen los
botones Actualizar y Cancelar.

Figura 7.73 Pgina Web para modificar un registro.





















Al realizar en el campo empresa el cambio Canasticos Bacanos por Canasticos
Cheveres y pulsar el botn Actualizar se modificar el registro seleccionado en la tabla
clientes, adems se visualizar en el objeto tabla los registros actuales.

Figura 7.74 Pgina Web con el registro modificado.





















220

7.1.8 Pgina Web con un informe de los registros de una tabla
Crear un sitio Web llamado ReporteTablaWeb y disear un programa que permita
visualizar el reporte de los registros de una tabla.

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.

Figura 7.75 Interfaz de usuario (ReporteTablaWeb).




Establecer las propiedades de los objetos de la interfaz de usuario

Establezca las siguientes modificaciones a los controles:

Tabla 7.8 Propiedades de controles del sitio ReporteTablaWeb.


Control Propiedad Valor
MicrosoftReportViewer ID reporte
Form1 ID formulario
Document title Reporte web de una tabla.
Default.aspx.vb Nombre de
archivo.
pagina.aspx.vb


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





221

Figura 7.76 Interfaz de usuario modificada (ReporteTablaWeb).






















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 derecho
del objeto reporte para ver la ventana Tareas de ReportViewer y escoger la opcin
Elegir informe.

Figura 7.77 Seleccin Tareas de ReportViewer Elegir informe.



Seleccione <Informe de Servidor>, para visualizar la siguiente figura:


222

Figura 7.78 Elegir informe Informe servidor.


Aqu seleccione la opcin Disear nuevo informe, se visualizar el asistente de
informes.

Figura 7.79 Asistente para informes.
























D clic en Siguiente> para ver la ventana del asistente para la configuracin de
orgenes de datos.




223

Figura 7.80 Ventana Elegir la conexin de datos.





















D clic en el botn Nueva Conexin. En la ventana que se visualiza elija como
origen de datos Microsoft SQL Server y la base de datos bdlibrovbnet.

Figura 7.81 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:


224

Figura 7.82 Ventana con la base de datos seleccionada.

















| Pulse Siguiente> para visualizar el siguiente mensaje:

Figura 7.83 Ventana Microsoft Visual Studio.


Pulse el botn S para copiar el archivo de datos en la carpeta en donde guard el
sitio Web y visualizar la ventana de guardar cadena de conexin:

Figura 7.84 Ventana Guardar cadena de conexin.


















225

Cambie el nombre de la conexin que all aparece por conexion y pulse el botn
Siguiente>, se visualizar la siguiente figura:

Figura 7.85 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 figura:

Figura 7.86 Asistente para informes seleccionar el origen de datos.























Pulse los signos (+) para desplegar la tabla. D clic en Siguiente> para


226

visualizar la ventana de seleccin de tipo de informe.

Figura 7.87 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 7.88 Asistente para informes disear la tabla.























227

Seleccione el campo nit y pulse el boton Grupos, el resto de campos pselos a
la ventana Detalles con el botn Detalles>, se obtiene la siguiente figura:

Figura 7.89. Diseo de la tabla con los campos seleccionados.





















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

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























228

Seleccione la opcin Escalonado o Bloquear y d clic en Siguiente> para
visualizar la ventana de estilo de la tabla.

Figura 7.91 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 7.92 Ventana de finalizacin del asistente de informes.























229

Donde aparece el nombre del informe cmbielo por Reporte Web Tabla
Clientes y d clic en Finalizar> para visualizar el diseo final del informe.

Figura 7.93 Ventana de diseo reporte Web.



Seleccione nuevamente la pgina aspx, pulse la flecha del objeto reporte y
escoja la opcin elegir informe.

Figura 7.94 Ventana para elegir informe.


Seleccione el informe Reporte Web Tabla Clientes.rdlc, se visualizar la
siguiente figura:







230

Figura 7.95 Ventana con el informe Reporte Web Tabla Clientes.


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 7.96 Pagina Web con el informe de los registros de la tabla clientes.




231

7.2 Ejercicios de bases de datos con ASP.NET


1. Crear un sitio Web que permita eliminar todos los registros de una tabla cuyos
nombres de empresa contengan la letra M.
2. Hacer un sitio Web que permita visualizar los registros de una tabla de una base
de datos de SQL Server en un control DataList.
3. Realizar un sitio Web que permita visualizar los registros de una tabla de una
base de datos de SQL Server en un control Repeater.
4. Elaborar un sitio Web que permita ejecutar instrucciones SQL en un campo de
texto y visualizar los resultados en un objeto GridView.
5. Disear un sitio Web que permita actualizar un campo numrico de una tabla de
una base de SQL Server.
6. Crear un sitio Web que permita importar todos los datos que existan en un
archivo de Excel y visualizarlos en un control FormView.
7. Hacer un sitio Web que permita mostrar los registros de una tabla de una base de
datos cuyo nombre de ciudad empiecen con CA.
8. Realizar un sitio web que permita la creacin de reporte por un rango
determinado.
9. Hacer un sitio Web que permita visualizar en un control DataList los registros de
una tabla de Access.
10. Disear un sitio Web que permita visualizar en un reporte los registros de una
tabla ordenados alfabticamente.



























232

8. MANEJO DE TABLAS RELACIONADAS CON ASP.NET
Como se vio en el Captulo 5 es posible obtener una relacin entre las tablas
pertecenientes a una base de datos. Para que la relacin entre tablas se cumpla, como
minimo dos tablas deben tener en comn un campo. Una de las tablas tendr como llave
primaria el campo comn y sta se llamar tabla principal, la otra tabla no necesita que
el campo comn sea llave primaria, a sta se le llamar tabla secundaria.

Tambin con sitios Web ASP.NET se puede realizar el desplazamiento entre los
registros de las tablas relacionadas, como las operaciones de insercin, modificacin,
consulta y eliminacin, as como la generacin de informes.

8.1 Ejemplos de relacin entre tablas de una base de datos con ASP.NET

8.1.1 Relacin de dos tablas con DropDownList y GridView

Crear un sitio Web llamado RelacionDosTablasWeb, que permita a un usuario
seleccionar el nombre de una empresa desde un control desplegable y en una cuadrcula
se visualicen 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 Web en la posicin deseada: 3 Label, 1
DropDownList, 1 GridView.

Figura 8.1. Interfaz de usuario (RelacionDosTablasWeb)

Establecer las propiedades de los objetos de la interfaz de usuario
Establezca las siguientes modificaciones a los controles:


233

Tabla 8.1 Propiedades de controles del sitio Web RelacionDosTablasWeb.

Control Propiedad Valor
Label1 ID titulo
Text Relacin de tablas con un
DropDownList y un GridView.
Font - Bold true
Label2 ID txtempresas
Text Seleccione empresa:
Label3 ID txtpedidos
Text Registros relacionados.
DropDownList1 ID listaempresas
GridView1 ID tabla
Form1 ID formulario
Document title Relacin de tablas.
Default.aspx.vb Nombre de
archivo.
pagina.aspx.vb



Figura 8.2 Interfaz de usuario modificada (RelacionDosTablasWeb).



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.




234

Figura 8.3 Ventana de las Tareas del DropDownList.










Seleccione la opcin Elegir origen de datos, para visualizar la siguiente figura:

Figura 8.4 Ventana para configuracin de orgenes de datos.























En la opcin Seleccionar un origen de datos escoja <Nuevo origen de datos>
y pulse el botn Aceptar, para ver la ventana de eleccin de tipo de origen de datos.



235

Figura 8.5 Ventana para elegir tipo de origen de datos.























Seleccione el objeto Base de datos y cambie el identificador para el origen de
datos SqlDataSource1 por datos y pulse el botn Aceptar, para ver la siguiente figura:

Figura 8.6 Ventana elegir la conexin de datos.
























236

Pulse el botn Nueva Conexin, se visualizar la ventana Agregar conexin:

Figura 8.7 Ventana Agregar conexin.




















En la ventana que se visualiza elija como origen de datos Microsoft SQL
Server y la base de datos bdlibrovbnet y pulse Aceptar. Se visualizar la siguiente
figura:

Figura 8.8 Ventana con la base de datos seleccionada.






















237

Pulse el botn Siguiente> para visualizar la ventana de configuracin de origen
de datos datos:

Figura 8.9 Ventana configuracin de origen de datos - datos.



















Cambie el nombre de la conexin bdlibrovbnetConnectionString1 por
conexion y pulse el botn Siguiente para ver la ventana para configurar la instruccin
Select.

Figura 8.10 Ventana para configurar la instruccin Select.






















238

Seleccione la tabla clientes y elija * para ver todos los registros de la tabla
clientes y pulse el botn Siguiente para ver la ventana de Consulta de prueba.

Figura 8.11 Ventana de Consulta de prueba.




















Pulse el botn Finalizar para volver a la ventana de elegir un origen de datos.
Cambie en la opcin seleccionar un campo de datos para mostrar en DropDownList nit
por empresa. Se observar la siguiente figura:

Figura 8.12 Ventana de datos a mostrar en el DropDownList.






















239

Pulse el botn Aceptar para volver a modo diseo.

Figura 8.13 Ventana modo diseo del sitio Web RelacionDosTablasWeb.

Habilite la opcin Habilitar AutoPostBack (hace un llamado al servidor para
devolver los datos seleccionados) en la ventana Tareas de DropDownList. Adems
seleccione el objeto tabla. Se observar la siguiente figura:

Figura 8.14 Objeto tabla seleccionado.



















En Tareas de GridView en la opcin elegir origen de datos escoja <Nuevo
origen de datos> para visualizar la siguiente figura:


240

Figura 8.15 Ventana eleccin tipo de origen de datos (objeto tabla).






















Seleccione el objeto Base de datos y cambie el identificador para el origen de
datos SqlDataSource1 por datospedidos y pulse el botn Aceptar, para ver la
siguiente figura:

Figura 8.16 Ventana elegir la conexin de datos.
























241

D clic en la flecha y escoja el objeto llamado conexion. Se observar la
siguiente figura:

Figura 8.17 Ventana Elegir conexin de datos con el objeto conexion.




















Pulse el botn Siguiente para ver la ventana para configurar la instruccin
Select.

Figura 8.18 Ventana para configurar la instruccin Select.























242

Seleccione la tabla pedidos y elija * para ver todos los registros de la tabla
pedidos. La ventana sera similar a la siguiente figura:

Figura 8.19 Ventana con la tabla pedidos seleccionada.























Pulse el botn WHERE para visualizar la ventana Agregar clusula WHERE.

Figura 8.20 Ventana Agregar clusula WHERE.





















243

Seleccione en la ventana Columna el campo nit, en la ventana Operador el
signo igual (=), en la ventana Origen la opcin Control, en la ventana Id. de control
seleccione el objeto listaempresas y pulse el botn Agregar para ver la siguiente
figura:

Figura 8.21 Ventana con la clusula WHERE agregada.




















Pulse el botn Aceptar para volver a la ventana Configurar origen de datos
datospedidos.

Figura 8.22 Ventana Configurar origen de datos datospedidos.





















244

Pulse el botn Siguiente para ver la ventana Consulta de prueba.

Figura 8.23 Ventana Consulta de prueba.





















Si desea realizar una prueba pulse el botn Consulta de prueba para ver la
ventana de Editor de valores del parmetro.

Figura 8.24 Ventana Editor de valores del parmetro.






















245

En el campo de texto Valor escriba un valor de un nit que se encuentre en la
tabla clientes (100 para nuestro caso) y pulse el botn Aceptar para ver todos los
registros relacionados con la tabla pedidos. Si existe relacin se observara la siguiente
figura:

Figura 8.25 Ventana Consulta de prueba (relacin clientes pedidos).





















Pulse el botn Finalizar para volver a modo diseo del sitio Web.

Figura 8.26. Ventana de diseo sitio Web RelacionDosTablasWeb.

















Ejecutar el sitio Web

Al ejecutarse el sitio Web, se observan en la pgina los objetos DropDownList y


246

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 8.27 Pgina Web con la relacin clientes - pedidos.













8.1.2 Relacin de tablas utilizando GridView y FormView
Disear un sitio Web llamado RelacionGridViewFormViewWeb, que permita a un
usuario seleccionar de un control GridView un registro de la tabla clientes y visualizar
en un control FormView todos los registros relacionados con la tabla pedidos 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: 3 Label, 1 GridView, 1
FormView.

Figura 8.28. Interfaz de usuario (RelacionGridViewFormViewWeb)




















247

Establecer las propiedades de los objetos de la interfaz de usuario
Establezca las siguientes modificaciones a los controles:

Tabla 8.2 Propiedades de controles sitio Web RelacionGridViewFormViewWeb.

Control Propiedad Valor
Label1 ID titulo
Text Relacin de tablas con GridView
y FormView.
Font - Bold true
Label2 ID txttabla
Text Seleccione Clientes
Label3 ID txtforma
Text Pedidos relacionados con el
Cliente.
FormView1 ID forma
GridView1 ID tabla
Form1 ID formulario
Document title Relacin con GridView y
FormView.
Default.aspx.vb Nombre de
archivo.
pagina.aspx.vb


Figura 8.29 Interfaz de usuario modificada (RelacionGridViewFormViewWeb).






















Establecer la conexin
Seleccione el objeto GridView llamado tabla y en la flecha que aparece en el lado
superior derecho, d clic en el mouse para visualizar las Tareas de GridView.



248

Figura 8.30 Ventana de las Tareas del GridView.











Seleccione la opcin Elegir origen de datos, para visualizar la siguiente figura:

Figura 8.31 Ventana para elegir tipo de origen de datos.






















Seleccione el objeto Base de datos y cambie el identificador para el origen de
datos SqlDataSource1 por datosclientes y pulse el botn Aceptar, para ver la siguiente
figura:



249

Figura 8.32 Ventana elegir la conexin de datos.





















Pulse el botn Nueva Conexin, se visualizar la ventana Agregar conexin:

Figura 8.33 Ventana Agregar conexin.




















En la ventana que se visualiza elija como origen de datos Microsoft SQL
Server y la base de datos bdlibrovbnet y pulse Aceptar. Se visualizar la siguiente
figura:



250

Figura 8.34 Ventana con la base de datos seleccionada.





















Pulse el botn Siguiente> para visualizar la ventana de configuracin de origen
de datos datosclientes:

Figura 8.35 Ventana configuracin de origen de datos - datos.



















Cambie el nombre de la conexin bdlibrovbnetConnectionString1 por
conexion y pulse el botn Siguiente para ver la ventana para configurar la instruccin
Select.


251

Figura 8.36 Ventana para configurar la instruccin Select.





















Seleccione la tabla clientes y elija * para ver todos los registros de la tabla
clientes y pulse el botn Siguiente para ver la ventana Consulta de prueba.

Figura 8.37 Ventana de Consulta de prueba.






















Pulse el botn Finalizar para volver a modo diseo.


252

Figura 8.38 Ventana modo diseo del sitio Web RelacionGridViewFormViewWeb.



Habilite la opcin Habilitar seleccin en la ventana Tareas de GridView.
Adems seleccione el objeto forma. Se observar la siguiente figura:

Figura 8.39 Objeto forma seleccionado.



En Tareas de FormView en la opcin elegir origen de datos escoja <Nuevo
origen de datos> para visualizar la siguiente figura:




253

Figura 8.40 Ventana eleccin tipo de origen de datos (objeto forma).






















Seleccione el objeto Base de datos y cambie el identificador para el origen de
datos SqlDataSource1 por datospedidos y pulse el botn Aceptar, para ver la
siguiente figura:

Figura 8.41 Ventana Elegir la conexin de datos.
























254

D clic en la flecha y escoja el objeto llamado conexion. Se observar la
siguiente figura:

Figura 8.42 Ventana Elegir conexin de datos con el objeto conexion.



















Pulse el botn Siguiente para ver la ventana para configurar la instruccin
Select.

Figura 8.43 Ventana para configurar la instruccin Select.



















Seleccione la tabla pedidos y elija * para ver todos los registros de la tabla
pedidos. La ventana sera similar a la siguiente figura:


255

Figura 8.44 Ventana con la tabla pedidos seleccionada.






















Pulse el botn WHERE para visualizar la ventana Agregar clusula WHERE.

Figura 8.45 Ventana Agregar clusula WHERE.



















Seleccione en la ventana Columna el campo nit, en la ventana Operador el
signo igual (=), en la ventana Origen la opcin Control, en la ventana Id. de control
seleccione el objeto tabla y pulse el botn Agregar para ver la siguiente figura:



256

Figura 8.46 Ventana con la clusula WHERE agregada.





















Pulse el botn Aceptar para volver a la ventana Configurar origen de datos
datospedidos.

Figura 8.47 Ventana Configurar origen de datos datospedidos.






















Pulse el botn Siguiente para ver la ventana Consulta de prueba.


257

Figura 8.48 Ventana Consulta de prueba.




















Pulse el botn Finalizar para volver a modo diseo del sitio Web. Habilite la
opcin Habilitar paginacin en la ventana Tareas de FormView. Se observar la
siguiente figura:

Figura 8.49 Ventana de diseo sitio Web RelacionGridViewFormViewWeb.


Adems en Tareas de FormView escoja Formato Automtico, seleccione el
esquema profesional para visualizar la siguiente figura:




258

Figura 8.50 Ventana de Autoformato.




















Pulse el botn Aceptar para volver a modo diseo.

Ejecutar el sitio Web
Al ejecutarse el sitio Web, se observa en la pgina el objeto GridView. En dicho objeto
se visualizan los registros de la tabla clientes.

Figura 8.51 Pgina Web con la cuadrcula de clientes.


















Si pulsa sobre el link Seleccionar al frente del nit 100, se visualizarn los
registros relacionados con la tabla pedidos en el objeto forma.



259

Figura 8.52 Pgina Web con registros relacionados clientes - pedidos.




















Si desea que la presentacin de los registros relacionados sea ms profesional,
vuelva a modo de diseo y seleccione el objeto forma y visualice las Tareas de
FormView, como se muestra en la siguiente figura:

Figura 8.53 Pgina Web con el objeto forma seleccionado.



Seleccione la opcin Editar plantillas. Se observar la siguiente figura:






260

Figura 8.54 Objeto forma en modo de edicin de plantillas.



Modifique cada una de las etiquetas del objeto forma y pulse la opcin
Terminar edicin de plantillas. Segn los cambios realizados, la pgina podra quedar
de la siguiente forma:


Figura 8.55 Objeto forma en las plantillas modificadas.


Al volver a ejecutar el sitio Web y seleccionar el nit 100, se observar la
siguiente figura:








261

Figura 8.56 Pgina Web con la relacin clientes pedidos.















8.1.3 Pgina Web con tres tablas relacionadas
Disear un sitio Web llamado RelacionTresTablasWeb, que permita a un usuario
seleccionar de un control DropDownList el nombre de una empresa de la tabla clientes
y mostrar en una cuadrcula los registros relacionados con la tabla pedidos. Al
seleccionar algn registro de la cuadrcula de pedidos se debe visualizar en otra
cuadrcula la venta realizada en dicho pedido.

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 Label, 1 GridView, 1
FormView.

Figura 8.57 Interfaz de usuario (RelacionTresTablasWeb).




















262

Establecer las propiedades de los objetos de la interfaz de usuario
Establezca las siguientes modificaciones a los controles:

Tabla 8.3 Propiedades de controles sitio Web RelacionTresTablasWeb.

Control Propiedad Valor
Label1 ID titulo
Text Relacin de tres tablas con
ListView y dos GridView.
Font - Bold true
Label2 ID txtempresa
Text Seleccione empresa
Label3 ID txtpedidos
Text Relacin Clientes - Pedidos.
Label4 ID txtventas
Text Relacin Pedidos - Ventas.
ListBox1 ID listaempresas
GridView1 ID tablapedidos
GridView2 ID tablaventas
Form1 ID formulario
Document title Relacin de tres tablas.
Default.aspx.vb Nombre de
archivo.
pagina.aspx.vb

Figura 8.58 Interfaz de usuario modificada (RelacionTresTablasWeb).






















Establecer la conexin

Seleccione el objeto ListView llamado listaempresas y en la flecha que aparece en el
lado superior derecho, d clic en el mouse para visualizar las Tareas de Listbox.


263

Figura 8.59 Ventana de las Tareas del ListBox.












Seleccione la opcin Elegir origen de datos, para visualizar la siguiente figura:

Figura 8.60 Ventana para configuracin de orgenes de datos.




















En la opcin Seleccionar un origen de datos escoja <Nuevo origen de datos>
y pulse el botn Aceptar, para ver la ventana de eleccin de tipo de origen de datos.





264

Figura 8.61 Ventana para elegir tipo de origen de datos.






















Seleccione el objeto Base de datos y cambie el identificador para el origen de
datos por datosclientes y pulse el botn Aceptar, para ver la siguiente figura:

Figura 8.62 Ventana elegir la conexin de datos.




















Pulse el botn Nueva Conexin, se visualizar la ventana Agregar conexin:




265

Figura 8.63 Ventana Agregar conexin.




















En la ventana que se visualiza elija como origen de datos Microsoft SQL
Server y la base de datos bdlibrovbnet y pulse Aceptar. Se visualizar la siguiente
figura:

Figura 8.64 Ventana con la base de datos seleccionada.




















Pulse el botn Siguiente> para visualizar la ventana de configuracin de origen
de datos datosclientes:


266

Figura 8.65 Ventana configuracin de origen de datos - datosclientes.




















Cambie el nombre de la conexin bdlibrovbnetConnectionString1 por
conexion y pulse el botn Siguiente para ver la ventana para configurar la instruccin
Select.

Figura 8.66 Ventana para configurar la instruccin Select- datosclientes.




















Seleccione la tabla clientes y elija * para ver todos los registros de la tabla
clientes y pulse el botn Siguiente para ver la ventana Consulta de prueba.


267


Figura 8.67 Ventana Consulta de prueba.





















Pulse el botn Finalizar para volver a la ventana de elegir un origen de datos.
Cambie en la opcin seleccionar un campo de datos para mostrar en ListBox nit por
empresa. Se observar la siguiente figura:

Figura 8.68 Ventana de datos a mostrar en el ListBox.




















Pulse el botn Aceptar para volver a modo diseo.


268

Figura 8.69 Ventana modo diseo del sitio Web RelacionTresTablasWeb.




















Habilite la opcin Habilitar AutoPostBack en la ventana Tareas de ListBox.
Adems seleccione el objeto tablapedidos. Se observar la siguiente figura:

Figura 8.70 Objeto tablapedidos seleccionado.





















Seleccione la opcin Elegir origen de datos, para visualizar la siguiente figura:





269

Figura 8.71 Ventana para elegir tipo de origen de datos.






















Seleccione el objeto Base de datos y cambie el identificador para el origen de
datos por datospedidos y pulse el botn Aceptar, para ver la siguiente figura:

Figura 8.72 Ventana Elegir la conexin de datos.





















D clic en la flecha y escoja el objeto llamado conexion. Se observar la
ventana de configurar la instruccin Select.


270

Figura 8.73 Ventana para configurar la instruccin Select.




















Seleccione la tabla pedidos y elija * para ver todos los registros de la tabla
pedidos y pulse el botn WHERE para visualizar la ventana Agregar clusula
WHERE.

Figura 8.74 Ventana Agregar clusula WHERE.



















Seleccione en la ventana Columna el campo nit, en la ventana Operador el
signo igual (=), en la ventana Origen la opcin Control, en la ventana Id. de control
seleccione el objeto listaempresas y pulse el botn Agregar para ver la siguiente
figura:


271

Figura 8.75 Ventana con la clusula WHERE agregada.





















Pulse el botn Aceptar para volver a la ventana Configurar origen de datos
datospedidos.

Figura 8.76 Ventana Configurar origen de datos datospedidos.






















Pulse el botn Siguiente para ver la ventana Consulta de prueba.



272

Figura 8.77 Ventana Consulta de prueba.



















Pulse el botn Finalizar para volver a modo diseo del sitio Web. Habilite la
opcin Habilitar seleccin en la ventana Tareas de GridView. Se observar la
siguiente figura:

Figura 8.78 Ventana de diseo sitio Web RelacionTresTablasWeb.


Ahora seleccione el objeto tablaventas. Se observar la siguiente figura:






273

Figura 8.79 Objeto tablaventas seleccionado.

E


















En Tareas de GridView en la opcin elegir origen de datos escoja <Nuevo
origen de datos> para visualizar la siguiente figura:

Figura 8.80 Ventana de eleccin de tipo de origen de datos (objeto tablaventas).























Seleccione el objeto Base de datos y cambie el identificador para el origen de
datos por datosventas y pulse el botn Aceptar, para ver la siguiente figura:


274

Figura 8.81 Ventana Elegir la conexin de datos - datosventas.





















D clic en la flecha y escoja el objeto llamado conexion. Pulse el botn
Siguiente para observar la ventana de configurar la instruccin Select.

Figura 8.82 Ventana para configurar la instruccin Select - datosventas.




















Pulse el botn WHERE para visualizar la ventana Agregar clusula WHERE.




275

Figura 8.83 Ventana Agregar clusula WHERE.



















Seleccione en la ventana Columna el campo nit, en la ventana Operador el
signo igual (=), en la ventana Origen la opcin Control, en la ventana Id. de control
seleccione el objeto tablapedidos y pulse el botn Agregar para ver la siguiente figura:

Figura 8.84 Ventana con la clusula WHERE agregada.



















Pulse el botn Aceptar para volver a la ventana Configurar origen de datos
datosventas.




276

Figura 8.85 Ventana Configurar origen de datos datosventas.





















Pulse el botn Siguiente para ver la ventana Consulta de prueba.

Figura 8.86 Ventana Consulta de prueba - datosventas.




















Pulse el botn Finalizar para volver a modo diseo del sitio Web. Se observar
la siguiente figura:




277

Figura 8.87 Ventana de diseo de sitio Web RelacionTresTablasWeb.




















Ejecutar el sitio Web
Al ejecutarse el sitio Web, se observa en la pgina el objeto ListBox. En dicho objeto se
visualizan las empresas de la tabla clientes.

Figura 8.88 Pgina Web con la lista de empresas de la tabla clientes.



















Si pulsa sobre el nombre de empresa Canasticos Cheveres, se visualizarn en el
objeto tablapedidos los pedidos 10 y 20 que se encuentran relacionados con la tabla
clientes. Al escoger el link Seleccionar al frente del nmero de pedido 20, se
visualizarn en el objeto tablaventas los registros relacionados con la tabla pedidos.



278

Figura 8.89 Pgina Web con registros relacionados clientes pedidos - ventas.




















8.2 Ejercicios relacin de tablas con ASP.NET

1. Crear un sitio Web que permita realizar una relacin entre tres tablas de una base
de datos en SQL Server utilizando controles GridView.
2. Hacer un sitio Web que permita realizar una relacin de tres tablas; para la
primera relacin se deben seleccionar los datos desde un ListBox y visualizarlos
en un GridView. Desde ste se debe seleccionar un registro y mostrar los
registros de la segunda relacin en un DataList.
3. Disear un sitio Web que permita visualizar en un reporte los registros
relacionados de dos tablas cuyos nit sean mayores que 500.
4. Elaborar un sitio Web que permita visualizar un reporte de los registros
relacionados cuyas empresas empiecen por las letras PO.
5. Realizar un sitio Web que permita mostrar en un ListBox los registros
relacionados de dos tablas.
6. Crear un sitio Web que permita importar todos los datos relacionados que
existan en un FormView a un archivo de Excel.
7. Hacer un sitio Web que permita mostrar los datos relacionados de dos tablas de
una base de datos por un rango determinado en la tabla principal.
8. Elaborar un sitio Web que permita la creacin de un reporte con dos tablas
relacionadas.
9. Hacer un sitio Web que permita visualizar en un control DataList los registros
relacionados de dos tablas de Access.
10. Disear un sitio Web que permita visualizar un reporte segn un rango
seleccionado.





279

ANEXO A
CREACIN DE APLICACIONES WINDOWS FORMS
Este tutorial se trabaja con el entorno de desarrollo de Microsoft Visual Studio .NET
2008, tambin llamado entorno de desarrollo integrado (Integrated Development
Environment, IDE). Este entorno es personalizable y contiene todas las herramientas
para construir programas para Microsoft Windows.

Figura A.1 Pgina de Inicio de Visual Studio 2008.

A.1 Crear un nuevo proyecto Visual Basic .NET (Windows Forms)
Crear una aplicacin Windows Forms en Visual Basic .NET, requiere unos pasos muy
sencillos como son: iniciar un nuevo proyecto Visual Basic .NET, crear la interfaz del
usuario, establecer las propiedades de los objetos, escribir el cdigo, guardar la
aplicacin y ejecutar el proyecto.

Para iniciar un nuevo proyecto desde la pgina de inicio, se pueden seguir estos
pasos:

En la ventana proyectos recientes seleccionar la opcin Crear: link Proyecto

Hacer clic en la opcin Archivo del men y seleccionar Nuevo Proyecto...


Cuando se crea un proyecto por cualquiera de las dos opciones se visualiza la
siguiente ventana:

280

Figura A.2 Ventana Nuevo proyecto Windows Form.
















A.2 Elegir plantilla de aplicaciones
Visual Studio .NET ofrece varias plantillas de aplicaciones para soportar el desarrollo
de diferentes tipos de aplicaciones y componentes. Antes de iniciar un nuevo proyecto,
se debe escoger el tipo de plantilla que se va a utilizar. Una plantilla de aplicacin
proporciona archivos de inicio y una estructura de proyecto, adems contiene los
objetos bsicos del proyecto y la configuracin del entorno que se necesita para crear el
tipo de aplicacin que se desea.

Para el ejemplo, como Tipo de proyecto se debe seleccionar Visual Basic -
Windows, como plantilla Aplicacin de Windows Forms, como Nombre del proyecto
MiProgramaWF. Pulse el botn Aceptar para visualizar el entorno de desarrollo del
proyecto Windows Forms MiProgramaWF.

Figura A.3 Ventana Nuevo proyecto Windows Form.



















281

Cuando se selecciona una plantilla de aplicaciones aparece el entorno de
desarrollo, donde encontrar:

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. Los comandos del men principal funcionan igual que en todas
las aplicaciones basadas en Windows. La barra de herramientas proporciona los
iconos que sirven como acceso a la mayora de comandos estndar de Windows.
Tambin contiene iconos que permiten abrir el explorador de soluciones, la
ventana de propiedades, el cuadro de herramientas y otros elementos
importantes del entorno de desarrollo.

Figura A.4 Men principal y barra de herramientas estndar.






Cuadro de Herramientas: El cuadro de herramientas contiene diversos
controles que se pueden utilizar para aadir ilustraciones, etiquetas, botones,
cuadros de lista, barras de desplazamiento, mens y formas geomtricas a una
interfaz de usuario. Cada control que se aade a un formulario se convierte en un
objeto de la interfaz de usuario programable en la aplicacin. Estos objetos son
visibles para los usuarios cuando la aplicacin se ejecuta y funcionan como los
objetos estndar de cualquier aplicacin basada en Windows.

Figura A.5 Cuadro de Herramientas.




















Barra de Herramientas
Men Principal

282

Diseador formulario Windows (Windows Forms): Cuando se inicia un
proyecto en Visual Basic .NET, el Diseador de formulario de Windows
(Windows Forms) se abre en la vista diseo (un formulario tiene vista diseo
cuando se inicia el proyecto y est en modo de ejecucin cuando se ejecuta la
aplicacin), mostrndose el formulario Form1 del proyecto. En dicho
formulario se pueden ubicar los controles u objetos necesarios para la aplicacin
arrastrndolos desde el cuadro de herramientas para crear la interfaz de usuario.
El formulario predeterminado contiene los elementos mnimos utilizados por la
mayora de formularios: una barra de ttulo, un cuadro de control y los botones
minimizar, maximizar y cerrar.

Figura A.6 Formulario Windows.







Explorador de soluciones: permite visualizar archivos y realizar tareas de
administracin de archivos en una solucin o en un proyecto. Una solucin es un
contenedor para proyectos y elementos de solucin que pueden incluirse en una
aplicacin. Normalmente, una solucin contiene uno o ms proyectos
relacionados. Un proyecto es un contenedor dentro de una solucin que se utiliza
para administrar, generar y depurar lgicamente los elementos del (los) proyecto
(s) que constituyen la aplicacin.

Figura A.7 Ventana Explorador de soluciones.















283

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.

Figura A.8 Cuadro de propiedades.



















Ventana de depuracin de errores: muestra una lista de los errores que se
generan al realizar modificaciones a los controles o al ejecutar la aplicacin.

Figura A.9 Ventana de lista de errores.


A.3 Crear la interfaz de usuario
Para crear la interfaz de usuario de la aplicacin, en primer lugar se deben ubicar los
controles necesarios en un formulario desde el cuadro de herramientas. Como ejemplo
se crear un programa que permita a un usuario digitar un nmero y al pulsar un botn
se muestre en una cuadrcula la tabla de multiplicacin de dicho nmero. Para este caso
se disear la interfaz de usuario utilizando los siguientes controles: 3 Label, 1
TextBox, 1 Button y 1 DataGridView.
Cuando existen varios controles del mismo tipo, stos se numeran en el mismo
orden en que son colocados (nombre del control ms numero del consecutivo). La
interfaz de usuario del ejemplo ser como muestra la figura a continuacin.


284

Figura A.10 Prepantalla de la interfaz de usuario.
















A.4 Establecer las propiedades de los controles
Despus de colocar los controles u objetos a un formulario, 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 y se
cambia su configuracin en la ventana Propiedades. Para el caso del ejemplo
establezca las siguientes modificaciones en la propiedad correspondiente a cada uno de
los siguientes controles:
Tabla A.1 Propiedades de los controles de la aplicacin MiProgramaWF.


Control Propiedad Valor
Label1 Name titulo
Text Generar una tabla de
multiplicar:
Font - Bold True
Label2 Name txtnumero
Text Digite numero:
Label3 Name txttabla
Text La tabla del numero
TextBox1 name camponumero
Text En blanco
DataGridView1 Name tabla
Button1 Name boton
Text Ver Tabla
Form1 Name formulario
Text Tablas de multiplicar


La interfaz de usuario con las modificaciones respectivas en las propiedades de
cada control queda como muestra la siguiente figura:



285

Figura A.11 Pantalla final de la interfaz de usuario















A.5 Escribir cdigo
Una vez se hayan establecido las propiedades iniciales del formulario y sus objetos, se
puede agregar el cdigo que se ejecutar en respuesta a un evento especfico de cada
control. Los eventos ocurren cuando se realizan diferentes acciones sobre un control u
objeto. Por ejemplo, el evento Clic de un botn tiene lugar cuando un usuario hace clic
sobre l con el mouse. Por lo general en las aplicaciones es necesario escribir cdigo
para lograr el objetivo de dar solucin al problema planteado por el usuario.
Para el caso del ejemplo, d doble clic en el objeto Button llamado boton y abra
el editor de cdigo, la figura muestra el editor de cdigo del control.

Figura A.12 Editor de cdigo del objeto boton.

Ahora escriba el siguiente cdigo entre Private Sub y End Sub:

With tabla
.Columns.Add("Multiplicando", " Multiplicando ")
.Columns.Add("Multiplicador", " Multiplicador ")
.Columns.Add("Producto", "Producto")
.RowCount = 10
For i As Integer = 0 To .RowCount - 1
.Item(0, i).Value = camponumero.Text
.Item(1, i).Value = i + 1
.Item(2, i).Value = (camponumero.Text * (i + 1))
Next
End With



286

Este cdigo sirve para rellenar el objeto tabla con los respectivos datos.
Utilizando el mtodo Add de la propiedad Columns se le adicionan los nombres
Multiplicando, Multiplicador, Producto en la primera fila y la propiedad RowCount
se le asigna un valor de 10 filas. Con un ciclo For que se ejecutar desde una posicin i
igual a cero (0) hasta el nmero de filas -1 del objeto tabla y por cada fila tres tems. En
la primera columna se imprimir el valor digitado en el objeto camponumero, en la
segunda columna se imprimir el valor i+1, en la tercera columna el producto de
multiplicar el valor del objeto camponumero por i+1.
A.6 Guardar la aplicacin
Una vez finalizada la creacin de la aplicacin, se debe guardar la aplicacin dentro del
entorno de desarrollo para asegurar que todos los cambios realizados se almacenen, esto
se puede realizar de la siguiente forma:

En el men Archivo, haga clic en Guardar todo.
O hacer clic en el icono de la barra de herramientas.

Cualquier opcin visualizar la siguiente ventana:

Figura A.13 Ventana Guardar proyecto.









Se debe seleccionar la ubicacin en donde se guardar el proyecto. Al pulsar el
botn Guardar se crear una carpeta con el mismo nombre del proyecto. Dentro de
dicha carpeta se crean los archivos:
1. Un archivo de proyecto .vbproj, el cual contiene informacin especfica para una
determinada tarea de programacin.
2. Un archivo de solucin .sln, el cual contiene informacin relacionada con uno o ms
proyectos. Siempre elija el archivo solucin para abrir un proyecto.
A.7 Ejecutar la aplicacin Windows Forms
Para ejecutar el proyecto 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 F5 para ejecutar el proyecto. Si la aplicacin se ejecuta sin errores,
aparecer una versin ejecutable del formulario.
2. Cuando termine de ejecutar la aplicacin se debe cerrar el formulario para regresar al
entorno de programacin.


287

Las aplicaciones Windows Forms creadas con Visual Basic .NET tienen la
extensin .exe, que podrn ser ejecutadas en cualquier equipo que tenga instalado
Microsoft Windows. Visual Basic .NET instala de manera automtica los archivos de
soporte, incluyendo las bibliotecas de vnculos dinmicos y archivos de .NET
framework. Visual Studio puede crear dos tipos de archivos ejecutables:
1. Debug: Compilacin de depuracin, se utiliza cuando se prueba y depura un programa
(Default).
2. Release: Versin de edicin, se utiliza cuando se termina el programa siendo sta una
versin optimizada de menor tamao
Si se escribe el nmero 5 en el campo de texto y se pulsa el botn Ver Tabla, se
visualizar la siguiente figura.
Figura A.14 Aplicacin MiProgramaWF ejecutado.








A.8 Cerrar y abrir un proyecto
Para cerrar el proyecto MiProgramaWF o cualquier otro proyecto, 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 proyecto 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 MiProgramaWF 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 proyecto 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 proyecto..., busque la carpeta
MiProgramaWF y seleccione el archivo MiPrograma.sln y pulse la opcin Abrir para
abrir la aplicacin en el entorno de desarrollo de Visual Basic .NET.


288

ANEXO B
Creacin de aplicaciones Web ASP.NET
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 B.1 Pgina de Inicio de Visual Studio 2008.
B.1 Crear un nuevo Sitio Web (ASP.NET)
Crear una aplicacin Web ASP.NET utilizando el lenguaje de programacin Visual
Basic .NET requiere 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 que permita a un usuario escoger un tipo
de comida rpida y una bebida en un restaurante y visualizar el valor a pagar por dicho
pedido. Se debe discriminar el valor antes del Impuesto al Valor Agregado ( IVA, 16%)
y el valor total a pagar.



289

Para iniciar un nuevo sitio desde la pgina de inicio, se pueden seguir estos pasos:

En la ventana proyectos recientes seleccionar la opcin Crear: link Sitio Web

Hacer clic en la opcin Archivo del men y seleccionar Nuevo sitio Web...


Cuando se crea un sitio Web por cualquier de las dos opciones se visualiza la
siguiente ventana:

Figura B.2 Ventana Nuevo sitio Web ASP.NET.


B.2 Elegir plantilla de aplicaciones
Una plantilla de aplicacin Web proporciona archivos de inicio y una estructura del sitio
Web, adems contiene los objetos bsicos del sitio y la configuracin del entorno que se
necesita para crear el tipo de aplicacin que se desea.

Para el ejemplo, como plantilla seleccione Sitio Web ASP.NET, como
Ubicacin del sitio escoja Sistema de archivos (tambin es posible obtener una
ubicacin HTTP o FTP), con el botn Examinar puede buscar la carpeta para ubicar el
sitio Web, para este caso guarde el sitio con el nombre MiProgramaWeb. Pulse el
botn Aceptar para visualizar el entorno de desarrollo del sitio Web MiProgramaWeb.






290

Figura B.3 Ventana Nuevo sitio Web.






















Cuando se selecciona una plantilla de aplicaciones aparece el formulario Web en
el entorno de desarrollo, donde encontrar:

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. Los comandos del men principal funcionan igual que en todas
las aplicaciones basadas en Windows. La barra de herramientas proporciona los
iconos que sirven como acceso a la mayora de comandos estndar de Windows.
Tambin contiene iconos que permiten abrir el explorador de soluciones, la
ventana de propiedades, el cuadro de herramientas y otros elementos
importantes del entorno de desarrollo.

Figura B.4 Men principal y barra de herramientas estndar.






Cuadro de Herramientas: el cuadro de herramientas contiene controles
estndar de Windows, datos, navegacin, elementos Web, etc. Cada control que
se aade a un formulario Web se convierte en un objeto de la interfaz de usuario
programable en la aplicacin.


Barra de Herramientas
Men Principal

291

Figura B.5 Cuadro de Herramientas.



















Diseador de 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.

Figura B.6 Formulario Web.











292

Explorador de soluciones: permite visualizar las carpetas y archivos que se
han creado. Si observa en la carpeta en 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).

Figura B.7 Ventana Explorador de soluciones.
















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.

Figura B.8 Cuadro de propiedades.






















293

Ventana de depuracin de errores: muestra una lista de los errores que se
generan al realizar modificaciones a los controles o al ejecutar la aplicacin.

Figura B.9 Ventana de lista de errores.


B.3 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 disear la interfaz de usuario utilizando los siguientes controles: 8 Label, 5
TextBox, 1 ListBox y 4 RadioButton.
Cuando existen varios controles del mismo tipo, stos se numeran en el mismo
orden en que son colocados (nombre del control ms nmero del consecutivo). La
interfaz de usuario del ejemplo ser como muestra la figura a continuacin.

Figura B.10 Preformulario Web de la interfaz de usuario.







294

B.4 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 B.1 Propiedades de los controles del sitio Web MiProgramaWeb.

Control Propiedad Valor
Label1 ID titulo
Text Comidas Rpidas topo Gigio.
Font - Bold True
Label2 ID txtcomida
Text Seleccione comida:
Font - Bold True
Label3 ID txtbebida
Text Seleccione bebida:
Font - Bold True
Label4 ID txtvalorcomida
Text Valor Comida:
Font - Bold True
Label5 ID txtvalorbebida
Text Valor Bebida:
Font - Bold True
Label6 ID txtsubtotal
Text Subtotal:
Font - Bold True
Label7 ID txtiva
Text I.V.A.:
Font - Bold True
Label8 ID txttotal
Text Total a Pagar:
Font - Bold True
TextBox1 ID valorcomida
Text En blanco
TextBox2 ID valorbebida
Text En blanco
TextBox3 ID subtotal
Text En blanco
TextBox4 ID iva
Text En blanco
TextBox5 ID total
Text En blanco
ListBox1 ID listacomida
AutoPostBack true
RadioButton1 ID botongaseosa
Text Gaseosa
AutoPostBack true
GroupName bebidas
RadioButton2 ID botonjugo
Text Jugo
AutoPostBack true
GroupName bebidas
295

RadioButton3 ID botonlimonada
Text Limonada
AutoPostBack true

RadioButton4 ID botoncerveza
Text Cerveza
AutoPostBack true
GroupName bebidas
Form1 ID formulario
Document Title Comidas Rpidas
Default.aspx Nombre del archivo Pagina.aspx


La interfaz de usuario con las modificaciones respectivas en las propiedades de
cada control queda como se muestra en la siguiente figura:

Figura B.11 Formulario Web final de la interfaz de usuario.

B.5 Escribir cdigo
Una vez se hayan establecido las propiedades inciales del formulario Web y sus
objetos, se puede agregar el cdigo que se ejecutar en respuesta a un evento especfico
de cada control. Los eventos ocurren cuando se realizan diferentes acciones sobre un
control u objeto. Por ejemplo, el evento Clic de un botn tiene lugar cuando un usuario
hace clic sobre l con el mouse. Por lo general en las aplicaciones es necesario escribir
cdigo para lograr el objetivo de dar solucin al problema planteado por el usuario.

a) Seleccione el control ListBox llamado listacomidas, en la ventana de propiedades
busque la propiedad Items, al frente de Coleccin pulse en los tres puntos () para
ver la ventana Editor de la coleccin ListItem:

296

Figura B.12 Formulario Web con el control ListBox seleccionado.


Pulse el botn Agregar del Editor de la coleccin ListItem, busque la propiedad
Text y cmbie el texto por Hamburguesa. Realice los mismos pasos para agregar los
textos: Pizza, Perro caliente, Choriarepa. Por ltimo pulse el botn Aceptar.

Figura B.13 Agregacin de nombres al control ListBox.



b) D doble clic en el objeto ListBox llamado listacomidas, para abrir el editor del
procedimiento listacomida_SelectedIndexChanged y escriba el siguiente cdigo:

If listacomida.SelectedIndex = 0 Then
valorcomida.Text = "5000"
End If


297

If listacomida.SelectedIndex = 1 Then
valorcomida.Text = "3000"
End If
If listacomida.SelectedIndex = 2 Then
valorcomida.Text = "4000"
End If
If listacomida.SelectedIndex = 3 Then
valorcomida.Text = "3500"
End If
subtotal.Text = Val(valorcomida.Text) + Val(valorbebida.Text)
iva.Text = Val(subtotal.Text) * 0.16
total.Text = Val(subtotal.Text) + Val(iva.Text)

En el anterior cdigo se utiliza la estructura de control if para determinar qu
posicin del objeto listacomidas se ha pulsado utilizando la propiedad SelectedIndex.
Dependiendo del index seleccionado se le asignar al objeto valorcomida el valor
correspondiente. Por ltimo se le asign los valores de las operaciones correspondientes
a los objetos subtotal, iva, total por intermedio de su propiedad Text. Se utiliza la
funcin Val () para convertir una cadena de caracteres a entero (recuerde que los objetos
TextBox capturan texto).

c) D doble clic en el objeto RadioButton llamado botongaseosa, para abrir el editor
del procedimiento botongaseosa_CheckedChanged y escriba el siguiente cdigo:

If botongaseosa.Checked Then
valorbebida.Text = "1500"
End If
subtotal.Text = Val(valorcomida.Text) + Val(valorbebida.Text)
iva.Text = Val(subtotal.Text) * 0.16
total.Text = Val(subtotal.Text) + Val(iva.Text)

d) D doble clic en el objeto RadioButton llamado botonjugo, para abrir el editor del
procedimiento botonjugo_CheckedChanged y escriba el siguiente cdigo:

If botonjugo.Checked Then
valorbebida.Text = "2000"
End If
subtotal.Text = Val(valorcomida.Text) + Val(valorbebida.Text)
iva.Text = Val(subtotal.Text) * 0.16
total.Text = Val(subtotal.Text) + Val(iva.Text)

e) D doble clic en el objeto RadioButton llamado botonlimonada, para abrir el
editor del procedimiento botonlimonada_CheckedChanged y escriba el siguiente
cdigo:

If botonlimonada.Checked Then
valorbebida.Text = "1800"
End If
subtotal.Text = Val(valorcomida.Text) + Val(valorbebida.Text)
iva.Text = Val(subtotal.Text) * 0.16
total.Text = Val(subtotal.Text) + Val(iva.Text)

f) D doble clic en el objeto RadioButton llamado botoncerveza, para abrir el editor
del procedimiento botoncerveza_CheckedChanged y escriba el siguiente cdigo:

298

If botoncerveza.Checked Then
valorbebida.Text = "2500"
End If
subtotal.Text = Val(valorcomida.Text) + Val(valorbebida.Text)
iva.Text = Val(subtotal.Text) * 0.16
total.Text = Val(subtotal.Text) + Val(iva.Text)

En los anteriores cdigos se utiliza la estructura de control if para determinar que
objeto RadioButton se selecciona utilizando la propiedad Checked. Dependiendo del
control seleccionado se le asignar al objeto valorbebida el valor correspondiente.
Tambin se actualizan los objetos subtotal, iva y total.
B.6 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 depuracin 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 B.14 Ventana de ejecucin de sitio Web MiProgramaWeb.


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.


299

Figura B.15 Sitio Web MiProgramaWeb ejecutado.

Al seleccionar como comida Hamburguesa y como bebida Limonada, se
visualiza la siguiente figura:

Figura B.16 Sitio Web con comida y bebida seleccionados.



300

B.7 Cerrar y abrir un sitio Web
Para cerrar el sitio Web MiProgramaWeb o cualquier otro sitio web, estando en modo
diseo se pueden realizar los siguientes pasos:

3. En el men Archivo, hacer clic en la opcin Cerrar Proyecto.
4. 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 MiProgramaWeb 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 MiProgramaWeb y pulse el botn Abrir para abrir la aplicacin Web en el
entorno de desarrollo de Visual Basic .NET.































301

ANEXO C
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.
C.1. Conectarse a SQL Server.
Cuando se instala SQL Server, en los programas existe una opcin para conectarse a
dicha 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 C.1 Opciones para conectarse a SQL Server.






Al pulsar SQL Server Management Studio Express se visualiza la ventana
Connect to Server.

Figura C.2 Ventana Connect to Server.















Deber digitar lo siguiente:

1. Server Name: Por omisin aparece el nombre del servidor en 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


302

deber digitar el User Name y el Password creado cuando se realiz la
instalacin de SQL Server.
3. Pulsar el botn Connect.

Se visualizar el entorno de trabajo de Microsoft SQL Server Management
Studio Express.

Figura C.3 Ventana Microsoft SQL Server Management Studio Express.



















C.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 C.4 Opciones de DataBases.


Seleccione la opcin New DataBase para ver la siguiente ventana:



303

Figura C.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 C.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:


304

Figura C.7 Base de datos bdlibrovbnet con sus elementos creados inicialmente.





















C.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 C.8 Opciones de la carpeta Tables.







305

Seleccione New Table para ver la ventana de diseo de la tabla, como se aprecia
en la siguiente figura:

Figura C.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 C.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


306

ltimo seleccione el campo nit y pulse el icono para crear la clave primaria ( ), la
figura quedar:

Figura C.11 Ventana con los campos de la tabla y nit como llave primaria.





















Ahora se debe guardar la tabla, pulse el signo para visualizar la ventana de
cambios.

Figura C.12 Ventana de cambio de una tabla.


















Pulse el botn Yes para obtener la ventana para escoger el nombre Choose
Name.


307

Figura C.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 C.14 Estructura tabla pedidos.


Figura C.15 Estructura tabla productos.










308

Figura C.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 C.17 Estructura de la base de datos.















Cuando se selecciona una tabla y se da clic derecho, se visualiza la ventana con
las diferentes opciones que se pueden realizar como son:

New Table: para crear una nueva tabla.
Modify: permite modificar la estructura de una tabla que previamente se haba
creado.
Open Table: para abrir una ventana de edicin para insertar o visualizar los
datos de una tabla.
Script Table as: para crear, borrar, alterar, seleccionar, insertar, actualizar,
ejecutar una consulta, un archivo o una imagen.
View Dependencies: para visualizar las dependencias (relaciones) de una tabla.
Rename: para renombrar una tabla.
Delete: para eliminar una tabla.
Refresh: para refrescar o actualizar una tabla.
Properties: para visualizar las propiedades de una tabla.



309

Figura C.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 C.19 Ventana para insertar datos a la tabla clientes.













Inserte la informacin de acuerdo con la siguiente figura:

Figura C.20 Ventana con datos insertados en la tabla clientes.




310

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 C.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 (Verify SQL sintax)
se visualizar la siguiente ventana:

Figura C.22 Ventana de verificacin de sintaxis SQL.











Al pulsar el botn Aceptar se mostrar la figura:





311

Figura C.23 Ventana al Aceptar la verificacin de sintaxis SQL.



Para ejecutar la instruccin SQL de deber dar clic en el icono (Execute
SQL), se ver la siguiente figura:

Figura C.24 Ventana con la instruccin SQl ejecutada.









Ahora se debern llenar con datos las tablas pedidos, productos y ventas de
acuerdo con las siguientes figuras:



312

Figura C.25 Tabla pedidos con datos insertados.








Figura C.26 Tabla productos con datos insertados.








Figura C.27 Tabla ventas con datos insertados.












C.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, d clic derecho y seleccione la opcin New Database Diagram.
Para ver la ventana de adicin de tablas:






313

Figura C.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 C.29 Ventana Database Diagram con las tablas adicionadas.


















Para crear la relaciones entre las tablas seleccione el campo nit de la tabla
cliente, d 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.





314

Figura C.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 C.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:



315

Fgura C.32 Ventana de diagramas con las relaciones entre tablas.









Ahora se debe guardar el diagrama, pulse el signo para visualizar la ventana
de cambios en un diagrama.

Figura C.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 C.34 Ventana para escribir el nombre del diagrama creado.












316

Escriba como nombre del diagrama relaciontablas y pulse el botn OK. Se
visualizar la ventana para guardar los cambios realizados.

Figura C.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 C.36 Ventana para manipulacin de los diagramas.


C.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:


317

Figura C.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 C.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:



318

Figura C.39 Ventana de ejecucin de la vista creada.



















Ahora se debe guardar la vista creada, pulse el signo para visualizar la
ventana de cambios en una vista.

Figura C.40 Ventana de cambios en una vista.












Pulse el botn Yes para obtener la ventana para escoger el nombre Choose
Name.

Figura C.41 Ventana para escribir el nombre de la vista creada.











319

Escriba como nombre de la vista vista_clientes_pedidos y pulse el botn OK.
Se visualizar la siguiente figura:

Figura C.42 Ventana con la vista guardada.

































320

ANEXO D
ORACLE DATABASE 10G EXPRESS
D.1 Instalacin
De la siguiente direccin:

http://www.oracle.com/technology/software/products/database/xe/index.html

descargue el Oracle Database 10g Express o una versin superior, el cual ser un
archivo comprimido llamado OracleXEUniv.rar; una vez hecho esto, d doble clic en
el siguiente icono:

Figura D.1 Archivo OracleXEUniv comprimido.





Para descomprimir el archivo .rar, d doble clic sobre ste. Se mostrar la
siguiente ventana:

Figura D.2 Ventana para descomprimir el archivo OracleXEUniv.

















En la carpeta en donde se descomprima el archivo debe quedar guardado el
siguiente archivo:

Figura D.3 Archivo ejecutable OracleXEUniv.








321

Al dar doble clic sobre ste, se inicializar el asistente de instalacin de Oracle
Database 10g Express, como muestra la siguiente figura:

Figura D.4 Asistente InstallShield.



Al terminar la extraccin de los archivos necesarios para la instalacin de
ORACLE se visualizar la siguiente ventana:

Figura D.5 Asistente de instalacin Oracle Database 10g Express Edition.



Pulse el botn Siguiente> para visualizar la ventana de contrato de licencia:







322

Figura D.6 Ventana del acuerdo de licencia Oracle Database 10g Express Edition.

















En esta ventana seleccione la opcin Acepto los trminos del acuerdo de
licencia y pulse el botn Siguiente> para visualizar la ventana de Seleccionar
Ubicacin de Destino.

Figura D.7 Ventana de ubicacin Oracle Database 10g Express Edition.

















En esta pantalla se especfica el directorio en el cual desea instalar ORACLE.
Se aconseja que instale el software en el directorio que sugiere por default el instalador
(c:\oraclexe), despus pulse el botn Siguiente> para visualizar la ventana Especficar
contraseas de Bases de Datos.







323

Figura D.8 Ventana de contraseas Oracle Database 10g Express Edition.



















En esta ventana digite la contrasea que considere. Para esta instalacin se digit
la contrasea 123456. Pulse el botn Siguiente> para visualizar la ventana Resumen.

Figura D.9 Ventana Resumen de instalacin Oracle Database 10g Express Edition.



















Revise cada uno de los valores y pulse el botn Instalar, para visualizar la
ventana de Estado de la Instalacin.






324

Figura D.10 Ventana Estado de instalacin Oracle Database 10g Express Edition.









Al finalizar el proceso se visualizar la ventana Finalizacin de la instalacin,
donde por default est habilitada la opcin Iniciar la pagina inicial de la base de
datos.

Figura D.11 Finalizacin instalacin de Oracle Database 10g Express Edition.










Pulse el botn Terminar para visualizar la pantalla de inicio de ORACLE
Database Express Edition.

Figura D.12 Ventana para conectarse a Oracle Database 10g Express Edition.













325

Para realizar la conexin a la base de datos es necesario digitar el usuario y la
contrasea. Por default el nombre de usuario es system, y la contrasea ser aquella que
fue digitada en la ventana Especficar contraseas de Bases de Datos. La siguiente es
la pantalla de inicio de ORACLE.

Figura D.13 Ventana inicial de Oracle Database 10g Express Edition.


















D.2 Creacin de una tabla en la base de datos con usuario system
Para crear una tabla en la base de datos es necesario seleccionar el objeto explorador
de objetos y escoger la opcin Crear y all elegir Tablas.

Figura D.14 Ventana con la opcin crear tablas en Oracle Database 10g.



















326

Para visualizar la siguiente ventana:

Figura D.15 Ventana inicial para crear una tabla en Oracle Database 10g.



















Aqu seleccione la opcin Crear, la cual est a la derecha en la parte superior de
la ventana, esto con el fin de visualizar la siguiente ventana:

Figura D.16 Ventana seleccin del objeto Tabla.



















Elija la opcin Tabla para visualizar la ventana en donde se dar el nombre a la
tabla y se digitarn los campos que contendr la tabla. En el nombre de la tabla escriba
clientes y los nombres de los campos o nombres de las columnas sern:




327

Figura D.17 Estructura tabla clientes.

Nombre de la columna Tipo
nit Varchar2
representante Varchar2
razonsocial Varchar2
direccion Varchar2
telefono Varchar2
ciudad Varchar2
credito Number

La ventana debera quedar de la siguiente manera:

Figura D.18 Ventana de campos de la tabla clientes.

















Al terminar pulse el botn Siguiente> para crear la clave primaria, este paso
visualizar la siguiente ventana:

Figura D.19 Ventana de creacin de clave primaria.


















328

Aqu en la opcin clave primaria seleccione Sin rellenar, el nombre de la
restriccin de la clave primaria es colocada por default este caso ser CLIENTES_PK,
la clave primaria ser NIT (VARCHAR2) y no se debe seleccionar clave primaria
compuesta. Por ltimo pulse el botn Siguiente> para visualizar la ventana de Clave
Ajena.

Figura D.20 Ventana de creacin de clave ajena.




















Para el ejemplo no se hace necesario crear una clave ajena, por lo tanto pulse el
botn Siguiente> para visualizar la ventana de restricciones.

Figura D.21 Ventana de restricciones de una tabla.





















329

Para el ejemplo tampoco se hace necesario crear restricciones a la tabla, por
consiguiente pulse el botn Terminar para visualizar la ventana de Confirmar.

Figura D.22 Ventana de confirmacin de creacin de una tabla.





















Pulse el botn Crear para visualizar la ventana en donde se mostrar el nombre
de la tabla como las respectivas columnas que contiene dicha tabla.

Figura D.23 Ventana con la creacin de la tabla.






















330

El siguiente paso es insertarle informacin a la tabla, seleccionando la opcin
Datos, se mostrar el mensaje esta tabla no contiene ningn dato, ya que hasta el
momento no se le ha ingresado ningn dato.

Figura D.24 Ventana para insertar datos en una tabla.




















Para insertar datos seleccione la opcin Insertar Fila, la cual mostrar la
siguiente ventana:

Figura D.25 Insercin de datos en una tabla.























331

Aqu rellene con informacin cada uno de los campos de la tabla. Al terminar de
digitar informacin en el ltimo campo de la tabla puede seleccionar el botn Crear o
Crear y Crear Otro. El botn Crear y Crear Otro le permitir guardar el registro
digitado y limpiar los campos para ingresar nueva informacin en otro registro. El botn
Crear guarda el ltimo registro digitado y visualizar la tabla con la informacin que
contenga dicha tabla.

Figura D.26 Ventana con los datos insertados en la tabla clientes.



















Por ltimo para salir de la base de datos seleccione la opcin Desconectarse,
para visualizar la siguiente pantalla:

Figura D.27 Ventana de desconexin de Oracle.


332

NDICE

Add, 110
ADO.NET, 52
ALL, 46
ALTER, 45, 48
AND, 46
Append, 24
AppendText, 11, 15
ASP.NET, 162, 175
AVG, 47
Bases de Datos, 44
BETWEEN, 46
BindingContext, 81
catch, 14
clear, 80
close, 14
columnas, 44
Command, 52
Common Language Runtime, 8
comparacin, 46
Conectarse a SQL Server, 299
Conexin a Bases de Datos, 52
Connection, 52
ContentType, 165
Copy, 11
COUNT, 47
Create, 11
CREATE, 45
CREATE DATABASE, 47
CreateText, 11
Cuadro de Herramientas, 279, 288
Data Source, 55, 177
DataAdapter, 52
Database, 55, 177
DataMember, 70
Dataset, 52
DataSource, 70, 145
DataTable, 52
DataView, 52
Default.aspx, 289
DefaultView, 145
Delete, 11
DELETE, 45, 50
Diseador formularios Web, 289
DLL, 45
DML, 45
DROP, 45
DROP DATABASE, 48
DROP TABLE, 48
El explorador de soluciones, 280, 290
Elegir base de datos, 66
Elegir proveedor base de datos, 66
EOF, 172
Exists, 11
Explorador de servidores, 63
filas, 44
File, 11
FileClose, 24
FileContent, 165
FileDialog, 20
FileGet, 29
FileGetObject, 29
FileName, 22
FileOpen, 24
FilePut, 29
FilePutObject, 29
fill, 56, 177, 181
FirstDisplayedScrollingRowIndex, 84
Font - Bold, 179
Framework, 9
FROM, 45
FullRowSelect), 137
GetCreateTime, 11
GROUP, 45
HAVING, 45
HeaderText, 40
HttpServerUtility, 168
IN, 46
INNER JOIN, 51
Input, 24
INSERT, 45, 48
Integrated, 277
Integrated Security, 55, 177
java.io, 11, 163
Just-In-Time, 9
La biblioteca de clases base, 8
Lenguaje de Consulta Estructurado, 44
LIKE, 46
LineInput, 27, 172
MapPath, 165
MAX, 47
Men principal, 279, 288
Microsoft .NET, 8
Microsoft Intermediate Language, 8
MIN, 47
Modificar la cadena de conexin:, 66
Move, 11
movefirst, 84
movelast, 85
movenext, 84
moveprevious, 85
NET, 8
NOT, 46
OleDataAdapter, 52
OleDbCommand, 52
OleDbConnection, 52
Open, 11
OpenFileDialog, 20
OpenMode.Binary, 29
OpenMode.OutPut, 26, 172
OR, 46
Oracle Database 10g Express, 318
OracleCommand, 52
OracleConnection, 52
OracleDataAdapter, 52
333

ORDER, 45
Orientada a objetos, 44
Output, 24
Persist Security Info, 62
Position, 81
PostedFile, 165
Probar la conexin, 66
Provider, 59
ReadByte, 165
readToEnd, 14
Relacionales, 44
Replace, 11
RowFilter, 145
SaveFileDialog, 20
SELECT, 45, 49
SelectedItem, 107
SelectedValue, 145
SQL Server, 299
SqlCommand, 52
SqlConnection, 52
SqlDataAdapter, 52
Stream, 11
StreamReader, 14, 17
StreamWriter, 14, 17
SUM, 47
System.Data.OleDb, 58, 62
System.Data.SqlClient, 55, 177, 180
System.IO, 11, 163
Try-Catch, 14
UPDATE, 45, 50
User, 62
ValueMember, 145
Ventana de depuracin de errores, 291
Ventana de propiedades, 290
Visual Basic .NET, 8
Visual Basic.NET, 8
WHERE, 45
Windows Authentication, 299
Windows Form, 277
Word.Application, 40
Word.Documents.Add, 40
write, 14
writeLine, 15































334

BIBLIOGRAFA

CEBALLOS, Javier. MICROSOFT VISUAL BASIC .NET LENGUAJE Y
APLICACIONES, Mexico, Editorial Alfaomega Ra-Ma, 2
a
edicin, 2007.
HARWRYSZKIEWYCZ, I T. ANLISIS Y DISEO DE BASE DE DATOS,
Mxico, Editorial Megabyte, Noriega Editores. 1994.
JAMSA, Kris. SUPERUTILIDADES PARA VISUAL BASIC .NE, Madrid,
Editorial Mc Graw Hill, 1
a
. edicin, 2003.

INFOGRAFA
monografias.com/trabajos5/tipbases/tipbases.shtml
monografias.com/trabajos5/basede/basede.shtml
inei.gob.pe/cpi/bancopub/libfree/lib607/cap01.htmet.gob.pe
elizabethpeguero.8m.com/enza.htm
Learnthenet.com/spanish/glossary/database.htmipyme.org/sie/
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-a-
datos.aspx.
http://www.microsoft.com/spanish/MSDN/estudiantes/desarrollo/lenguajes/v
studio.mspx
http://www.programacionfacil.com/java_windows/start
http://www.bitarray.info/2009/02/ado-net-crear-una-conexion-a-una-base-
de-datos-access-usando-el-asistente/
http://www.onglasses.net//default.aspx?articuloid=261
http://www.onglasses.net//default.aspx?articuloid=199
http://www.onglasses.net//default.aspx?articuloid=291
http://www.programar.net/directory/default.aspx?fid=3
http://www.elguille.info/colabora/NET2005/FernandoLuque_MaestroDetalle
Simple.htm
http://support.microsoft.com/default.aspx?scid=http://www.microsoft.com/in
tlkb/spain/E308/0/56.asp
http://www.elguille.info/colabora/puntoNET/yosall_datagrid.htm

También podría gustarte