Escolar Documentos
Profissional Documentos
Cultura Documentos
NET a su alcance
Nivel Bsico/Intermedio
1
2
Contenido
PRLOGO .................................................................................................................................... 7
1. INTRODUCCIN A VISUAL BASIC .NET .............................................................................. 10
1.1 Microsoft Visual Studio .NET ........................................................................................ 10
1.2 .NET FrameWork ......................................................................................................... 10
1.3 Pgina de Inicio Visual Studio .NET/2008 .................................................................... 11
2. PROYECTOS WINDOWS FORMS CON VISUAL BASIC .NET ............................................ 14
2.1 Crear una Aplicacin Windows Forms ......................................................................... 14
2.2 Elegir la plantilla de aplicaciones. ................................................................................. 14
2.3 Crear la interfaz de usuario. ......................................................................................... 19
2.4 Establecer las propiedades de los controles ................................................................ 20
2.5 Escribir cdigo .............................................................................................................. 21
2.6 Guardar la aplicacin .................................................................................................... 22
2.7 Ejecutar la aplicacin Windows Forms. ....................................................................... 23
2.8 Cerrar y Abrir un proyecto Windows Forms. ................................................................ 24
3. FUNDAMENTOS DE VISUAL BASIC .NET ............................................................................ 25
3.1 Variables ....................................................................................................................... 25
3.2 Constantes .................................................................................................................... 26
3.3 Tipos de datos .............................................................................................................. 26
3.3.1 Ejemplo prctico tipos de datos ................................................................................. 26
3.4 Funciones de conversin de tipos de datos ................................................................. 30
3.5 Operadores y Expresiones ........................................................................................... 32
3.5.1 Operadores aritmticos ............................................................................................. 32
3.5.2 Operadores relacionales ........................................................................................... 32
3.5.3 Operadores de igualdad ............................................................................................ 32
3.5.4 Operadores Lgicos .................................................................................................. 33
3.5.5 Ejemplo prctico operadores aritmticos .................................................................. 33
3.6 Palabras clave .............................................................................................................. 36
3.7 Comentarios ................................................................................................................. 36
4. ESTRUCTURAS DE CONTROL ............................................................................................. 37
4.1 Estructura de control If - Else ....................................................................................... 37
4.1.1 Sentencia If ................................................................................................................ 37
4.1.2 Sentencia If- Else....................................................................................................... 38
4.1.3 If (operador) ............................................................................................................... 39
4.1.4 IIF ............................................................................................................................... 39
4.1.5 Ejemplo estructura If-Else ......................................................................................... 39
4.2 Sentencia Select ........................................................................................................... 42
4.2.1 Ejemplo estructura Select .......................................................................................... 43
4.3 Estructura For-Next ...................................................................................................... 45
4.3.1 Ejemplo estructura For-Next ...................................................................................... 46
4.4 Estructura While ........................................................................................................... 48
4.4.1 Ejemplo estructura While ........................................................................................... 49
4.5 Do-Loop While .............................................................................................................. 51
4.5.1 Ejemplo estructura Do-Loop while............................................................................. 52
4.6 Estructura For-Each...................................................................................................... 55
4.6.1 Ejemplo estructura For-Each ..................................................................................... 55
4.7 Ejercicios estructuras de control ................................................................................... 58
5. MDULOS Y PROCEDIMIENTOS ......................................................................................... 59
5.1 Mdulos ........................................................................................................................ 59
5.2 Procedimientos o funciones ......................................................................................... 61
5.2.1 Ejemplo prctico mdulo y procedimientos Sub y Function ...................................... 62
5.3 Funciones predeterminadas ......................................................................................... 66
5.3.1 Funcin de fecha y hora ............................................................................................ 66
3
5.3.1.1 Ejemplo prctico funciones de fecha y hora ........................................................... 67
5.3.2 Funciones Matemticas ............................................................................................. 69
5.3.2.1 Ejemplo prctico funciones matemticas ............................................................... 70
5.3.3 Funciones para cadenas de caracteres .................................................................... 72
5.3.3.1 Ejemplo prctico funciones de cadena de caracteres ............................................ 74
5.4 Ejercicios de procedimientos ........................................................................................ 77
6. MATRICES Y COLECCIONES ............................................................................................... 78
6.1 Matrices de una Dimensin o Unidimensionales ......................................................... 78
6.1.1 Ejemplo prctico matriz unidimensional .................................................................... 78
6.2. Matrices de ms de una Dimensin ............................................................................ 81
6.2.1 Ejemplo prctico matrices bidimensionales .............................................................. 82
6.3 Colecciones .................................................................................................................. 84
6.3.1 Ejemplo prctico colecciones .................................................................................... 84
6.4 Ejercicios Matrices ........................................................................................................ 90
7. CONTROLES PARA INTERFAZ DE USUARIO ..................................................................... 91
7.1 LinkLabel ...................................................................................................................... 91
7.1.1 Ejemplo prctico LinkLabel ........................................................................................ 91
7.2 Controles ListBox y ComboBox .................................................................................... 93
7.2.1 Ejemplo prctico ListBox y ComboBox...................................................................... 93
7.3 Checkbox y RadioButton .............................................................................................. 99
7.3.1 Ejemplo prctico Checkbox y RadioButton ............................................................... 99
7.4 VScrollBar, HScroolBar, TrackBar. ............................................................................. 102
7.4.1 Ejemplo prctico VScrollBar y TrackBar ................................................................. 102
7.5 DataGridView .............................................................................................................. 105
7.5.1 Ejemplo prctico DataGridView ............................................................................... 105
7.6 ListView ...................................................................................................................... 107
7.6.1 Ejemplo prctico ListView ........................................................................................ 107
7.7 RichTextBox ............................................................................................................... 115
7.7.1 Ejemplo prctico RichTextBox ................................................................................. 115
7.8 TreeView. .................................................................................................................... 118
7.8.1 Ejemplo prctico TreeView ...................................................................................... 119
7.9 FolderBrowserDialog .................................................................................................. 122
7.9.1 Ejemplo prctico FolderBrowserDialog ................................................................... 122
7.10 WebBrowser ............................................................................................................. 125
7.10.1 Ejemplo prctico WebBrowser .............................................................................. 125
7.11 Ejercicios interfaz de usuario .................................................................................... 129
8. MENS EN FORMULARIOS ................................................................................................ 130
8.1 Creacin de Mens con Interfaz de documento sencillo............................................ 130
8.1.1 Ejemplo prctico mens con interfaz de documento sencillo ................................. 130
8.2 Creacin de Mens con interfaz mltiple ................................................................... 141
8.2.1 Ejemplo prctico formularios MDI ............................................................................ 141
8.3 Men Ventana ............................................................................................................ 153
8.4 Desactivar las opciones del men en formularios MDI .............................................. 156
8.5 Creacin de una barra de herramientas en una aplicacin MDI ................................ 156
8.6 Crear un men contextual .......................................................................................... 159
9. GRFICOS Y ANIMACIN ................................................................................................... 162
9.1 El espacio de nombres System.Drawing .................................................................... 162
9.2 Movimiento de un control ........................................................................................... 172
9.2.1 Ejemplo prctico movimiento de un control ............................................................. 172
9.3 Expandir y contraer un control .................................................................................... 175
9.3.1 Ejemplo prctico expandir y contraer un control ..................................................... 176
9.4 Animacin ................................................................................................................... 178
9.4.1 Ejemplos prcticos de animacin ........................................................................... 178
9.5 Ejercicios de grficos .................................................................................................. 187
10. MANEJO DE EVENTOS (MOUSE TECLADO) ............................................................... 188
4
10.1 Eventos del mouse ................................................................................................... 188
10.2 Ejercicios de eventos del mouse .............................................................................. 189
10.3 Eventos del teclado .................................................................................................. 193
10.4 Ejercicios de eventos del teclado ............................................................................. 193
11. PROGRAMACIN ORIENTADA A OBJETOS CON VB.NET ............................................ 198
11.1 Constructores ........................................................................................................... 199
11.1.1 Constructores sin parmetros ............................................................................... 199
11.1.2 Constructores con parmetros .............................................................................. 200
11.1.3 Sobrecarga de constructores ................................................................................ 200
11.2 Herencia y polimorfismo ........................................................................................... 201
11.3 Ejemplos prcticos de clases ................................................................................... 202
11.4 Interfaces .................................................................................................................. 217
11.5 Ejemplo prctico de interfaces ................................................................................. 218
11.6 Ejercicios P.O.O ....................................................................................................... 222
12. ACCESO A BASES DE DATOS CON VB.NET .................................................................. 223
12.1 Tipos de Bases de Datos. ........................................................................................ 223
12.1.1 bases de datos relacionales .................................................................................. 223
12.1.2 bases de datos orientadas a objetos. .................................................................... 223
12.2 Lenguaje de consulta estructurado (S.Q.L.) ............................................................. 223
12.2.1 Comandos S.Q.L .................................................................................................. 223
12.2.2 Clusulas S.Q.L .................................................................................................... 224
12.2.3 Operadores lgicos S.Q.L .................................................................................... 224
12.2.4 Operadores de comparacin S.Q.L ...................................................................... 225
12.2.5 Funciones de agregado S.Q.L ............................................................................... 225
12.3 Sentencias bsicas S.Q.L ........................................................................................ 226
12.3.1 CREATE DATABASE ............................................................................................ 226
12.3.2 DROP DATABASE ................................................................................................ 226
12.3.3 CREATE TABLE .................................................................................................... 226
12.3.4 DROP TABLE ........................................................................................................ 227
12.3.5 INSERT .................................................................................................................. 227
12.3.6 ALTER ................................................................................................................... 227
12.3.7 SELECT ................................................................................................................. 227
12.3.8 DELETE ................................................................................................................. 228
12.3.9 UPDATE ................................................................................................................ 229
12.3.10 INNER JOIN ........................................................................................................ 229
12.4 Conexin a bases de datos con VB.NET ................................................................. 230
12.5 Ejemplos prcticos de bases de datos ..................................................................... 231
12.5.1 Conexin a una base de datos SQL Server por cdigo ........................................ 231
12.5.2. Conexin a SQL Server utilizando el Explorador de servidores .......................... 234
12.5.3 Conexin a una base de datos con DataGridView y BindingNavigator ................ 241
12.5.4 Insertar un nuevo registro a una tabla ................................................................... 248
12.5.5 Filtrar registros de una tabla .................................................................................. 252
12.5.6 Informe de los registros de una tabla .................................................................... 256
12.5.7 Relacin de tablas ................................................................................................. 268
12.6 Ejercicios bases de datos ......................................................................................... 276
13. LENGUAJE DE CONSULTA INTEGRADO (LINQ) ............................................................ 277
13.1 Proveedores LINQ .................................................................................................... 277
13.2 Operadores de Consulta LINQ de VB.NET .............................................................. 277
13.3 Escribir una consulta con LINQ en VB.NET ............................................................. 279
13.4 Ejemplos prcticos consultas LINQ .......................................................................... 280
13.4.1 Consulta LINQ a un texto ...................................................................................... 280
13.4.2 Consulta LINQ a una matriz .................................................................................. 283
13.4.3 Consultar una base de datos SQL Server con LINQ To SQL .............................. 286
13.4.4 Operaciones con una tabla de una base de datos SQL Server ............................ 291
13.4.5 Relacin entre dos tablas de una base de datos SQL Server .............................. 301
13.4.6 Relacin tablas con LINQ to SQL y DataGridView ............................................... 306
13.4.7 Consulta LINQ to DataSet ..................................................................................... 311
5
13.5 Ejercicios de consulta LINQ ..................................................................................... 314
14. APLICACIONES WEB ASP.NET ........................................................................................ 315
14.1 Aplicacin Web (ASP.NET) ...................................................................................... 316
14.1.1 Crear un nuevo sitio Web ...................................................................................... 316
14.1.2 Crear la interfaz de usuario ................................................................................... 318
14.1.3 Establecer las propiedades de los controles ......................................................... 319
14.1.5 Ejecutar la aplicacin Web .................................................................................... 325
14.1.6 Cerrar y abrir nuevamente un sitio Web ................................................................ 326
14.2 Controles para interfaz de usuario ASP.NET ........................................................... 326
14.2.1 Control CheckBoxList ............................................................................................ 327
14.2.1.1 Ejemplo prctico control CheckBox List ............................................................. 327
14.2.2 Control ImageMap ................................................................................................. 329
14.2.2.1 Ejemplo prctico control ImageMap ................................................................... 330
14.2.3 Control BulletedList ............................................................................................... 333
14.2.3.1 Ejemplo prctico control BulletedList.................................................................. 334
14.2.4 Control RadioButtonList ......................................................................................... 337
14.2.4.1 Ejemplo prctico control RadioButtonList ........................................................... 337
14.2.5 Control MultiView ................................................................................................... 340
14.2.5.1 Ejemplo prctico control MultiView ..................................................................... 341
14.3 Controles para validar datos ..................................................................................... 348
14.3.1 Ejemplo prctico controles de validacin .............................................................. 348
15. ACCESO A BASES DE DATOS CON ASP.NET ................................................................ 353
15.1 Controles para operaciones con orgenes de datos ................................................. 353
15.2 Ejemplos prcticos bases de datos con ASP.NET ................................................... 353
15.2.1 Conexin a SQL Server por cdigo ....................................................................... 353
15.2.2 Conexin a una base de datos con un control GridView ...................................... 357
15.2.3 Consulta una base de datos utilizando el Explorador de servidores .................... 362
15.2.4 Insertar un registro en una tabla ............................................................................ 369
15.2.5 Modificar un registro de una tabla ......................................................................... 375
15.2.6 Eliminar un registro de una tabla ........................................................................... 378
15.2.7 Filtrar registros de una tabla .................................................................................. 382
15.2.8 Informe de los registro de una tabla ...................................................................... 388
15.2.9 Visualizar los registros de dos tablas relacionadas............................................... 396
15.3 Ejercicios bases de datos con ASP.NET.................................................................. 404
16. SERVICIOS WEB ................................................................................................................ 405
16.1 Crear un servicio Web desde Visual Basic .NET ..................................................... 405
16.2 Acceder a un Servicio Web ...................................................................................... 411
16.2.1 Ejemplo prctico para acceder a un Servicio Web desde ASP.NET .................... 411
NDICE ...................................................................................................................................... 416
BIBLIOGRAFA.......................................................................................................................... 419
INFOGRAFA............................................................................................................................. 419
ANEXO A SQL SERVER .......................................................................................................... 420
A.1 Conectarse a SQL Server. ......................................................................................... 420
A.2 Crear una base de datos ............................................................................................ 421
A.3 Crear tablas en la base de datos ............................................................................... 423
A.4 Crear Diagramas de una base de datos .................................................................... 431
A.5 Crear una vista ........................................................................................................... 435
6
PRLOGO
Visual Basic y ASP .NET a su alcance (bsico / intermedio) proporciona los elementos
necesarios para obtener un conocimiento hasta un nivel intermedio del lenguaje de
programacin Visual Basic. Este libro se elaboro pensado en aquellos usuarios que
estn interesado en conocer las posibilidades de programacin orientada a objetos con
Visual Basic .NET, lo relacionado con la creacin de clases, herencia e interfaces.
Adems conocer los fundamentos del lenguaje de programacin: definicin de
variables, constantes, tipos de datos, estructuras de control, mdulos, procedimientos,
matrices y colecciones, as como tambin la creacin de interfaz de usuario utilizando
aplicaciones Windows Forms y ASP.NET, acceso a bases de datos, el lenguaje de
consulta integrado LINQ y la creacin y la utilizacin de servicios Web.
Todos los ejemplos del libro se han codificado, compilado y ejecutado desde el
entorno de desarrollo integrado de Microsoft Visual Studio 2008 (la mayora de los
ejemplos tambin se pueden trabajar con las versiones Express Edition Visual Basic
2005/2008 y Visual Web Developer 2005/2008).
7
Capitulo 5, Mdulos y Procedimientos: Aqu se habla sobre la creacin de
mdulos y procedimientos Sub y Function. Adems se conceptualiza sobre
algunas funciones predeterminadas de fecha y hora, matemticas y de
manipulacin de caracteres, complementado con ejemplos prcticos y
ejercicios para resolver.
Capitulo 6, Matrices y colecciones: Se habla sobre la estructuracin de
datos en matrices unidimensionales y bidimensionales con elementos de un
mismo tipo y las colecciones en memoria con tipos de datos diferentes; aqu
tambin se presentan ejemplos aplicados al tema, como tambin ejercicios
para practicar.
Capitulo 7, Controles para Interfaz de Usuario: Se explican y trabajan
controles que permiten mejorar el diseo de la interfaz grfica de usuario en
un programa apoyado por ejemplos.
Capitulo 8, Mens en Formularios: En este captulo encontrar la forma de
crear mens con interfaz de documento sencillo y mltiple, as como la
creacin de barras de herramientas, mens contextuales y desactivar
opciones del men, explicados a travs de ejemplos.
Capitulo 9, Grficos y animacin: Se conceptualiza sobre el espacio de
nombres System.Drawing, algunas funciones para graficar, el movimiento de
controles, la expansin y contraccin de controles, as como los aspectos
bsicos para lograr la animacin. Todo esto es apoyado con ejemplos
prcticos y ejercicios para practicar.
Capitulo 10, Manejo de eventos (mouse, teclado) : Se explican los
posibles eventos que pueden ocurrir al utilizar el mouse y el teclado, con
ejemplos prcticos para un mejor aprendizaje.
Capitulo 11, Programacin orientada a objetos utilizando VB.NET: Se
manejan los conceptos de programacin orientada a objetos utilizando el
lenguaje de programacin Visual Basic .NET en cuanto a: constructores,
sobrecarga de constructores, herencia, polimorfismo e interfaces, cada tema
explicado a travs de ejemplos.
Capitulo 12, Acceso a bases de datos con .NET: Se conceptualiza sobre
bases de datos, el lenguaje de consulta estructurado (SQL) y como se accede
a una base de datos para manipular la informacin contenida en ella,
complementada con ejemplos prcticos y ejercicios para resolver.
Capitulo 13, Lenguaje de consulta integrado (LINQ): En este captulo se
habla de cmo crear y ejecutar consultas de datos con colecciones de
memoria, con bases de datos SQL Server, apoyado por diversos ejemplos
para complementar el aprendizaje, as como una serie de ejercicios para
practicar.
Capitulo 14, Aplicaciones Web ASP.NET: En este captulo se habla de
cmo crear y ejecutar una aplicacin Web ASP.NET. Adems se explican
algunos controles utilizados en los formularios Web para el diseo de la
interfaz de usuario y para la validacin de datos. Todo esto es referenciado
por medio de ejemplos.
Capitulo 15, Acceso a bases de datos con ASP.NET: Se aplican los
conceptos de bases de datos y las formas de conexin que se manejan en el
captulo 12 en aplicaciones Web ASP.NET, apoyado con ejemplos. Adems
se presentan una serie de ejercicios como complemento al aprendizaje del
acceso a base de datos con ASP.NET.
8
Capitulo 16 Servicios Web: En este captulo se conceptualiza sobre los
servicios Web, la creacin de un servicio Web, as como la forma de accesar
a un servicio Web desde una aplicacin ASP.NET.
Anexo A: Se explica cmo se realiza la conexin a la base de datos SQL
Server, as como la creacin de una base de datos, la creacin de tablas,
diagramas y vistas dentro de la base de datos. Este anexo apoya cada uno de
los ejemplos de acceso a bases de datos en aplicaciones Windows Forms y
ASP.NET.
9
1. INTRODUCCIN A VISUAL BASIC .NET
Visual Basic .NET (VB.NET) es una versin de Visual Basic enfocada al desarrollo de
aplicaciones .NET. Este lenguaje de programacin apareci en el ao 1991 como una
evolucin del QuickBasic que fabricaba Microsoft. Dicho lenguaje de programacin es
orientado a objetos y permite crear la interfaz de usuario utilizando formularios y
controles a los cuales se les puede escribir cdigo para definir el comportamiento de una
aplicacin. Visual Basic .NET contiene una serie de instrucciones, funciones y palabras
clave que estn relacionados con la interfaz grafica de Windows. Con este lenguaje es
posible la creacin de aplicaciones Windows Forms y sitios Web, donde se puede
realizar la gestin estructurada de errores, el soporte para la ejecucin de varios
subprocesos, as como la interaccin con archivos de texto, bases de datos, utilizando el
envi de datos con documentos XML1 y la generacin de informes, etc.. Generalmente
el usuario que programa con Visual Basic .NET utiliza el entorno de desarrollo
integrado de Microsoft Visual Studio NET (2003, 2005, 2008).
Para el objetivo del libro se trabajar con el entorno Microsoft Visual Studio
2008.
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.
10
Ofrecer un entorno coherente entre lenguajes de programacin diferentes
basados en Windows o Web.
Ofrecer estndares para que el cdigo de .NET FrameWork se pueda integrar
con otros tipos de cdigo.
Aplicaciones de consola.
Aplicaciones Windows Forms.
Aplicaciones Windows Presentation Foundation (WPF).
Aplicaciones ASP.NET
Servicios Web.
11
Para iniciar el entorno de Visual Studio .NET 2008 pulse la opcin Microsoft
Visual Studio 2008.
Caracterstica Descripcin
Diseador de Windows Una superficie de diseo grfico que permite crear
Forms rpidamente la interfaz de usuario de una aplicacin. Se
puede arrastrar o dibujar controles sobre esta superficie.
Herramientas para Se proporciona una plantilla Aplicacin Windows Forms,
Aplicaciones Windows con referencias de proyectos bsicos y cdigo de inicio
Forms como ayuda para crear aplicaciones Windows Forms
estndares.
Herramientas para Web Se proporciona una plantilla Aplicacin Web ASP.NET, con
Forms referencias de proyectos bsicos y cdigo de inicio como
ayuda para crear aplicaciones Web ASP.NET en las que la
interfaz de usuario principal es un navegador.
Herramientas para Se proporciona una plantilla Aplicacin de servicios Web
servicios Web XML ASP.NET. Esta plantilla construye la estructura de un
proyecto de aplicacin Web en un servidor Web de
desarrollo.
12
Soporte de mltiples Soporta los lenguajes de programacin de la plataforma
lenguajes .NET: Visual Basic .NET, Visual C++ y Visual C#, que
estn integrados en el entorno de desarrollo.
Acceso a datos Componentes para crear aplicaciones que comparten
datos, herramientas de bases de datos visuales para
acceder a los datos y un robusto conjunto de clases de
Microsoft ADO.NET.
Gestin de errores Las herramientas de depuracin con soporte multilenguaje
ayudan a encontrar y solucionar errores de cdigo, donde
se pueden utilizar clases de excepciones estructuradas
para incluir la gestin de errores en una aplicacin.
Asistentes Los asistentes ayudan a completar rpidamente tareas
comunes. Cada pgina de un asistente ayuda a establecer
opciones, configurar y personalizar proyectos.
2
Un nuevo conjunto de herramientas diseado para reducir la complejidad del acceso a Base de Datos.
13
2. PROYECTOS WINDOWS FORMS CON VISUAL BASIC .NET
Crear una aplicacin Windows Forms en Visual Basic .NET, requiere de 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 crear una aplicacin Windows Forms desde la pgina de inicio de Visual Studio, se
pueden seguir los siguientes pasos:
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. En los ejemplos del libro se utilizarn las plantillas:
14
Aplicacin para Windows Forms y Aplicacin Web ASP.NET. La plantilla
Aplicacin para Windows Forms proporciona las herramientas, estructura y cdigo de
inicio para crear una aplicacin estndar basada en Windows, aadiendo
automticamente las referencias bsicas del proyecto y los archivos a utilizar como
punto de partida para la aplicacin. La plantilla Aplicacin Web ASP.NET se utiliza
para crear una aplicacin Web ASP.NET en un equipo que tenga instalado Internet
Information Services (IIS)3 versin 5.0 o posterior. Para iniciar el diseo de la
aplicacin la plantilla crea los archivos bsicos necesarios en el servidor.
3
Este servicio convierte a un computador en un servidor de Internet o Intranet es decir
que en los computadores que tienen este servicio instalado se pueden publicar pginas
Web tanto local como remotamente (servidor Web).
15
ventana de propiedades, el cuadro de herramientas y otros elementos
importantes del entorno de desarrollo.
Men Principal
Barra de Herramientas
16
minimizar, maximizar y cerrar. Para visualizar un formulario en la vista Diseo
se puede realizar siguiente:
o Con el Explorador de soluciones , hacer doble clic en el formulario.
17
La siguiente tabla describe algunos tipos de archivos habituales especficos para
las soluciones basadas en Visual Basic .NET:
o Para visualizar las propiedades por categoras: Haga clic en el botn Por
18
Figura 2.7 Cuadro de propiedades.
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. D clic en el
control que se desea aadir y arrstrelo a la ubicacin deseada en el formulario. Para
este caso de ejemplo se diseara la interfaz de usuario utilizando los siguientes
controles: 3 Label (etiqueta), 1 TextBox (campo de texto), 1 Button (botn) y 1
DataGridView (malla de datos).
Los siguientes pasos permiten:
19
Figura 2.9 Prepantalla de la interfaz de usuario.
20
Figura 2.10 Pantalla final de la interfaz de usuario.
Una vez se hayan establecido las propiedades inciales del formulario y sus objetos, se
puede agregar el cdigo que se ejecutar en respuesta a un evento especifico 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
escribir cdigo que se ejecute en un evento determinado de un control, se debe realizar
lo siguiente:
21
Figura 2.11 Editor de cdigo del objeto boton.
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
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
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 numero 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 de i+1, en la tercera columna el producto de
multiplicar el valor del objeto camponumero por i+1.
Una vez finalizada la creacin de la aplicacin, se debe guarda la aplicacin dentro del
entorno de desarrollo para asegurar que todos los cambios realizados se almacenen, esto
se puede realizar de la siguiente forma:
22
Figura 2.12 Ventana para Guardar el proyecto.
23
Si se escribe el nmero 5 en el campo de texto y se pulsa el botn Ver Tabla, se
visualizar la siguiente figura.
24
3. FUNDAMENTOS DE VISUAL BASIC .NET
Para iniciar el conocimiento del mundo Visual Basic .NET, es necesario conocer
conceptos fundamentales como: creacin de variables, constantes, tipos de datos, tipos
de operadores, definicin de comentarios, expresiones, etc.
3.1 Variables
Las variables pueden ser locales o globales. Las variables locales son aquellas
que se crean dentro de un bloque especfico de programacin y se destruirn al
finalizarse el bloque de programacin.
Ejemplo:
Private Sub funcin ()
Dim var_local As Integer (variable local)
var_local=10
End Sub
Las variables globales son aquellas que pueden ser modificadas desde cualquier
punto de un programa.
Ejemplo:
Public Class Variables_Globales
Public var_global As Integer (variable global)
Private Sub funcin ()
Dim var_local As integer
var_global=10 (valor modificado en la funcin1 ())
::::::::
End Sub
Private Sub funcin2 ()
Dim var_local As integer
var_global=20 (valor modificado en la funcin2 ())
::::::::::
End Sub
::::::::::::::::
End Class
25
3.2 Constantes
Son variables que permanecen constantes durante el desarrollo del programa. Existen
constantes numricas, de carcter, lgicas, etc. El formato de la declaracin de una
variable constante es:
Un tipo de dato define todo el posible rango de valores que una variable puede tomar al
momento de la ejecucin de un programa y a lo largo de toda la vida til del propio
programa. Para seleccionar un tipo de dato en un programa se debe tener en cuenta el
que mejor se adapte a los datos. Por ejemplo, si un programa necesita almacenar valores
entre -20000 y 30000, los tipos de datos que se podran utilizar seran short, long,
integer. Si utiliza el tipo de dato short, la aplicacin utilizara menos memoria para
almacenar el valor de la variable. A continuacin se presenta la tabla con los tipos de
datos que soporta Visual Basic .NET y su respectivo tamao.
26
Iniciar un nuevo proyecto Visual Basic .NET
27
Tabla 3.2 Propiedades de los controles de la aplicacin TiposdeDatos.
Escribir cdigo
Una vez se hayan establecido las propiedades inciales del formulario y sus objetos, se
puede agregar cdigo que se ejecutar en respuesta a eventos.
Para escribir cdigo que se ejecute en un evento determinado del control, realice
lo siguiente:
Para el ejemplo, d doble clic sobre el objeto boton para ver el editor de cdigo,
la figura 3.2, muestra el editor de cdigo del control.
28
Private Sub boton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles boton.Click
:::::::::::::::,
End Sub
End Class
Despus d doble clic sobre el objeto botonsalir, para abrir el editor de cdigo y escriba
el siguiente cdigo:
End
Guardar la aplicacin
29
Ejecutar el proyecto
Son funciones que se utilizan para realizan conversin a un tipo de dato diferente al que
inicialmente estaba estipulado en una variable. Estas funciones generalmente forman
parte del cdigo de un programa. Su formato es:
Objeto_nuevo_tipo=nombre_funcin_de_conversion (expresin).
30
Tabla 3.3 Funciones de conversin.
31
3.5 Operadores y Expresiones
Los operadores son smbolos que pueden realizar acciones sobre uno o dos operandos.
Se clasifican en: aritmticos, relacionales, lgicos, de asignacin. Las expresiones son
combinaciones de constantes, variables, smbolos de operaciones, parntesis.
32
3.5.4 Operadores Lgicos
33
Tabla 3.8 Propiedades de los controles del proyecto OperadoresAritmticos.
34
Escribir cdigo
Ejecutar el proyecto
35
3.6 Palabras clave
Las palabras clave son identificadores predefinidos que tiene significado especial para
el compilador de Visual Basic .NET. Por lo tanto, una variable o constante definida por
el usuario no puede tener el mismo nombre de una palabra clave. Las palabras clave de
Visual Basic .NET se muestran en la siguiente tabla:
Palabras Clave
AddHandler AddressOf ndAlso Alias And
Ansi As Assembly Auto Boolean
ByRef Byte Byval Call Case
Match CBool CByte CChar Cdate
CDec CDbl Char CInt Class
CLng CObj Const CShort CSng
CStr CType Date Decimal Declare
Default Delegate Dim DirectCast Do
Double Each Else ElseIf End
Enum Erase Error Event Exit
False Finally For Friend Function
Get GetType GoTo Handles If
Implements Imports In Inherits Integer
Interface Is Lib Like Long
Loop Me Mod Module MustInherit
MustOverride MyBase MyClass Namespace New
Next Not Nothing NotInhertable NotOverridable
Object On Option Optional Or
OrElse Private Property Protected Public
RaiseEvent ReadOnly ReDim Rem RemoveHandler
Resume Return Select Set Shadows
Shared String Structure Static Step
Stop Short Single Sub SyncLock
Then Throw To True Try
Typeof Unicote Until When While
UIT WithEvents WriteOnly Xor
3.7 Comentarios
Ejemplo:
Este es un comentario
36
4. ESTRUCTURAS DE CONTROL
4.1.1 Sentencia If
Se pueden anidar varios If, es decir, uno entre otro, para ingresar cada vez al If
ms interno es necesario que la condicin sea verdadera. Se debe tener en cuenta que
por cada bloque If que se realice debe existir una finalizacin EndIf. Tambin se
pueden utilizar los operadores lgicos (And, Andalso, Or, OrAlso, Xor, Not) para
concatenar varias condiciones. Si se utiliza el operador lgico And, cada una de las
condiciones debe ser verdadera para que ingrese al If y se ejecuten las instrucciones. En
el caso del operador Or, si una de las condiciones es verdadera ingresara al If y
ejecutar las instrucciones.
37
4) If (condicin1 And condicion2) Then
Instruccin(es) a ejecutarse si las condiciones son verdaderas
:::::::
Endif
Resto del programa
Es una estructura compuesta que evala una condicin. Si esta es verdadera realizar las
instrucciones contenidas en el bloque If, en caso contrario ingresar por el bloque Else.
El programa solo tomar una de las dos alternativas y continuar con el resto del
programa. Su formato es el siguiente:
If (condicin) Then
Instruccin(es) a ejecutarse si la condicin es verdadera
::::::::
Else
Instruccin(es) a ejecutarse si la condicin es falsa
::::::::
Endif
Resto del programa
38
4.1.3 If (operador)
Se utiliza para una toma de decisin mltiple donde se devolver uno de dos valores al
evaluar una expresin. Su formato es:
4.1.4 IIF
Ejemplo:
H M S +1 un H M S
segundo
17 15 25 17 15 26
13 44 59 13 45 0
18 59 59 19 0 0
23 59 59 0 0 0
NOTA: a partir de este captulo se omitirn pasos que se supone que el lector ya maneja
como son: iniciar un nuevo proyecto, escoger los controles y los pasos para ejecutar el
39
proyecto.
Para el caso del ejemplo establezca las siguientes modificaciones a los controles:
40
TextBox5 Name minutos
Text En blanco
TextBox6 Name segundos
Text En blanco
Button1 Name boton
Text Ms un segundo
Form1 Name formulario
Text Toma de decisiones (If-Else) en Visual Basic .NET
Escribir cdigo
Seleccione el objeto boton, d doble clic para abrir el editor de cdigo boton_Click y
escriba el siguiente cdigo:
Dim H, M, S As Integer
H = horas.Text
M = minutos.Text
S = segundos.Text
If(H = 23 And M = 59 And S = 59) Then
H=0
M=0
S=0
Else
If (M = 59 And S = 59) Then
H=H+1
M=0
S=0
Else
If (S = 59) Then
M=M+1
S=0
Else
S=S+1
End If
End If
41
End If
hora.Text = H
minuto.Text = M
segundo.Text = S
Ejecutar el proyecto
Es una toma de decisin con varias opciones, esto es, segn sea el valor (entero o
caracter) de una variable escoger un caso entre varias alternativas. Su formato es:
Select (variable)
Case expresion1
instrucciones1
Case expresion2
instrucciones2
42
...
...
[Case Else]
instruccionesN
End Select
43
Establecer las propiedades de los objetos de la interfaz de usuario
Para el caso del ejemplo establezca las siguientes modificaciones a los controles:
Escribir cdigo
Seleccione el objeto boton, d doble clic para abrir el editor de cdigo boton_Click y
escriba el siguiente cdigo:
Dim valor As Integer
valor = numero.Text
Select Case valor
Case Is = 1
dia.Text = "Lunes"
Case Is = 2
dia.Text = "Martes"
44
Case Is = 3
dia.Text = "Miercoles"
Case Is = 4
dia.Text = "Jueves"
Case Is = 5
dia.Text = "Viernes"
Case Is = 6
dia.Text = "Sbado"
Case Is = 7
dia.Text = "Domingo"
Case Else
dia.Text = "No es un dia de la semana"
End Select
Ejecutar el proyecto
Sirve para repetir una o varias instrucciones, usando una variable que por lo general es
llamada contador; esta estructura inicializa el contador y evala su valor por medio de
una condicin, si esta es verdadera se ejecutarn las instrucciones del ciclo y aumentar
o disminuir el contador automticamente, de lo contrario se finalizar el ciclo. Su
formato es:
For variable =expresion1 To expresin2 [Step expresion3]
Instruccion(es)
::::::::
Next
45
El valor de variable es inicializado con el valor que contenga expresion1.
Expresion2 representa el valor final del ciclo repetitivo. La sentencia Step es opcional,
por defecto sino existe dicha sentencia el incremento ser de uno (1), si por el contrario
se utiliza la sentencia Step se pueden realizar incrementos o decrementos diferentes de
uno (1).
Para el caso del ejemplo establezca las siguientes modificaciones a los controles:
46
Form1 Name formulario
Text Estructura For-Next
Escribir cdigo
Seleccione el objeto boton, d doble clic para abrir el editor de cdigo boton_Click y
escriba el siguiente cdigo:
Dim inicio, valor, suma As Integer
For inicio = 1 To 10
valor = InputBox("Digite numero", "Captura de nmeros")
numero.Text = numero.Text & valor & vbCrLf
suma = suma + valor
Next
numero.Text = numero.Text & vbCrLf & "La sumatoria es: " & suma
Se definen las variables de tipo entero inicio, valor, suma. Se inicializa un ciclo
For que se repetir 10 veces. En l se le asigna a la variable valor los diferentes
nmeros capturados con la funcin InputBox (Esta funcin permite capturar un valor
por teclado; en este caso, solamente se utilizan dos parmetros: el primero para
establecer un mensaje y el segundo para un titulo). Por otro lado, al control numero en
su propiedad Text se le asigna el contenido que tenga en ese momento concatenado con
el valor capturado y un salto de carro (vbcrlf); la variable suma guardar la sumatoria
de los valores capturados. Al salir del ciclo For se imprimir en el objeto numero el
texto La sumatoria es: unido con el valor de la variable suma.
Ejecutar el proyecto
Al ejecutarse el proyecto y pulsar el botn Capturar 10 nmeros se mostrar el cuadro
de captura:
47
Figura 4.9 Cuadro para capturar los nmeros.
Sirve para repetir una secuencia de instrucciones siempre que la condicin evaluada sea
verdadera. Si al evaluarse la condicin es falsa no ingresar al ciclo y continuar con el
resto del programa. Su formato es:
While (condicin)
Instruccion(es)
::::::::
incremento decremento
End While
Resto del programa
48
4.4.1 Ejemplo estructura While
Para el caso del ejemplo establezca las siguientes modificaciones a los controles:
49
Figura 4.12 Interfaz de usuario final (EstructuraWhile).
Escribir cdigo
Seleccione el objeto boton, d doble clic para abrir el editor de cdigo boton_Click y
escriba el siguiente cdigo:
Dim contador, valor, nmayor, nmenor As Integer
contador = 1
While (inicio <= 10)
valor = InputBox("Digite numero", "Captura de nmeros")
If (contador = 1) Then
nmayor = valor
nmenor = valor
End If
If (nmayor < valor) Then
nmayor = valor
End If
If (nmenor > valor) Then
nmenor = valor
End If
mayor.Text = nmayor
menor.Text = nmenor
contador = contador + 1
End While
50
contador en 1 para que al digitar los 10 valores se pueda salir del ciclo While.
Ejecutar el proyecto
Existen muchas situaciones en las que se desea que un ciclo se ejecute al menos una vez
antes de comprobar la condicin de repeticin. En la estructura While si el valor de la
expresin booleana es inicialmente falso, las instrucciones del ciclo no se ejecutarn;
por ello, se necesitan otros tipos de estructuras repetitivas como Do-Loop While, que se
ejecuta por lo menos una vez. Su formato es:
51
Do
Instruccin(es)
::::::::
incremento decremento
Loop While (condicin)
Para el caso del ejemplo establezca las siguientes modificaciones a los controles:
52
MultiLine True
ScrollBar vertical
TextBox2 Name camposuma
Text En blanco
Button1 Name boton
Text Capturar 10 nmeros
Form1 Name formulario
Text Estructura Do Loop While
Escribir cdigo
Seleccione el objeto boton, d doble clic para abrir el editor de cdigo boton_Click y
escriba el siguiente cdigo:
Dim valor, suma As Integer
Dim respuesta As String
Do
valor = InputBox("Digite nmero:", "Capturar nmeros")
camponumeros= camponumeros & valor & vbcrlf
suma = suma + valor
respuesta = MsgBox("Desea Continuar (Si/No):", MsgBoxStyle.YesNo)
Loop While (respuesta = "6")
camposuma.Text = suma
Se crean tres variables: dos de tipo entero valor, suma y una de tipo String
llamada respuesta. Dentro de un ciclo Do Loop While se le asigna a la variable valor
los diferentes nmeros capturados con la funcin InputBox, adems al objeto
camponumeros en su propiedad Text se le asigna el contenido que tenga en ese
momento concatenado con el valor capturado y un salto de carro (vbcrlf); Por otro
lado, la variable suma guardar la sumatoria de los valores capturados y a la variable
53
respuesta se le asigna el valor retornado por la funcin MsgBox (El primer parmetro
es un mensaje para el cuadro de dilogo; el segundo parmetro es una expresin
numrica que especifican el nmero y los botones que se van a mostrar). Si desea
continuar (Si) capturando nmeros el valor que se almacenar en la variable respuesta
es 6, en caso contrario, se almacenar el valor 7. Al salir del ciclo Do Loop
While se imprimir en el objeto camposuma en su propiedad Text el valor de la
variable suma.
Ejecutar el proyecto
54
Figura 4.19 Ejecucin aplicacin EstructuraDoLoopWhile.
Sirve para repetir una o varias instrucciones por cada elemento de una coleccin. Esta
estructura es til cuando en una coleccin no se puede determinar cuntos elementos
existen. Su formato es:
For Each elemento [As tipo_de_dato] In coleccin
Instruccion(es)
::::::::
Next elemento
Hacer una aplicacin llamada EstructuraForEach que permita a un usuario digitar una
oracin en un campo de texto e imprimir cuantas vocales A contiene dicha oracin.
55
Figura 4.20 Interfaz de usuario inicial (EstructuraForEach).
Para el caso del ejemplo establezca las siguientes modificaciones a los controles:
56
Escribir cdigo
Seleccione el objeto boton, d doble clic para abrir el editor de cdigo boton_Click y
escriba el siguiente cdigo:
Dim cuentavocal As Integer
Dim cadena As String
cadena = campocadena.Text
For Each letra As String In cadena
If letra = "a" Then
cuentavocal = cuentavocal + 1
End If
Next
campovocal.Text = cuentavocal
Ejecutar el proyecto
57
4.7 Ejercicios estructuras de control
1. Escribir un programa que pida al usuario digitar dos nmeros e imprima las
operaciones con los operadores aritmticos, los operadores relacionales y los
operadores lgicos.
2. Realizar un programa que pida al usuario digitar dos nmeros enteros e imprima
l nmero mayor seguido del texto "Es el mayor".
3. Elaborar un programa que capture tres nmeros enteros e imprima l nmero
mayor, el del medio y el menor.
4. Hacer un programa que convierta una temperatura dada en grados Celsius a
grados Fahrenheit. La formula de conversin es F=9/5c +32.
5. Disear un programa que pida al usuario digitar un nmero e imprima el mes del
ao de dicho nmero. Si el nmero digitado no es un mes del ao se deber
mostrar el mensaje No es un mes del ao.
6. Crear un programa que imprima en un campo de texto los nmeros impares que
se encuentren entre 1 y 30, as como su sumatoria.
7. Escribir un programa que permita sumar los nmeros enteros de 1 a 100 usando
las estructuras: for, while, do while.
8. Realizar un programa que imprima todos los nmeros primos entre 2 y 100
inclusive (nota: utilice la propiedad Multiline del control TextBox para imprimir
los resultados).
9. Disear un programa que permita capturar N nmeros. Se debe imprimir el
nmero capturado en cajas de texto dependiendo si es par o impar, as como la
sumatoria de estos.
10. Escriba un programa que dado un nmero entero, diga si es o no es, un cubo
perfecto. Los nmeros astromg o cubos perfectos, son aquellos que sumados los
cubos de cada uno de sus dgitos da el mismo nmero. Por ejemplo 153 es un
cubo perfecto, pues (1) elevado a 3 + (5) elevado a 3 + (3) elevado a 3 es igual a
153.
58
5. MDULOS Y PROCEDIMIENTOS
5.1 Mdulos
Por omisin cada vez que se crea un mdulo el modificador de acceso es friend.
59
Mdulo.
60
Para declarar una variable pblica (aquellas que estn disponibles para todos los
procedimientos de la aplicacin) en un mdulo solo se necesita que al inicio del mdulo
se escriba la palabra clave public seguido por el nombre de la variable y el tipo de dato.
Una vez declarada esta variable podr ser utilizada para leerla, modificarla o
visualizarlA por cualquier procedimiento del programa.
En Visual Basic .NET existen dos tipos de procedimientos: Function y Sub. Los
procedimientos Function pueden ser invocados por su nombre desde otros
procedimientos, pueden recibir argumentos (son datos necesarios para que un
procedimiento trabaje correctamente y deben ir dentro de parntesis y separados por
comas), y siempre devuelven un valor con el nombre de la funcin. Los procedimientos
Sub tambin pueden ser son invocados por su nombre desde otros procedimientos,
pueden recibir argumentos y no devuelven valores. Los procedimientos Function y
Sub se pueden definir en el cdigo de un formulario, pero lo ms aconsejable es
definirlos dentro de un mdulo para que todos los elementos de un proyecto puedan
utilizarlos.
Se enva:
Label1.Text =nombre_funcin (12, hola)
Se recibe:
61
Para llamar al procedimiento Sub desde otro procedimiento se debe especificar
el nombre del procedimiento y el nmero de argumentos. El ejemplo sera el siguiente:
Se enva:
Para el caso del ejemplo establezca las siguientes modificaciones a los controles:
62
Figura 5.4 Interfaz de usuario (MdulosProcedimientos).
Agregar mdulo
63
Escribir cdigo en el mdulo
En el mdulo d doble clic sobre el nombre de este y entre las instrucciones Module y
End Module escriba el siguiente cdigo:
Module mimdulo
64
End If
End If
End Sub
Finaliza el procedimiento Sub
End Module
Ejecutar el proyecto
65
Figura 5.6 Ejecucin aplicacin MdulosProcedimientos.
El objeto Date permite la manipulacin de la fecha y la hora. Now y Today son dos
funciones bsicas para el manejo del tiempo y la fecha. Now muestra en formato
numrico la fecha y la hora del sistema (Ej: 31/08/2010 16:14:20), mientras que Today
muestra en formato numrico la fecha del sistema (Ej: 31/08/2010). Con la funcin
Format se puede manejar diferentes formatos de presentacin de fecha y hora
utilizando carcteres especficos. En la siguiente tabla se describe algunos caracteres
que permite la creacin de formatos de fecha y hora definidos por el usuario:
Carcter Descripcin
(/) Separador de fecha.
D Muestra una fecha con el formato de fecha larga. Por ejemplo: martes, 31 de
agosto de 2010.
d Muestra una fecha con el formato de fecha corta. Por ejemplo: 31/10/2010.
dd Muestra el da como un nmero con cero a la izquierda (por ejemplo: 01).
ddd Muestra el da de forma abreviada (por ejemplo: mar).
dddd Muestra el da de forma completa (por ejemplo: martes).
M Muestra el da y el mes de una fecha (por ejemplo: 31 agosto).
MM Muestra el mes como un nmero con cero a la izquierda (por ejemplo, 09).
MMM Muestra el mes en forma abreviada (por ejemplo, ago).
MMMM Muestra el mes en forma completa (por ejemplo: agosto).
y Muestra el mes y el ao (por ejemplo: agosto de 2010).
yy Muestra el ao en formato numrico de dos dgitos.
yyy Muestra el ao en formato numrico de cuatro dgitos.
F,f Muestra la fecha larga y la hora corta. Por ejemplo: martes, 31 de agosto de
2010 11:07.
66
Tabla 5.3 Caracteres para crear formatos de hora.
Carcter Descripcin
(:) Separador de hora.
hh Muestra la hora como un nmero con ceros a la izquierda y en formato de
12 horas.
HH Muestra la hora como un nmero con ceros a la izquierda y en formato de
24 horas.
mm Muestra los minutos como un nmero con ceros a la izquierda.
ss Muestra los segundos como un nmero con ceros a la izquierda.
t Muestra la hora y los minutos en formato de 24 horas.
Para el caso del ejemplo establezca las siguientes modificaciones a los controles:
67
Figura 5.7 Interfaz de usuario (FuncionesFechasHoras).
Escribir cdigo
Seleccione el objeto boton y abra el editor de cdigo y escriba el siguiente cdigo:
formato1.Text = Date.Now
formato2.Text = Date.Today
formato3.Text = Format(Date.Now, "d/MM/y")
formato4.Text = Format(Date.Now, "D")
formato5.Text = Format(Date.Now, "d-MMMM-yyy")
formato6.Text = Format(Date.Now, "F")
formato7.Text = Format(Date.Now, "h:m:s")
formato8.Text = Format(Date.Now, "hh:mm:ss")
formato9.Text = Format(Date.Now, "HH")
formato10.Text = Format(Date.Now, "HH:mm")
Se utiliza la funcin Format (fecha actual del sistema, tipo de formato) para dar
un formato especfico de fecha u hora a las diferentes cajas de texto en la propiedad
Text. Cuando el usuario pulse el botn Ver formatos fecha/hora en tiempo de
ejecucin mostrar en cada caja de texto el formato respectivo.
Ejecutar el proyecto
68
Figura 5.8 Ejecucin aplicacin FuncionesFechasHoras.
La clase Math de Visual Basic .NET contiene una serie de funciones trigonomtricas,
logartmicas y otras funciones matemticas que sirven para realizar clculos aritmticos,
en la siguiente tabla se muestran las funciones ms comunes:
69
5.3.2.1 Ejemplo prctico funciones matemticas
Para el caso del ejemplo establezca las siguientes modificaciones a los controles:
70
Figura 5.9 Interfaz de usuario (FuncionesMatematicas).
Escribir cdigo
Seleccione el objeto boton y abra el editor de cdigo y escriba el siguiente cdigo:
campo1.Text = Math.Ceiling(8.5)
campo2.Text = Math.Floor(8.5)
campo3.Text = Math.Round(10.5)
campo4.Text = Math.Round(10.51)
campo5.Text = Math.Max(7, 5)
campo6.Text = Math.Min(7, 5)
campo7.Text = Math.Pow(5, 2)
campo8.Text = Math.Sqrt(3)
campo9.Text = Math.Sin(1.0)
campo10.Text = Math.Cos(1.0)
campo11.Text = Math.Tan(1.0)
Ejecutar el proyecto
Al ejecutarse el proyecto en el entorno de desarrollo de visual Basic.NET, se debe
visualizar:
71
Figura 5.10 Ejecucin aplicacin FuncionesMatematicas.
Visual Basic .NET contiene una serie de funciones para la manipulacin de cadenas de
caracteres que sirven para realizar diferentes operaciones entre caracteres, en la
siguiente tabla se muestran las funciones ms comunes:
Funcin Ejemplo
Chars(n): Permite obtener un carcter Dim micadena As String = "ABCDE"
especfico de una cadena de Dim micaracter As Char
caracteres. micaracter = micadena.Chars(3)
micaracter = "D"
Length: Permite obtener la longitud Dim micadena As String = "ABCDE"
de de una cadena de caracteres. Dim Entero As Integer
entero=cadena.length
entero=5
Concat(texto1, texto,...., texton): Dim micadena As String = "hola"
Permite unir dos o ms cadenas de Dim unircadena As String
caracteres. unircadena= String.Concat(micadena, " ",
"pueblo")
unircadena= hola pueblo
ToUpper: Convierte una cadena de Dim micadena As String = "hola"
caracteres de minscula a mayscula. micadena= micadena.ToUpper()
micadena= HOLA
ToLower: Convierte una cadena de Dim micadena As String = "HOLA"
caracteres de mayscula a minscula. micadena= micadena.ToLower()
micadena= hola
72
Remove(posicin inicial, nmero de
caracteres): Permite eliminar una Dim micadena As String = "campoalegre"
cantidad determinada de caracteres micadena= micadena.Remove(2,3)
en una posicin especfica de una micadena= caalegre
cadena de caracteres.
Insert (posicin de insercin,cadena
de caracteres): Permite insertar una Dim micadena As String = "campoalegre"
cantidad determinada de caracteres micadena= micadena.insert(4, ms )
en una posicin especfica de una micadena= campo ms alegre
cadena de caracteres.
SubString((posicin inicial, nmero
de caracteres): Permite obtener una Dim micadena As String = "campoalegre"
subcadena de una cadena de Dim subcadena As String
caracteres. subcadena= micadena.substring(5,4)
subcadena=aleg
Replace(cadena de caracteres,
carcter original, nuevo carcter): Dim micadena As String = "campoalegre"
Permite reemplazar una subcadena Dim Nuevacadena As String
determinada por otra subcadena nuevacadena =replace( m i c a d e n a , "e", "i")
especificada. nuevacadena=campoaligri
StrReverse(cadena de caracteres): Dim micadena As String = "campoalegre"
Devuelve una cadena de caracteres Dim Nuevacadena As String
invertida segn el orden de los nuevacadena =StrReverse( m i c a d e n a )
caracteres de la cadena especificada. nuevacadena=ergelaopmac
Mid (cadena de caracteres, posicin Dim micadena As String = "campoalegre"
inicial, numero de caracteres), Dim Nuevacadena As String
Mid (cadena de caracteres, posicin nuevacadena =Mid( m i c a d e n a , 1 , 5 )
inicial): Devuelve una subcadena que nuevacadena=campo
a su vez contiene un nmero
especificado de caracteres de una Dim micadena As String = "campoalegre"
cadena de caracteres. Dim Nuevacadena As String
nuevacadena =Mid( m i c a d e n a , 5 )
nuevacadena=alegre
Len (cadena de caracteres): Devuelve Dim micadena As String = "ABCDE"
un entero que contiene el nmero de Dim Entero As Integer
caracteres de una cadena de entero=len(micadena)
caracteres. entero=5
TocharArray: Convierte una cadena Dim micadena As String = "campeon"
de caracteres en un arreglo de Dim arreglo() As char
caracteres. arreglo=mi cadena.ToCharArray()
arreglo={c,a,m,p,e,o,n}
Split (cadena de caracteres, Dim cadena as String=42,21,50,33
delimitador): Devuelve un arreglo Dim subcadenas() As String
unidimensional que contiene un Subcadenas=Split(subcadenas,,)
nmero especfico de subcadenas. Retorna={42 21 50 33}
Trim (cadena): Elimina los espacios Dim cadena As String= Colombia
de ambos lados de una cadena de cadena=Trim(cadena)
caracteres.
Asc (carcter): Devuelve el numero Dim numero As Integer
Ascci de un carcter. numero=Asc(a) Devuelve 97
Chr (numero): Devuelve el carcter Dim letra As char
Ascci de un nmero. letra=Chr(97) Devuelve a
String.Copy (cadena): Copia una Dim cadena As String=Hola
cadena de caracteres. Dim copia as String
copia=String.Copy(cadena)
IndexOf (carcter a buscar): Devuelve Dim cadena as String=Colombia
la posicin de un carcter especfico. Dim posicin As Integer
posicin=cadena.IndexOf(m) Devuelve 4
73
5.3.3.1 Ejemplo prctico funciones de cadena de caracteres
Para el caso del ejemplo establezca las siguientes modificaciones a los controles:
74
Figura 5.11 Interfaz de usuario (FuncionesCadenas).
Escribir cdigo
resultado.Text = texto.Text.Length
resultado.Text = texto.Text.ToUpper
resultado.Text = texto.Text.ToLower
resultado.Text = texto.Text.Remove(2, 5)
resultado.Text = texto.Text.Substring(2, 5)
resultado.Text = Mid(texto.Text, 2, 5)
75
Seleccione el objeto boton9 y abra el editor de cdigo y escriba el siguiente cdigo:
resultado.Text = StrReverse(texto.Text)
resultado.Text = Asc(texto.Text.Chars(5))
Ejecutar el proyecto
Al ejecutarse la aplicacin se visualizar la figura 5.11, Se puede pulsar cada uno de los
botones para ver los resultados de la funcin especificada. Por ejemplo si se pulsa el
botn Concat, se obtendr la siguiente figura:
76
5.4 Ejercicios de procedimientos
77
6. MATRICES Y COLECCIONES
Las matrices y las colecciones son conjuntos de elementos afines. Una matriz es un
grupo de posiciones de memoria contiguas, que almacenan el mismo nombre y tipo de
dato, estas pueden ser de una o ms dimensiones. Para referirse a un elemento de la
matriz se debe especificar el nombre de la matriz seguido de uno o ms subndices
encerrados entre parntesis. Una coleccin se define por medio del objeto Collection
donde se hace referencia a un grupo de elementos relacionados como un objeto nico.
Para acceder a los valores de una matriz, se debe utilizar un valor de ndice
para especificar la posicin a la que se desea acceder. Tambin se pueden utilizar ciclos
para recorrer toda la matriz y acceder a todos los valores.
78
Establecer las propiedades de los objetos del interfaz de usuario
79
Escribir cdigo
Seleccione el objeto boton y abra el editor de cdigo y escriba el siguiente cdigo:
Ejecutar el proyecto
80
Figura 6.2 Ejecucin aplicacin MatricesUnidimensionales.
Una matriz puede ser definida de dos, tres o ms dimensiones, de cualquier tipo de dato.
Para crear una matriz de ms de una dimensin en los parntesis se separa cada
dimensin por medio de comas (,). El formato para declarar una matriz bidimensional
es:
Para acceder a los valores de una matriz bidimensionales, se debe utilizar los
dos subndices, como tambin dos ciclos para recorrer toda la matriz y acceder a cada
uno de los valores.
81
6.2.1 Ejemplo prctico matrices bidimensionales
82
Escribir cdigo
Ejecutar el proyecto
83
Si se digitan las palabras: ana, dedos, cali, azules, cadena, apoyo, alcanza,
capota, en el objeto txtpalabras se visualizarn las palabras digitadas y en el objeto
txtca todas las palabras que empiezan con CA. Se mostrar la siguiente figura:
6.3 Colecciones
Cuando se crea una coleccin, esta se puede manipular con las siguientes funciones:
Add: permite agregar un nuevo elemento a la coleccin.
Remove: permite eliminar un elemento que exista en la coleccin.
Clear: quita todos los elementos de una coleccin.
Count: cuenta cuantos elementos tiene una coleccin.
Disear una aplicacin llamada Colecciones que permita adicionar, eliminar, buscar
elementos en una coleccin. Al realizar la operacin de adicin o eliminacin se debe
visualizar como queda la coleccin y por la operacin de bsqueda se debe mostrar la
posicin donde se encuentra el elemento.
84
siguientes controles en el formulario en la posicin deseada: 2 Label, 2 TextBox, 1
Button.
85
Escribir cdigo
a) Antes de la apertura de la clase declare la coleccin para que esta sea publica a
cada uno de los procedimientos de la aplicacin. D doble clic sobre el
formulario y busque Public class formulario y antes de este cdigo escriba:
Dim coleccion As New Collection
86
txtbuscar.Text = "el elemento:" & dato & " existe en la posicin:" & posicion
auxiliar = 1
End If
posicion = posicion + 1
Next
If (auxiliar = 0) Then
txtbuscar.Text = "No existe el elemento:" & dato
End If
Ejecutar el proyecto
87
Figura 6.8 Aplicacin con los elementos de la coleccin.
88
Al pulsar el botn Elemento a Buscar, se mostrar la ventana para realizar la
bsqueda de un elemento en la coleccin. Se debe pulsar el botn tantas veces como
elementos se desee buscar. Se visualizar la siguiente figura:
89
6.4 Ejercicios Matrices
90
7. CONTROLES PARA INTERFAZ DE USUARIO
Hasta ahora se ha trabajo la interfaz de usuario con controles bsicos del cuadro de
herramientas como lo han sido los objetos Label, TextBox y Button. En este captulo
se programaran algunos de los controles ms comunes que se utilizan en el entorno de
desarrollo de Visual Basic.NET. Al arrastrarse cualquier control del cuadro de
herramientas hacia un formulario, Visual Basic .NET crea el cdigo necesario para
interactuar con cada control, esto es transparente para el usuario.
7.1 LinkLabel
Realizar una aplicacin llamada LinkLabel que permita a un usuario por medio de
controles LinkLabel conectarse a una pgina Web abrir una aplicacin de Windows.
91
Figura 7.1 Interfaz de usuario (ControlLinkLabel).
Escribir cdigo
Una caracterstica del mtodo Start de la clase Process es que se puede utilizar
para ejecutar diferentes aplicaciones, el mtodo Start puede recibir dos argumentos: el
primer argumento se utiliza para ejecutar una aplicacin especfica sin necesidad de
configurar la ubicacin de la aplicacin. En el segundo argumento se puede definir la
ruta y el nombre del documento que se quiere abrir. En este caso se busca ejecutar
solamente el programa Excel de Microsoft sin abrir ningn archivo especfico.
Ejecutar el proyecto
4
URL significa Uniform Resource Locator, es decir, localizador uniforme de recurso.
Es una secuencia de caracteres, de acuerdo a un formato estndar, que se usa para
nombrar recursos, como documentos e imgenes en Internet, por su localizacin.
92
Figura 7.2 Ejecucin vnculo Ir a Google.
93
Text Cambiar el color de la letra
Label2 Name lblletra
Text Cambiar el tamao de la letra
ComboBox1 Name listacolores
ListBox1 Name listaletra
Form1 Name formulario
Text Controles ListBox y ComboBox
2. Seleccionar el control, dar clic sobre la flecha que aparece en la parte superior
derecha del control y all escoger la opcin Editar elementos para ver la
ventana Editor de la coleccin Cadena.
3. Dar doble sobre el formulario para ver la ventana de cdigo del procedimiento
Sub formulario_Load. all se debe escribir la siguiente lnea por cada elemento
que se desee agregar:
nombre_del_control_ListisBox_o_ComboBox.Items.Add("nombre_del_elemento")
94
Figura 7.4 Ventana agregar elementos a un ListBox.
Pulse la opcin Editar elementos para ver la ventana del Editor de la coleccin
Cadena.
Digite por cada lnea el nombre de un color, para el ejemplo escriba: Negro,
Amarrillo, Verde, Azul, Rojo, Caf, Rosado y Gris. La ventana del Editor quedara de la
siguiente forma:
Figura 7.6 Ventana del Editor con los elementos agregados al control ListBox.
95
Al pulsar el botn Aceptar del Editor, el formulario tendr la siguiente
apariencia:
Pulse la opcin Editar elementos para ver la ventana del Editor de la coleccin
Cadena. Adicione los tamaos de letra de acuerdo a la siguiente figura:
96
Figura 7.9 Ventana del Editor con los elementos agregados al control ComboBox.
Escribir cdigo
Select listaletra.SelectedIndex
Case Is = 0
texto.Font = New Font("Microsoft Sans Serif", 8, FontStyle.Bold)
Case Is = 1
texto.Font = New Font("Microsoft Sans Serif", 12, FontStyle.Bold)
Case Is = 2
texto.Font = New Font("Microsoft Sans Serif", 16, FontStyle.Bold)
Case Is = 3
texto.Font = New Font("Microsoft Sans Serif", 20, FontStyle.Bold)
Case Is = 4
texto.Font = New Font("Microsoft Sans Serif", 22, FontStyle.Bold)
Case Is = 5
texto.Font = New Font("Microsoft Sans Serif", 24, FontStyle.Bold)
Case Is = 6
texto.Font = New Font("Microsoft Sans Serif", 26, FontStyle.Bold)
Case Is = 7
texto.Font = New Font("Microsoft Sans Serif", 28, FontStyle.Bold)
End Select
97
Select Case listacolores.SelectedIndex
Case Is = 0
texto.ForeColor = Color.Black
Case Is = 1
texto.ForeColor = Color.Yellow
Case Is = 2
texto.ForeColor = Color.Green
Case Is = 3
texto.ForeColor = Color.Blue
Case Is = 4
texto.ForeColor = Color.Red
Case Is = 5
texto.ForeColor = Color.Brown
Case Is = 6
texto.ForeColor = Color.Pink
Case Is = 7
texto.ForeColor = Color.Gray
End Select
Ejecutar el proyecto
98
7.3 Checkbox y RadioButton
99
Text Cambiar color de fondo
RadioButton3 Name radio3
Text Cambiar color de texto
Panel1 Name panelcheckbox
Panel2 Naame panelradiobutton
Form1 Name formulario
Text Controles CheckBox - RadioButton
Escribir cdigo
If (Chequeo1.Checked) Then
txtcheckbox.Font=New Font ("Microsoft Sans Serif", 8.25!, FontStyle.Bold)
Else
txtcheckbox.Font=New Font ("Microsoft Sans Serif", 8.25!, FontStyle.Italic)
End If
If (Chequeo2.Checked) Then
txtcheckbox.BackColor = System.Drawing.Color.Aquamarine
Else
txtcheckbox.BackColor = System.Drawing.Color.White
End If
100
Por verdadero el texto del objeto txtcheckbox cambiar de color utilizando el
espacio de nombres System.Drawing.Color al cual se le asigna el color deseado. Por
falso se retornar a los valores predefinidos en el control, es este caso el color del texto
volver a ser negro.
If (Chequeo3.Checked) Then
txtcheckbox.ForeColor = System.Drawing.Color.Red
Else
txtcheckbox.ForeColor = System.Drawing.Color.Black
End If
d) Seleccione el objeto radio1, d doble clic para abrir el editor del procedimiento
radio1_CheckedChanged y escriba el siguiente cdigo:
If (opcion1.Checked) Then
txtradiobutton.Font= New Font("Microsoft Sans Serif", 8.25!,FontStyle.Bold)
Else
txtradiobutton.Font=New Font("Microsoft Sans Serif" ,8.25!, FontStyle.Italic)
End If
e) Seleccione el objeto radio2, d doble clic para abrir el editor del procedimiento
radio2_CheckedChanged y escriba el siguiente cdigo:
If (opcion2.Checked) Then
txtradiobutton.ForeColor = System.Drawing.Color.Red
Else
txtradiobutton.ForeColor = System.Drawing.Color.Black
End If
f) Seleccione el objeto radio3, d doble clic para abrir el editor del procedimiento
radio3_CheckedChanged y escriba el siguiente cdigo:
If (opcion3.Checked) Then
txtradiobutton.BackColor = System.Drawing.Color.Aquamarine
Else
txtradiobutton.BackColor = System.Drawing.Color.White
End If
Ejecutar el proyecto
101
RadioButton con el texto Cambiar color de fondo, se obtendr la siguiente figura:
102
Tabla 7.4 Propiedades de los controles de la aplicacin ColoresPersonalizados.
Escribir cdigo
a) Seleccione el objeto barra1, d doble clic para abrir el editor del procedimiento
barra1_Scroll y escriba el siguiente cdigo:
103
panelcolores.BackColor = Color.FromArgb (barra1.Value, barra2.Value, barra3.Value)
txtrojo.Text = barra1.Value
b) Seleccione el objeto barra2, d doble clic para abrir el editor del procedimiento
barra2_Scroll y escriba el siguiente cdigo:
c) Seleccione el objeto barra3, d doble clic para abrir el editor del procedimiento
barra3_Scroll y escriba el siguiente cdigo:
Ejecutar el proyecto
104
7.5 DataGridView
Un control DataGridView permite mostrar datos en una malla o tabla, estos datos
pueden ser con o sin orgen de datos externos (archivos de texto, bases de datos). Sin
especificar un orgen de datos, se pueden crear las columnas y filas que contendrn los
datos y agregarlas directamente al DataGridView. Con orgen de datos se pueden
establecer las propiedades DataSource y DataMember para enlazar el control
DataGridView a un orgen de datos y llenarlo de datos automticamente.
105
Figura 7.15 Interfaz de usuario (DataGridView).
Escribir cdigo
Seleccione el objeto boton, d doble clic para abrir el editor del procedimiento
botn_click y escriba el siguiente cdigo:
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 = txtnumero.Text
.Item(1, i).Value = i + 1
.Item(2, i).Value = (txtnumero.Text * (i + 1))
Next
End With
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 del objeto tabla y por
medio de 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 numero de filas -1 del
objeto tabla y por cada fila se visualizarn tres tems. En la primera columna se
imprimir el valor digitado en el objeto txtnumero, en la segunda columna se
imprimir el valor de i+1 y en la tercera columna el producto de multiplicar el valor del
objeto txtnumero por i+1.
Ejecutar el proyecto
106
Figura 7.16 Ejecucin aplicacin DataGridView.
7.6 ListView
Crear una aplicacin llamada ListView que permita a un usuario seleccionar un tipo de
comida rpida, como tambin seleccionar un tipo de bebida. El usuario deber visualizar
en un control ListView un cdigo, el elemento seleccionado, el valor del elemento, as
como la sumatoria de los elementos seleccionados. Por otro lado, el usuario podr
seleccionar un elemento y eliminarlo del control ListView.
107
Tabla 7.6 Propiedades de los controles de la aplicacin ListView.
108
Figura 7.18 Ventana Tareas de ComboBox.
109
Al finalizar de incluir los respectivos elementos en el objeto combocomidas,
seleccione el objeto ListView elementospedidos d clic sobre la flecha para observar la
ventana Tareas de Listview, se apreciara la siguiente figura:
110
Figura 7.23 Interfaz de usuario final de la aplicacin ListView.
Escribir cdigo
Se declaran como publicas las variables valor, cdigo, sumar e i. Estas podrn
ser utilizadas por cualquier procedimiento de la clase.
cdigo = 1
111
Inicialmente se crea un objeto tem al cual se le asigna espacio de memoria
(New) de tipo ListViewItem y recibe como parmetro la variable cdigo. Utilizando la
funcin Add de la propiedad SubItems se le adiciona al objeto tem dos nuevos
elementos: lo seleccionado en el objeto combocomida por intermedio de la propiedad
SelectedItem y la variable valor. Al objeto ListView llamado elementospedido se le
adiciona (Add) en la propiedad Items los elementos que contiene el objeto tem. Por
otro lado, se incrementa el valor de la variable cdigo en uno (1) y a la variable sumar
se le asigna el valor de cero (0). Con un ciclo For que se ejecutar desde una posicin i
igual a cero (0) hasta el numero total de Items.count -1 del objeto elementospedido. A
la variable sumar se le asignar el valor de esta ms el valor del SubItems (2), o sea el
valor de la comida. Se utiliz la funcin CDbl para convertir el valor numrico a
caracter. Por ltimo se le asigna a la propiedad Text del objeto txttotal el valor de la
variable sumar.
112
f) Seleccione el objeto combocomidas, d doble clic para abrir el editor del
procedimiento Sub combocomida_SelectedIndexChanged y escriba el
siguiente cdigo:
Ejecutar el proyecto
113
comida Hamburguesa, empanada (2 veces) y como bebida Jugo, se obtendr la
siguiente figura:
114
Al pulsar el botn Si, el formulario se apreciara de la siguiente forma:
7.7 RichTextBox
Un control RichTextBox permite tener un texto en varias lneas. Todo el texto que
se muestra se establece con la propiedad Text. El control RichTextBox sirve para
manipular archivos; los mtodos LoadFile y SaveFile pueden mostrar y escribir en
varios formatos de archivo, entre ellos, texto sin formato, texto sin formato Unicode y
formato de texto enriquecido (RTF). Puede utilizar el mtodo Find para buscar cadenas
de texto o caracteres especficos.
115
TextBox1 Name txtpalabra
Text En blanco
RichTextbox1 Name texto
Text Copiar cualquier texto
Button1 Name botonbuscar
Text Buscar coincidencias
Form1 Name formulario
Text Control RichTextBox
Escribir cdigo
b) D doble clic sobre el formulario y cree despus de un End Sub y antes del
End Class el siguiente procedimiento Sub.
116
With objetotexto
.SelectAll()
.SelectionColor = Color.Black
End With
For Each palabra In coincidencias
With objetotexto
.SelectionStart = palabra.Index
.SelectionLength = palabra.Length
.SelectionColor = colortexto
.SelectionBackColor = colorfondo
End With
Next
Catch ex As Exception
MsgBox(ex.Message.ToString)
End Try
End Sub
Ejecutar el proyecto
117
Figura 7.29 Ejecucin aplicacin RictTextBox con la subcadena la encontrada.
7.8 TreeView
118
Las propiedades principales del control TreeView son Nodes y SelectedNode.
La propiedad Nodes contiene la lista de nodos del nivel superior del los nodos. La
propiedad SelectedNode establece el nodo seleccionado.
7.8.1 Ejemplo prctico TreeView
Elaborar una aplicacin llamada TreeView que permita a un usuario visualizar las
unidades lgicas de un computador, adems poder desplazarse por las carpetas de cada
unidad lgica.
119
Escribir cdigo
imports System.IO
Public Class formulario
End Class
Se declara una matriz de tipo String llamada unidades a la cual se le asignan las
unidades logicas del equipo donde se este trabajando por medio de la funcin
GetLogicalDrives de la clase Environment del espacio de nombres System. Se utiliza
la estructura For-Each para recorrer cada una de las unidades lgicas que contiene la
matriz unidades. Cada unidad es adicionada como un nodo al control TreeView
explorador.
120
seleccionado(si existe), la imagen que se ha de mostrar cuando el nodo no este
seleccionado (si existe). Por ltimo se adiciona dicho nodo como un nodo secundario.
Ejecutar el proyecto
121
7.9 FolderBrowserDialog
122
Escribir cdigo
Seleccione el objeto boton, d doble clic para abrir el editor del procedimiento
boton_Click y escriba el siguiente cdigo:
Try
With unidades
.Reset()
.Description = " Seleccionar una unidad y/o carpeta "
.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal)
.ShowNewFolderButton = False
.RootFolder = Environment.SpecialFolder.Desktop
Dim vercuadro As DialogResult = .ShowDialog
If vercuadro = DialogResult.OK Then
Dim nroarchivos As ObjectModel.ReadOnlyCollection(Of String)
nroarchivos = My.Computer.FileSystem.GetFiles(.SelectedPath)
MsgBox("Total de archivos en la unidad y/o carpeta seleccionada :" &
nroarchivos.Count, MsgBoxStyle.Information)
End If
.Dispose()
End With
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical)
End Try
En el bloque Try se establece una clusula With donde se realizan las siguientes
operaciones con el control FolderBrowserDialog unidades: .Reset() reinicia el control
unidades; .Description muestra una descripcin del control unidades; .SelectPath
selecciona una unidad o carpeta especifica, es este caso la carpeta Personal (My
Documents), .ShowNewFolderButton permite habilitar (True) o deshabilitar (False) la
opcion de creacin de nuevas carpetas; .RootFolder determina la unidad o carpeta
inicial a mostrar. Por otro lado, se crea una variable de tipo DialogResult llamada
vercuadro a la cual se le asigna la propiedad ShowDialog del control unidades. Se
valida si en el cuadro de dilogo se pulsa el botn Aceptar. Si se cumple la condicin
se crea un objeto nroarchivos de tipo ReadOnlyCollection (crea una coleccin de solo
lectura) del espacio de nombres ObjectModel, a este, se le asigna una coleccin de solo
lectura de todos los archivos de la unidad o carpeta seleccionada
(My.Computer.FileSystem.GetFiles(.SelectedPath)) y se muestran el total de
archivos (Count) en un cuadro de dilogo MsgBox. Por ltimo se libera (.dispose()) los
recursos utlizados. En el bloque Catch se captura en el objeto ex de tipo Exception el
error que se pueda generar y se mostrar un cuadro de dilogo con el mensaje de error.
Ejecutar el proyecto
123
Figura 7.35 Ejecucin aplicacin FolderBrowserDialog.
124
Figura 7.37 Cuadro de dilogo con el total de archivos de una unidad seleccionada.
7.10 WebBrowser
125
Button5 Name botonrefrescar
Text Actualizar
Button6 Name botonnavegar
Text Navegar
ComboBox1 Name combopaginas
WebBrowser1 Name navegador
Label1 Name textopagina
Text Texto pgina
Form1 Name formulario
Text Control WebBrowse.
126
Escoja la opcin Editar elementos y adicione los elementos que se muestran en
la siguiente figura:
Escribir cdigo
navegador.GoBack()
navegador.Stop()
127
Se utiliza el mtodo Stop() del objeto navegador para ir detener una pgina en
ejecucin.
navegador.Navigate(Trim(combopaginas.SelectedItem))
textopagina.Text = combopaginas.SelectedItem
Se utiliza el mtodo Navigate() del objeto navegador para ejecutar una pgina.
Recibe como parmetros la pgina seleccionada en la propiedad SelectedItem del
control combopaginas. Con la funcin Trim se quitan todos los espacios que existan.
Por otro lado, se le asigna a la propiedad Text del objeto textopagina la pgina
seleccionada.
Ejecutar el proyecto
128
7.11 Ejercicios interfaz de usuario
Equipos
Santafe
Barcelona
Inter
Milan
Aficiones
Acuaticas
Buceo
Natacin
Profesiones
Ingenierias
Sistemas
Mecanica
Ciencias
Matematicas
Fisica
Mecnica
Electromagnetica
129
8. MENS EN FORMULARIOS
Los mens en una aplicacin son el medio que tiene el usuario para interactuar con
dicha aplicacin. Se pueden crear aplicaciones donde se utilice un men que interactu
sobre un nico formulario, este tipo de aplicaciones son llamadas SDI (Interfaz de
documento sencillo). Algunos programas que manejan est estilo de interfaz son:
Wordpad, Bloc de notas, Calculadora de Microsoft Windows, etc. Tambin se pueden
crear aplicaciones con mens que interacten con varios formularios en una ventana,
estas aplicaciones son llamadas MDI (Interfaz de documentos mltiple), los ejemplos
clsicos son el procesador de texto Word la hoja de clculo Excel de Microsoft. Las
aplicaciones MDI se reconocen por incluir mens con submens para cambiar entre las
distintas ventanas o documentos. La interfaz de mens se trabaja con el control
MenuStrip que representa el contenedor de una estructura de mens de un
formulario conocidos como mens desplegables, adems, se le pueden adicionar los
elementos: ToolStripMenuItem, ToolStripTextBox y ToolStripComboBox. El
objeto ToolStripMenuItem representan los comandos de men individuales de la
estructura del men. Cada objeto ToolStripMenuItem puede ser un comando de la
aplicacin o un men primario para otros elementos de submen.
Preparar y disear el sistema: Decida los mens que necesita, dnde deben
aparecer en la interfaz, cules requieren submens, etc.
Crear los mens y submens: Defina los ttulos, elementos de men y
submens mediante el Diseador de mens.
Asignar las tareas que desee al sistema: Especifique las tareas que los mens
deben realizar, como mostrar formularios y cuadros de dilogo.
Generar el programa de men: Ejecutar el programa para probar el sistema
de mens.
130
Crear la interfaz de usuario
131
Establecer las propiedades de los objetos de la interfaz de usuario
Pulse sobre el control menuprincipal para que aparezca sobre este el texto
Escriba aqu.
132
All escriba el nombre del men &Archivo (Se utiliza el & para subrayar la
letra A y asociarlo a un mtodo de acceso abreviado, ms adelante se explicar cmo se
puede definir este tipo de acceso). Cuando empieza a escribir aparecen dos textos
Escriba aqu; uno a la derecha y el otro en la parte inferior.
Figura 8.6 Men principal con los mens Archivo, Edicin Formato y Nuevo.
Para el Men Archivo adicione los submens necesarios para obtener la siguiente
figura:
Para colocar la lnea separadora, sitese donde la desea crear y d clic derecho,
seleccione la opcin Insertar y all escoja Separator, como se muestra en la siguiente
figura:
133
Figura 8.8 Operacin para colocar una lnea separadora en un Men.
Para el Men Edicin adicione los submens necesarios para obtener la siguiente
figura:
Para el Men Formato adicione los submens necesarios para obtener la siguiente
figura:
134
Crear teclas de acceso abreviado o rpido.
135
Escoja en el cuadro de verificacin Alt y en clave la letra N. La ventana
quedara de la siguiente forma:
NOTA: Puede crear todas las teclas de acceso abreviado que desee de la misma forma.
Debe tener en cuenta que no pueden definir dos o ms teclas de acceso rpido iguales.
Escribir cdigo
Despus de completar el diseo del men se debe seleccionar cada uno de los mens
para agregarle el respectivo cdigo de acuerdo a la operacin que va a realizar.
a) Seleccione el men Nuevo, d doble clic para abrir el editor del procedimiento
NuevoToolStripMenuItem_Click y escriba el siguiente cdigo:
136
Dim pregunta As String
pregunta = MsgBox("Desea guardar el Archivo actual ?:", MsgBoxStyle.YesNo)
If pregunta = "6" Then
cuadroguardarrchivo.Title = "Cuadro de Dilogo para guardar un archivo"
cuadroguardarrchivo.InitialDirectory = "C:\"
cuadroguardarrchivo.Filter = "Archivo de Texto(*.txt)|*.txt"
cuadroguardarrchivo.ValidateNames = True
cuadroguardarrchivo.ShowDialog()
Dim guardarrchivo As IO.StreamWriter
guardarrchivo = New IO.StreamWriter(cuadroguardarrchivo.FileName)
guardarrchivo.Write(ventana.Text)
guardarrchivo.Close()
ventana.Text = ""
Else
ventana.Text = ""
End If
b) Seleccione el men Abrir..., d doble clic para abrir el editor del procedimiento
y escriba el siguiente cdigo:
137
IO.StreamReader (clase que se utiliza para leer lneas de informacin desde un archivo
de texto estndar) que guardar el nombre del archivo de texto asignado a la propiedad
FileName del control cuadroabrirrchivo. A la propiedad Text del objeto ventana se
le asignar el contenido del archivo utilizando el mtodo ReadtoEnd que lee el archivo
desde el principio hasta el final. Si por el contrario no contiene informacin se mostrar
un mensaje informando que el archivo seleccionado esta vaci.
d) Seleccione el men Guardar como.., d doble clic para abrir el editor del
procedimiento y escriba el siguiente cdigo:
Esta opcin permitir guardar un archivo que previamente se haba guardado con
un nuevo nombre. Se realiza el mismo proceso utilizado por la estructura Else del men
Guardar.
138
e) Seleccione el men Salir, d doble clic para abrir el editor del procedimiento y
escriba el siguiente cdigo:
End
ventana.Undo()
Se utiliza la funcin Undo del control RichTextBox ventana para deshacer una
operacin realizada anteriormente.
g) Seleccione el men Rehacer, d doble clic para abrir el editor del procedimiento
y escriba el siguiente cdigo:
If ventana.CanRedo = True Then
If ventana.RedoActionName <> "Delete" Then
ventana.Redo()
End If
End If
Se utiliza la funcin Redo del control RichTextBox ventana, para rehacer una
operacin previamente se habia eliminado. En este caso se valida si anteriormente se
habia eliminado un texto (CanRedo) y si esa operacin tenia el nombre de eliminar
(Delete) utilizando la funcin RedoActionName.
h) Seleccione el men Cortar, d doble clic para abrir el editor del procedimiento
y escriba el siguiente cdigo:
ventana.Cut()
i) Seleccione el men Pegar, d doble clic para abrir el editor del procedimiento y
escriba el siguiente cdigo:
ventana.Paste()
j) Seleccione el men Copiar, d doble clic para abrir el editor del procedimiento
y escriba el siguiente cdigo:
ventana.Copy()
139
k) Seleccione el men Borrar, d doble clic para abrir el editor del procedimiento
y escriba el siguiente cdigo:
ventana.Clear()
Se utiliza la funcin Clear del control RichTextBox ventana para borrar todo el
contenido de la propieda Text del control ventana.
m) Seleccione el men Seleccionar todo, d doble clic para abrir el editor del
procedimiento y escriba el siguiente cdigo:
ventana.SelectAll()
n) Seleccione el men Fuente, d doble clic para abrir el editor del procedimiento
y escriba el siguiente cdigo:
cuadrodefuentes.ShowDialog()
ventana.SelectionFont = cuadrodefuentes.Font
o) Seleccione el men Color - Texto, d doble clic para abrir el editor del
procedimiento y escriba el siguiente cdigo:
cuadrodecolores.ShowDialog()
ventana.SelectionColor = cuadrodecolores.Color
p) Seleccione el men Color - Fondo, d doble clic para abrir el editor del
procedimiento y escriba el siguiente cdigo:
cuadrodecolores.ShowDialog()
ventana.SelectionBackColor = cuadrodecolores.Color
q) Seleccione el men Estilo vietas, d doble clic para abrir el editor del
procedimiento y escriba el siguiente cdigo:
140
ventana.SelectionBullet = True
Ejecutar el formulario
141
cascada, minimizar.
Para crear la interfaz de usuario se utilizarn cinco formularios. Uno de ellos ser el
formulario principal o contenedor de los otros cuatro formularios los cuales realizarn
una labor especfica cada uno.
142
Para el Men Archivo adicione los submens para obtener la siguiente figura:
Para el Men Edicion adicione los submens para obtener la siguiente figura:
Para el Men Mis Formularios adicione los submens para obtener la siguiente
figura:
143
Para el Men Ventana adicione los submens para obtener la siguiente figura:
144
Tabla 8.3 Propiedades de los controles del segundo formulario.
Escribir cdigo
Seleccione el objeto controlfecha, d doble clic para abrir el editor del procedimiento
controlfecha_ValueChanged y escriba el siguiente cdigo:
txtformato.Text = controlfecha.Value
145
Tabla 8.4 Propiedades de los controles del tercer formulario.
Escribir cdigo
Seleccione el objeto controlfecha, d doble clic para abrir el editor del procedimiento
controlcalendario_DateChanged y escriba el siguiente cdigo:
txtfecha.Text = controlcalendario.SelectionEnd.Date
146
Tabla 8.5 Propiedades de los controles del cuarto formulario.
Escribir cdigo
Seleccione el objeto controlfecha, d doble clic para abrir el editor del procedimiento
listaespaol_SelectedIndexChanged y escriba el siguiente cdigo:
147
If listaespaol.GetItemChecked(0) Then
txtvaca.Text = "COW"
Else
txtvaca.Text = ""
End If
If listaespaol.GetItemChecked(1) Then
txtabeja.Text = "BEE"
Else
txtabeja.Text = ""
End If
If listaespaol.GetItemChecked(2) Then
txtoso.Text = "BEAR"
Else
txtoso.Text = ""
End If
If listaespaol.GetItemChecked(3) Then
txtpajaro.Text = "BIRD"
Else
txtpajaro.Text = ""
End If
If listaespaol.GetItemChecked(4) Then
txtperro.Text = "CAN"
Else
txtperro.Text = ""
End If
If listaespaol.GetItemChecked(5) Then
txtgato.Text = "CAT"
Else
txtgato.Text = ""
End If
148
Figura 8.25 Interfaz de usuario quinto formulario.
Antes de escribir el cdigo para cada una de las opciones del men, arrastre los objetos
OpenFileDialog y SaveFileDialog y cambie la propiedad Name de dichos objetos por
cuadroabrirrchivo y cuadroguardarrchivo respectivamente. Estos dos controles
servirn para realizar los procesos de apertura y guardado de un archivo de texto.
a) Seleccione el men Nuevo, d doble clic para abrir el editor del procedimiento
NuevoToolStripMenuItem_Click y escriba el siguiente cdigo:
149
En la primera lnea se crea un formulario llamado nuevoformulario al cual se le
asigna espacio de memoria de tipo formularioventana, en la segunda lnea se asigna a
la propiedad MdiParent del objeto nuevoformulario la instancia actual del formulario
en ejecucin (Me) y por ltimo por medio del mtodo Show () se muestra el formulario.
b) Seleccione el men Abrir, d doble clic para abrir el editor del procedimiento
AbrirToolStripMenuItem_Click y escriba el siguiente cdigo:
Dado que una aplicacin MDI puede tener muchas instancias del mismo
formulario secundario, se necesita especificar el formulario activo. Con la propiedad
ActiveMdiChild, se puede obtener el formulario secundario que tiene el foco o que
est activo. Adems cuando se tienen varios controles en un formulario se debe
especificar el control que est activo, esto se puede realizar con la propiedad
ActiveControl que establece el control que est activo en el formulario secundario
150
Se crea una variable llamada guardarrchivo de tipo IO.StreamWriter (clase
que se utiliza para escribir lneas de informacin en un archivo de texto estndar) que
guardar el nombre del archivo de texto asignado a la propiedad FileName del control
guardarrchivo. Utilizando el mtodo Write se escribe en el archivo todo el contenido
existente en la propiedad Text del objeto nuevaventana.
d) Seleccione el men Cerrar, d doble clic para abrir el editor del procedimiento
y escriba el siguiente cdigo:
Dim cerrarformulario As Form = CType(Me.ActiveMdiChild, Form)
If Not cerrarformulario Is Nothing Then
cerrarformulario.Close()
End If
e) Seleccione el men Salir, d doble clic para abrir el editor del procedimiento y
escriba el siguiente cdigo:
End
g) Seleccione el men Rehacer, d doble clic para abrir el editor del procedimiento
y escriba el siguiente cdigo:
h) Seleccione el men Cortar, d doble clic para abrir el editor del procedimiento
y escriba el siguiente cdigo:
i) Seleccione el men Pegar, d doble clic para abrir el editor del procedimiento y
escriba el siguiente cdigo:
151
nuevaventana.Paste()
j) Seleccione el men Copiar, d doble clic para abrir el editor del procedimiento
y escriba el siguiente cdigo:
k) Seleccione el men Formulario Fecha, d doble clic para abrir el editor del
procedimiento y escriba el siguiente cdigo:
m) Seleccione el men Formulario Meses, d doble clic para abrir el editor del
procedimiento y escriba el siguiente cdigo:
n) Seleccione el men Formulario Lenguaje, d doble clic para abrir el editor del
procedimiento y escriba el siguiente cdigo:
152
Si se pulsa la opcin Nuevo del men Archivo dos veces y se escogen las
opciones Formulario Fecha, Formulario Meses y Formulario Lenguaje, se obtendra
una figura similar a la siguiente:
153
Y programe las opciones del men Ventana.
a) Seleccione el men Mosaico Horizontal, d doble clic para abrir el editor del
procedimiento y escriba el siguiente cdigo:
Me.LayoutMdi(MdiLayout.TileHorizontal)
b) Seleccione el men Mosaico Vertical, d doble clic para abrir el editor del
procedimiento y escriba el siguiente cdigo:
Me.LayoutMdi(MdiLayout.TileVertical)
c) Seleccione el men Cascada, d doble clic para abrir el editor del procedimiento
y escriba el siguiente cdigo:
Me.LayoutMdi(MdiLayout.Cascade)
Se crea un ciclo For donde se inicializa una variable de tipo Integer llamada i
en cero (0) que se ejecutar hasta el total (Length-1) de formularios secundarios abiertos
(MdiChildren) y a la propiedad WindowState de cada formulario abierto se le
asignar la funcin de minimizar (Minimized).
154
Con la opcin Mosaico Vertical se visualizara la siguiente figura:
155
8.4 Desactivar las opciones del men en formularios MDI
Me.FormularioFechaToolStripMenuItem.Enabled = False
CType(MdiParent,formularioprincipal).FormularioFechaToolStripMenuItem.Enabled=True
Siguiendo con el ejemplo que se ha venido trabajando, tambin es posible aadirle una
barra o ms barras de herramientas como se maneja en el entorno Windows, con el fin
de realizar de forma ms rpida algunas tareas, como por ejemplo: copiar, pegar, cortar,
guardar, etc. Para aadir una barra de herramientas se utiliza el control ToolStrip .
Agregue dicho control a la aplicacin MenuInterfazMultiple y cmbiele el texto de la
propiedad Name por barradeherramientas, se visualizar la siguiente figura:
156
Figura 8.34 Aplicacin MenuInterfazMultiple con una barra de herramientas.
157
Seleccione cada uno de los elementos Button y modifquele las siguientes
propiedades:
158
Dim activeChild As Form = Me.ActiveMdiChild
Dim nuevaventana As RichTextBox = CType(activeChild.ActiveControl, RichTextBox)
nuevaventana.Copy()
159
En el texto Escriba aqu adicione las opciones que desea tenga el men
contextual. Para el ejemplo, escriba las siguientes opciones: Nuevo, Cortar, Pegar,
Copiar.
160
Antes de poder realizar operaciones con este men, seleccione el objeto
menuprincipal y en la propiedad ContextMenuStrip adicione el control
menucontextual.
D doble clic sobre cada opcin del men contextual para programar cada
operacin. El cdigo es el mismo que se utilizo en el men principal o en la barra de
herramientas para dichas opciones.
161
9. GRFICOS Y ANIMACIN
En Microsoft Visual Basic .NET se pueden dibujar diferentes tipos de grficos como
lneas, rectngulos, valos, cuadros, elipses con relleno o sin l. Adems se pueden
crear efectos especiales con una secuencia de imgenes o grficas para dar la sensacin
de movimiento. En este captulo conocer los tipos de grficos de Visual Basic .NET,
como tambin aprender a mover los controles o imgenes en forma horizontal, vertical
o diagonal utilizando las propiedades Left y Top, expandir o contraer los controles o las
imgenes manipulando las propiedades Height y Width. Por otro lado, tambin
conocer como crear efectos de animacin sencillos utilizando los controles
PictureBox, Timer o ImageList.
Un formulario es como un mantel el cual tiene unas dimensiones las cuales se miden en
pequeos puntos llamados pixeles. Con un sistema de coordenadas se define donde se
coloca cada pixel. Con la coordenada X se mide de izquierda a derecha y con la
coordenada Y se mide de arriba a abajo. Las coordenadas se inician en la esquina
superior izquierda del formulario (x=0, y=0). Los pxeles tambin se utilizan para
expresar el ancho y el alto de los grficos. Para definir un cuadrado que tiene 100
pxeles de ancho y 100 pxeles de alto, cuya esquina superior izquierda se encuentra 10
pxeles a la izquierda y 10 pxeles hacia abajo, se expresar en coordenadas como 10,
10, 100, 100.
El espacio de nombres System.Drawing contiene numerosas clases con las que
se pueden crear dibujos en un programa. Las grficas se pueden crear vacas (prefijo
draw) o con relleno de color (prefijo fill). Para dibujar o utilizar una funcin grfica es
necesario crear un objeto Graphics y un objeto Pen (argumento cuando no se rellena
con ningn color) o Brush (cuando se quiere tener un color de relleno). El objeto
Graphics representa una superficie de dibujo y es el objeto que se usa para crear
imgenes grficas. El objeto Graphics se puede crear en el evento Paint de un
formulario o control, tambin, llamando al mtodo CreateGraphics, adems se pueden
crear objetos Font y Color.
162
Crear los objetos Pen para dibujar segmentos de lnea, curvas y los contornos de
formas.
Dim lapiz As System.Drawing.Pen
lapiz = New System.Drawing.Pen (System.Drawing.Color.Red)
163
Tabla 9.2 Propiedades de los controles de la aplicacin CrearGraficas.
Escribir cdigo
Se define una variable lapiz de tipo Pen, a dicha variable se le asigna el color
azul (Pens.Blue). Por otro lado, se crea un objeto Graphics llamado graficador al cual
se le asigna el mtodo CreateGraphics. La funcin DrawLine permite dibujar una
lnea, dicho mtodo contiene cinco parmetros: el primero es el color de la lnea, el
segundo es la coordenada X inicial, el tercero es la coordenada Y inicial, el cuarto es la
coordenada X final y el quinto es la coordenada Y final.
164
Dim lapiz As New Pen(Color.FromArgb(255, 0, 255, 0), 4)
Dim graficador As Graphics
graficador = Me.CreateGraphics
graficador.DrawLine(lapiz, 100, 30, 170, 150)
Ejecutar el proyecto
165
Establecer las propiedades de los objetos de la interfaz de usuario
Para el men Lneas adicione los submens para obtener la siguiente figura:
166
Figura 9.5 Men Rectangulo/Cuadro con Submens.
Para el men Curvas adicione los submens para obtener la siguiente figura:
167
Escribir cdigo
a) Seleccione el men Lnea Normal, d doble clic para abrir el editor del
procedimiento y escriba el siguiente cdigo:
grafica.CreateGraphics.Clear(Me.BackColor)
grafica.CreateGraphics.DrawLine(Pens.Red, 10, 10, 220, 80)
b) Seleccione el men Lnea con extremos, d doble clic para abrir el editor del
procedimiento y escriba el siguiente cdigo:
grafica.CreateGraphics.Clear(Me.BackColor)
Dim lapiz As New Pen(Color.Blue, 6)
lapiz.StartCap = Drawing2D.LineCap.ArrowAnchor
lapiz.EndCap = Drawing2D.LineCap.RoundAnchor
grafica.CreateGraphics.DrawLine(lapiz, 20, 80, 200, 80)
lapiz.Dispose()
c) Seleccione el men Lnea discontinua, d doble clic para abrir el editor del
procedimiento y escriba el siguiente cdigo:
grafica.CreateGraphics.Clear(Me.BackColor)
Dim recortar As Single() = {3, 4, 10, 2}
Dim lapiz As New Pen(Color.Blue, 3)
lapiz.DashPattern = recortar
grafica.CreateGraphics.DrawLine(lapiz, 20, 100, 400, 100)
lapiz.Dispose()
Se crea una matriz llamada recortar con los valores 3, 4, 10, 2 que representa
los cortes y los espacios al dibujar una lnea. En el ejemplo se dibuja una lnea
discontinua basada en la matriz {3, 4, 10, 2}. Si se multiplican los elementos de la
matriz por el ancho del lpiz (3), se obtiene {9, 4, 30, 6}. Las lneas que se muestran
alternan sus longitudes entre 9 y 30 y los espacios alternan sus longitudes entre 4 y 6. A
la propiedad DashPattern (patrn de corte) del objeto lapiz se le asigna los valores de
dicha matriz.
d) Seleccione el men Unin de Lneas, d doble clic para abrir el editor del
procedimiento y escriba el siguiente cdigo:
grafica.CreateGraphics.Clear(Me.BackColor)
Dim conectar As New Drawing2D.GraphicsPath()
Dim lapiz As New Pen(Color.Blue, 8)
168
conectar.StartFigure()
conectar.AddLine(New Point(100, 30), New Point(200, 30))
conectar.AddLine(New Point(100, 200), New Point(200, 30))
conectar.AddLine(New Point(100, 200), New Point(200, 200))
lapiz.LineJoin = Drawing2D.LineJoin.Round
grafica.CreateGraphics.DrawPath(lapiz, conectar)
lapiz.Dispose()
e) Seleccione el men Rectngulo sin relleno, d doble clic para abrir el editor del
procedimiento y escriba el siguiente cdigo:
grafica.CreateGraphics.Clear(Me.BackColor)
grafica.CreateGraphics.DrawRectangle(Pens.Red, 100, 100, 60, 80)
f) Seleccione el men Rectngulo con relleno, d doble clic para abrir el editor
del procedimiento y escriba el siguiente cdigo:
grafica.CreateGraphics.Clear(Me.BackColor)
grafica.CreateGraphics.FillRectangle(Brushes.Red, 100, 100, 60, 80)
g) Seleccione el men Cuadro sin relleno, d doble clic para abrir el editor del
procedimiento y escriba el siguiente cdigo:
grafica.CreateGraphics.Clear(Me.BackColor)
grafica.CreateGraphics.DrawRectangle(Pens.Blue, 100, 100, 80, 80)
h) Seleccione el men Cuadro con relleno, d doble clic para abrir el editor del
procedimiento y escriba el siguiente cdigo:
grafica.CreateGraphics.Clear(Me.BackColor)
grafica.CreateGraphics.FillRectangle(Brushes.Red, 100, 100, 80, 80)
169
Con la funcin FillRectangule se puede crear un cuadro con relleno, solamente
se necesita que los valores de ancho y alto sean iguales.
i) Seleccione el men Rectngulo con trama, d doble clic para abrir el editor del
procedimiento y escriba el siguiente cdigo:
grafica.CreateGraphics.Clear(Me.BackColor)
Dim trama As New Drawing2D.HatchBrush(Drawing2D.HatchStyle.Vertical,Color.Blue,
Color.Green)
Dim trama1 As New Drawing2D.HatchBrush(Drawing2D.HatchStyle.Cross, Color.Blue,
Color.Green)
Dim trama2 As New Drawing2D.HatchBrush(Drawing2D.HatchStyle.
DarkUpwardDiagonal,Color.Blue, Color.Green)
grafica.CreateGraphics.FillRectangle(trama, 10, 80, 60, 40)
grafica.CreateGraphics.FillRectangle(trama1, 100, 80, 60, 40)
grafica.CreateGraphics.FillRectangle(trama2, 200, 80, 60, 40)
j) Seleccione el men Cuadro con degradado, d doble clic para abrir el editor
del procedimiento y escriba el siguiente cdigo:
grafica.CreateGraphics.Clear(Me.BackColor)
Dim rectangulo As Rectangle = New Rectangle(New Point(50, 60), New Point(100,100))
Dim degradado As New Drawing2D.LinearGradientBrush(rectangulo, Color.Blue,
Color.Green, Drawing2D.LinearGradientMode.BackwardDiagonal)
grafica.CreateGraphics.FillRectangle(degradado, rectangulo)
k) Seleccione el men Elipse sin relleno, d doble clic para abrir el editor del
procedimiento y escriba el siguiente cdigo:
grafica.CreateGraphics.Clear(Me.BackColor)
grafica.CreateGraphics.DrawEllipse(Pens.Blue, 100, 100, 60, 80)
La funcin DrawEllipse permite dibujar una elipse sin relleno. Dicho objeto
contiene cinco parmetros: el primero es el color de la elipse, el segundo es la
coordenada X, el tercero es la coordenada Y, el cuarto es el ancho y el quinto es el alto.
l) Seleccione el men Elipse con relleno, d doble clic para abrir el editor del
procedimiento y escriba el siguiente cdigo:
grafica.CreateGraphics.Clear(Me.BackColor)
grafica.CreateGraphics.FillEllipse(Brushes.Blue, 100, 100, 60, 80)
170
Para mostrar una elipse rellena de un color se utiliza la funcin FillEllipse.
Dicho objeto contiene cinco parmetros: el primero es el color de la elipse, el segundo
es la coordenada X, el tercero es la coordenada Y, el cuarto es el ancho y el quinto es el
alto.
m) Seleccione el men Crculo sin relleno, d doble clic para abrir el editor del
procedimiento y escriba el siguiente cdigo:
grafica.CreateGraphics.Clear(Me.BackColor)
grafica.CreateGraphics.DrawEllipse(Pens.Blue, 100, 100, 80, 80)
n) Seleccione el men Crculo con relleno, d doble clic para abrir el editor del
procedimiento y escriba el siguiente cdigo:
grafica.CreateGraphics.Clear(Me.BackColor)
grafica.CreateGraphics.FillEllipse(Brushes.Blue, 100, 100, 80, 80)
o) Seleccione el men Curva cerrada sin relleno, d doble clic para abrir el editor
del procedimiento y escriba el siguiente cdigo:
grafica.CreateGraphics.Clear(Me.BackColor)
Dim puntos() As Point = {New Point(30, 30), New Point(90, 50), New Point(70, 80)}
grafica.CreateGraphics.DrawClosedCurve(Pens.Blue, puntos)
p) Seleccione el men Curva cerrada con relleno, d doble clic para abrir el
editor del procedimiento y escriba el siguiente cdigo:
grafica.CreateGraphics.Clear(Me.BackColor)
Dim puntos() As Point = {New Point(30, 30), New Point(90, 50), New Point(70, 80)}
grafica.CreateGraphics.FillClosedCurve(Brushes.Blue, puntos)
q) Seleccione el men Torta sin relleno, d doble clic para abrir el editor del
procedimiento y escriba el siguiente cdigo:
grafica.CreateGraphics.Clear(Me.BackColor)
grafica.CreateGraphics.DrawArc(Pens.Aqua, 0, 0, 140, 70, 0,120)
La funcin DrawPie permite dibujar un grafico circular definida por una elipse
sin relleno. Dicho objeto contiene siete parmetros: el primero es el color de la curva, el
171
segundo es la coordenada X, el tercero es la coordenada Y, el cuarto es el ancho, el
quinto es el alto, el sexto es el ngulo inicial y el sptimo el ngulo final.
r) Seleccione el men Torta con relleno, d doble clic para abrir el editor del
procedimiento y escriba el siguiente cdigo:
grafica.CreateGraphics.Clear(Me.BackColor)
grafica.CreateGraphics.FillPie(Brushes.Black, 0, 0, 140, 70,
La funcin FillPie permite dibujar un grafico circular definida por una elipse
con relleno.
Ejecutar el proyecto
Para que un control o una imagen se desplacen en forma horizontal, vertical o diagonal
es necesario modificar las propiedades Top y Left. La propiedad Left permite mover un
control de izquierda a derecha y viceversa. La propiedad Top permite mover un objeto
de arriba abajo y viceversa. La combinacin de Left y Top permite el movimiento de un
control en forma diagonal. Existen dos formas de realizar esta operacin: manualmente
y automticamente. De la forma manual se puede realizar haciendo un clic sobre un
botn cada vez que el usuario desea mover la figura. Dicho control contendr el cdigo
que permitir realizar un movimiento especfico. La forma automtica se realiza con un
control Timer que permite manejar intervalos de tiempo y el cual se puede programar
para que realice unas tareas especificas en un determinado intervalo de tiempo.
Crear una aplicacin llamada MovimientoControl que permita a un usuario por medio
de botones mover una imagen en forma horizontal y vertical en forma manual y
automtica.
172
Crear la interfaz de usuario
Utilizando el cuadro de herramientas adicione al formulario los siguientes controles: 1
PictureBox, 1 Timer, 7 Button.
173
Escribir cdigo
En este cdigo se modifica los valores de las propiedades Left y Top del
control imagen, esto permitir que la imagen se desplace 10 pixeles a la derecha y 10
hacia abajo.
reloj.Enabled=True
reloj.Enabled=False
f) Seleccione el objeto reloj, d doble clic para abrir el editor del procedimiento y
escriba el siguiente cdigo:
174
If (botonderechatimer.Focused) Then
imagen.Left = imagen.Left + 10
End If
If (botonabajotimer.Focused) Then
imagen.Top = imagen.Top + 10
End If
If (botondiagonaltimer.Focused) Then
imagen.Top = imagen.Top + 10
imagen.Left = imagen.Left + 10
End If
Ejecutar el proyecto
Para que un control se pueda expandir o contraer es necesario modificar las propiedades
del control Width y Height. La propiedad Width permite modificar el ancho del
control y la propiedad Height permite modificar la altura de un objeto. Tambin se
puede realizar esta operacin en forma manual y automtica.
175
9.3.1 Ejemplo prctico expandir y contraer un control
176
Escribir cdigo
f) Seleccione el objeto reloj, d doble clic para abrir el editor del procedimiento y
escriba el siguiente cdigo:
If botonexpandirtimer.Focused Then
imagen.Width = imagen.Width + 10
imagen.Height = imagen.Height + 10
End If
If botoncontraertimer.Focused Then
imagen.Width = imagen.Width - 10
imagen.Height = imagen.Height - 10
End If
177
Utilizando la propiedad Focused del control Button se determina cual botn se
puls. Dependiendo de la respuesta realizar la accin correspondiente.
Ejecutar el proyecto
9.4 Animacin
178
propiedades a los controles:
Escribir cdigo
179
Integer.
reloj.Enabled = False
d) Seleccione el objeto reloj, d doble clic para abrir el editor del procedimiento y
escriba el siguiente cdigo:
xpos = Int(100 * Math.Cos(decima_segundo))
ypos = Int(100 * Math.Sin(decima_segundo))
pintura.CreateGraphics.DrawLine(Pens.Salmon, 100, 100, 100 + xpos, 100 + ypos)
decima_segundo += 0.1
Ejecutar el proyecto
180
2) Disear una aplicacin llamada RotacionImagenes que cuando se pulse un botn se
realice la rotacin de la luna en un cuadro.
181
Figura 9.16 Ventana Tareas de ImageList del control listadeimagenes.
182
Seleccione la imagen con el nombre MOON01 y pulse el botn Abrir, realice
esta operacin hasta obtener la siguiente figura:
Escribir cdigo
y=1
imagen.Image = listadeimagenes.Images.Item(0)
y=2
183
If y = 7 Then y = 1
imagen.Image = listadeimagenes.Images.Item(y)
End Sub
d) Seleccione el objeto boton, d doble clic para abrir el editor del procedimiento y
escriba el siguiente cdigo:
If interruptor = 0 Then
boton.Text = "Parar"
interruptor = 1
Else
boton.Text = "Girar"
interruptor = 0
End If
e) Seleccione el objeto reloj, d doble clic para abrir el editor del procedimiento y
escriba el siguiente cdigo:
If interruptor = 1 Then
rotar()
End If
Ejecutar el proyecto
184
3) Crear una aplicacin llamada MoverTextoAleatorio que permita a un usuario al
pulsar un botn visualizar la impresin de un texto en un formulario aleatoriamente.
Adems otros dos botones que realicen las siguientes operaciones: el primero debe
permitir limpiar el formulario y el segundo detener la impresin del texto.
185
Escribir cdigo
grafica = Me.CreateGraphics
f) Seleccione el objeto reloj, d doble clic para abrir el editor del procedimiento y
escriba el siguiente cdigo:
Randomize()
valorx = Int(Rnd() * 200)
valory = Int(Rnd() * 200)
grafica.DrawString("Texto en movimiento aleatorio", fuente, Brushes.Blue, valorx,
valory)
186
fuente, el color de la fuente y las coordenadas x, y.
Ejecutar el proyecto
1. Escribir un programa que dibuje diez crculos concntricos. Los crculos deben
estar separados por 5 pxeles utilizando DrawEllipse.
2. Realizar un programa que dibuje lneas de longitud y color aleatorio.
3. Disear un programa que dibuje un espiral utilizando DrawArc.
4. Hacer un programa que dibuje 10 palabras con fuente aleatoria de diferente
tamao.
5. Elaborar un programa que capture una palabra e imprima dicha palabra en forma
aleatoria y de diferente color.
6. Escribir un programa que dibuje un tablero de ajedrez.
7. Realizar un programa que dibuje un cubo.
8. Crear un programa que capture el nmero de tringulos que deben dibujarse.
Dicho tringulos deben ser de diferente color.
9. Disear un programa que lea un par de coordenadas, el radio y dibuje el crculo,
adems, de imprimir el dimetro, la circunferencia y el rea del crculo.
10. Hacer un programa que simule un protector de pantalla. El programa deber
dibujar 50 lneas al azar y despus limpiar la pantalla y viceversa.
187
10. MANEJO DE EVENTOS (MOUSE TECLADO)
Cuando un control u objeto realiza una accin se genera un evento. En los ejercicios de
los captulos anteriores donde se ha utilizado el control Button se ha programado
cdigo para que realice una operacin especfica en el evento clic. Cuando un control
genera un evento, un manejador de eventos vinculado al control se encarga de analizar
que evento ocurri para responder al mismo ejecutando el mtodo adecuado. El
manejador de eventos suele ser llamando delegado y es un objeto de la clase
EventHandler del espacio de nombres System y para los datos del evento se utiliza la
clase EventArgs del espacio de nombres System. Por ejemplo, si se desea controlar un
evento MouseUp en una aplicacin Windows Forms, la clase de datos de evento es
MouseEventArgs y el delegado de evento es MouseEventHandler
188
10.2 Ejercicios de eventos del mouse
Escribir cdigo
189
Se declaran cuatro variables globales: mover y primeravez de tipo Boolean
inicializadas en False; valorx y valory de tipo Integer inicializadas en cero (0).
mover = True
Ejecutar el proyecto
190
Figura 10.2 Ejecucin aplicacin MoverBotonMouse.
Escribir cdigo
191
moverraton = True
Ejecutar el proyecto
192
10.3 Eventos del teclado
Un evento de teclado ocurre cuando el usuario interacta con dicho dispositivo. Cada
vez que el usuario pulsa o suelta una tecla se genera un evento de teclado. Los eventos
del teclado son KeyPress, KeyDown y KeyUp. El evento KeyPress recibe la
informacin en un argumento de tipo System.Windows.Forms.KeyPressEventArgs,
el cual contiene mtodos y propiedades para saber si el evento ha sido manejado
(handled) o devuelve el caracter de la tecla pulsada (KeyChar), este evento es til
cuando se desea obtener el caracter que fue pulsado, por ejemplo, para manejar la tecla
Enter. El evento KeyDown se invoca al pulsar una tecla y el evento KeyUp se invoca
al soltar una tecla, ambos reciben informacin por medio de un argumento de tipo
System.Windows.Forms.KeyEventArgs, por ejemplo, Alt que indica si se presion la
tecla "alt" anlogamente se comportan las propiedades Control, Shift, etc.
193
Escribir cdigo
Ejecutar el proyecto
194
2) Crear una aplicacin llamada DetectarTecla que permita a un usuario escribir en una
primera caja de texto solo nmeros y en una segunda caja de texto solo letras. Adems
se debe permitir eliminar lo tecleado en la respectiva caja de texto, como tambin al
pulsar la tecla Enter en la primera caja de texto, se deber enviar el foco a la segunda
caja de texto.
Escribir cdigo
195
End If
If (e.KeyChar = Convert.ToChar(Keys.Enter)) Then
txtletra.Focus()
End If
Se utiliza la funcin Asc para determinar el valor Ascci del carcter pulsado
obtenido de la propiedad KeyChar. Los nmeros de 0 a 9 se encuentran en el rango
Ascci entre 48 y 57. Tambin se determina el valor cuando de pulsa la tecla Back
(retroceso) y Enter. Si la condicin es verdadera se establece que se controlo el evento
y por consiguiente se debe procesar (e.Handled = False). En caso contrario no se
procesa el evento y se mostrar en un cuadro de dilogo MsgBox el mensaje Solo se
pueden dgitar nmeros. Por otro lado, al pulsarse la tecla Enter se enviar el cursor
al objeto txtletra el cual es realizado con la funcin Focus().
Se utiliza la funcin Asc para determinar el valor Ascci del carcter pulsado
obtenido de la propiedad KeyChar. Las letras minsculas se encuentran en el rango
Ascci entre 97-122 y las letras maysculas en el rango 65 - 90. Tambin se determina el
valor cuando de pulsa la tecla Back. Si la condicin es verdadera se establece que se
controlo el evento y por consiguiente se debe procesar (e.Handled = False). En caso
contrario no se procesa el evento y se mostrar en un cuadro de dilogo MsgBox el
mensaje Solo se pueden dgitar letras.
Ejecutar el proyecto
196
Si a continuacin se trata de digitar cualquier tecla diferente de un nmero se
visualizar el siguiente cuadro de mensaje.
197
11. PROGRAMACIN ORIENTADA A OBJETOS CON VB.NET
198
una clase, se crea una instancia de esa clase. En general, los trminos objetos e
instancias de una clase se pueden utilizar indiferentemente. Una clase es una coleccin
de objetos similares y un objeto es una instancia de una definicin de una clase.
Para declarar una clase se utiliza la palabra reservada Class seguida del nombre
de la clase y el cuerpo de la misma, terminndose con End Class. El cuerpo de la clase
incluye los atributos y los mtodos.
Class Alumno
Cuerpo de clase (Atributos y mtodos)
End Class
Toda clase debe contener una definicin de variables o mtodos precedida por
un modificador de acceso a los miembros; los modificadores de acceso a miembros
pueden aparecer varias veces y en cualquier orden en una definicin de una clase. Los
modificadores de acceso de Visual Basic.NET son: public (pblico), private (privado)
y protected (protegido). Cuando un miembro de una clase tiene el especificador public,
ese miembro puede ser accedido por cualquier parte del programa. Cuando un miembro
es protected, ese miembro puede ser utilizado para realizar la herencia. Cuando un
miembro es private, ese miembro slo puede ser accedido por otros miembros de la
misma clase. Cuando no se utiliza ningn especificador de acceso, por defecto los
miembros de una clase son pblicos.
Class Alumno
variables de instancias
Private nombre_alumno As String
Private asignatura As String
Private curso As integer
mtodos o procedimientos
Public Sub obtenerNombre(nombre As String)
Tareas del metodo
End Sub
Public Function obtenerCurso(curso As Integer) As Integer
Tareas del metodo
End Function
..
End Class
11.1 Constructores
En algunos casos es necesario crear varios objetos que se inicialicen siempre con
valores predeterminados, es decir cada vez que se cree un nuevo objeto este se
199
inicializara con los mismos valores.
Class Alumno
Private nombre_alumno As String
Private asignatura As String
Private curso As integer
Public Sub New()
Nombre_alumno=
asignatura=
curso=0
End Sub
Public Function obtenerNombre(nombre As String) As String
return nombre
End Function
Public Function obtenerCurso(curso As Integer) As Integer
return curso
End Function
End Class
Existen casos en que es necesario crear varios objetos que se inicialicen con diferentes
valores, como se puede apreciar, en el ejemplo anterior cada vez que se crea un nuevo
objeto este se inicializara con los mismos valores, la solucin es crear un constructor
que tenga parmetros.
Class Alumno
Private nombre_alumno As String
Private asignatura As String
Private curso as integer
Public Sub New(nombre As String, asig As String, numero As Integer)
nombre_alumno=alumno
asignatura=asig
curso=numero
End Sub
Public Function obtenerNombre(nombre As String) As String
return nombre
End Function
Public Function obtenerCurso(curso As Integer) As Integer
return curso
End Function
..
End Class
200
Class Alumno
Private nombre_alumno As String
Private asignatura As String
Private curso As Integer
Public Sub New(nombre As String, asig As String, numero As Integer)
nombre_alumno=alumno
asignatura=asig
curso=numero
End Sub
Public Sub New(nombre As String, asig As String)
nombre_alumno=alumno
asignatura=asig
curso=0
End Sub
Public Function obtenerNombre(nombre As String) As String
return nombre
End Function
Public Function obtenerCurso(curso As Integer) As Integer
return curso
End Function
..
End Class
La herencia es la posibilidad de crear una nueva clase a partir de una clase existente, la
clase nueva hereda todos los atributos y comportamientos de una clase existente. En la
nueva clase se pueden agregar atributos y comportamientos o supeditar los
comportamientos de la superclase a fin de adaptar la clase a las nuevas necesidades.
El polimorfismo permite escribir programas para manejar una amplia variedad
de clases interrelacionadas existentes y por especificar.
Al crear una nueva clase (clase derivada), en lugar de escribir variables y
mtodos totalmente nuevos, el programador puede indicar que la nueva clase puede
heredar las variables y los mtodos de una superclase (clase base) previamente definida.
Para poder acceder a las variables de la superclase estas previamente deben estar
con el modificador de acceso protected o public:
Estudiante //clase base
201
11.3 Ejemplos prcticos de clases
202
Agregar nueva Clase
Para crear una nueva clase puede realizar alguno de los siguientes pasos:
a) Entre las instrucciones Public Class Miclase y End Class, escriba el siguiente
cdigo:
203
Se declaran tres variables (alto, ancho, profundidad) para guardar los valores
digitados por el usuario respectivamente. Adems se declaran como privadas para que
puedan ser modificadas nicamente por la clase.
Public Sub New(ByVal altoc As Double, ByVal anchoc As Double, ByVal profc As
Double)
alto = altoc
ancho = anchoc
profundidad = profc
End Sub
Se crea un constructor con parmetros que recibe los tres valores digitados por el
usuario en los objetos txtalto, txtancho y txtprofundidad y se asignan a las tres
variables privadas de la clase respectivamente.
Public Sub New()
alto = 0
ancho = 0
profundidad = 0
End Sub
Se crea un constructor sin parmetros, este inicializa las tres variables privadas
de la clase en cero (0).
Public Sub iniciarvariables(ByVal altoc As Double, ByVal anchoc As Double, ByVal
profc As Double)
alto = altoc
ancho = anchoc
profundidad = profc
End Sub
Se crea un procedimiento Sub con parmetros que recibe los tres valores
digitados por el usuario en los objetos txtalto, txtancho y txtprofundidad y se asignan
a las tres variables privadas de la clase respectivamente. Este procedimiento es utilizado
por el constructor sin parmetros.
Public Function volumencaja() As Double
Return alto * ancho * profundidad
End Function
204
A la propiedad Text del objeto txtvolumen se le asigna el valor que retorne el
procedimiento volumencaja de la clase Miclase.
Ejecutar el proyecto
205
Figura 11.5 Formulario con el control TabControl.
206
Figura 11.8 Propiedad TabPages del control TabControl.
207
Figura 11.10 Propiedad Text de TabPage1 modificada.
208
TabControl1 Name fichas
Form1 Name formulario
Text Figuras utilizando Herencia
209
Figura 11.13 Interfaz usuario Ficha Circulo.
210
Figura 11.14 Interfaz usuario Ficha Cilindro.
Agregar Clases
211
Se declaran dos variables (x, y) de tipo Double para guardar los valores
digitados por el usuario respectivamente. Adems, se declaran como privadas para que
puedan ser modificadas nicamente por la clase.
Por otro lado, se definen los siguientes procedimientos:
Constructor New: que recibe dos parmetros de tipo Double y llama al
procedimiento fijapuntos.
fijapuntos: recibe dos parmetros de tipo Double y le asigna a las variables
privadas x, y los valores recibidos respectivamente.
mostrarx: retorna el valor de la coordenada x.
mostrary: retorna el valor de la coordenada y.
cadena: retorna un valor String con los valores x, y.
Entre las instrucciones Public Class Circulo y End Class, escriba el siguiente cdigo:
212
Por otro lado, se definen los siguientes procedimientos:
Entre las instrucciones Public Class Cilindro y End Class, escriba el siguiente cdigo:
Public Class Cilindro
Inherits Circulo
Protected altura As Double
Public Sub New(ByVal h As Double, ByVal r As Double, ByVal a As Double,
ByVal b As Double)
MyBase.new(r, a, b)
fijaaltura(h)
End Sub
Public Sub fijaaltura(ByVal h As Double)
If (h >= 0.0) Then
altura = h
Else
altura = 0
End If
End Sub
Public Function obtaltura() As Double
Return altura
End Function
Overloads Function area() As Double
Return 2 * MyBase.area() + 2 * 3.14159 * radio * altura
End Function
Public Function volumen() As Double
Return MyBase.area() * altura
213
End Function
Overloads Function cadena() As String
Return MyBase.cadena() & ";Altura = " & altura
End Function
End Class
Primero se crea una instancia de tipo Puntos llamada puntos. Se declaran las
variables valorx, valory de tipo Double y se le asigna los valores de los objetos txtx y
txty en su propiedad Text respectivamente. Se asigna espacio de memoria (New) al
objeto puntos y se le enva al constructor de la clase Puntos los valores de valorx y
valory. Por otro lado, se le asigna a la propiedad Text de los objetos txtpuntos,
214
txtcirculox y txtcirculoy respectivamente lo que retorna los procedimientos cadena,
mostrarx, mostrary de la instancia puntos.
Se crea una instancia de tipo Circulo llamada circulo. Se declaran las variables
valorx, valory y valorradio de tipo Double y se le asigna los valores de los objetos
txtcirculox, txtcirculoy y txtrradio en su propiedad Text respectivamente. Se asigna
espacio de memoria (New) al objeto circulo y se le enva al constructor de la clase
Circulo los valores de valorradio, valorx y valory. Adems se le enva al
procedimiento fijapuntos los valores de valorx y valory; a fijaradio el valor de
valorradio. Por otro lado, se le asigna a la propiedad Text de los objetos txtxyradio,
txtarea, txtcilindrox, txtcilindroy y txtradiocilindro respectivamente lo que retorna
los procedimientos cadena, area, mostrarx, mostrary y obtradio de la instancia
circulo.
215
Ejecutar el proyecto
216
Figura 11.17 Valores de la ficha Circulo.
11.4 Interfaces
Las Interfaces definen las propiedades, mtodos y eventos que pueden implementar las
clases. Se pueden agregar nuevas caractersticas en cualquier momento mediante el
desarrollo de implementaciones e interfaces adicionales. Las definiciones de interfaz se
217
encuentran dentro de las instrucciones Interface y End Interface. Despus de la
instruccin Interface, puede agregar una instruccin Inherits opcional que proporcione
una lista de una o varias interfaces heredadas. En la definicin de una interfaz deben
existir nicamente instrucciones Event, Sub, Function, Property, Interface, Class,
Structure y Enum. Las interfaces no pueden contener cdigo de implementacin. Las
interfaces se pueden definir dentro de clases, mdulos, interfaces y estructuras. De
manera predeterminada son pblicas (Public), pero tambin se pueden declarar como
Friend, Protected o Private.
La palabra clave Implements se utiliza para indicar que un miembro de una clase
implementa una interfaz especfica. Una instruccin Implements requiere una lista
separada por comas de los miembros de la interfaz que deben implementarse. La
especificacin de un miembro de interfaz consiste en el nombre de la interfaz, que debe
especificarse en una instruccin Implements junto con la clase, un punto y el nombre
del evento, propiedad o funcin que se desea implementar.
.
Ejemplo:
Interface Pelcula
Function video()
End Interface
Public class MisPeliculas implements Pelcula
:::::::::::
Public Function video implements Pelcula.video
<Cdigo..>
End Function
::::::::::::
End Class
Elaborar una aplicacin llamada Interfaces que permita a un usuario digitar la base y la
altura y obtener el rea de un Rectngulo y un Tringulo utilizando interfaces.
218
Label4 Name lblarearectangulo
Text Area del Rectngulo ((b*a)/2):
TextBox1 Name txtbase
Textbox2 Name txtaltura
TextBox3 Name txtareatriangulo
TextBox4 Name txtarearectangulo
Form1 Name formulario
Text Interface Area Tringulo/Rectngulo
Agregar Interface
Para crear una interface puede realizar alguno de los siguientes pasos:
4. Del men Proyecto seleccione Agregar nuevo elemento- Interfaz.
5. Del icono seleccionar Agregar nuevo elemento Interfaz.
6. En el Explorador de soluciones situarse en el nombre del proyecto, dar clic
derecho, seleccionar la opcin Agregar nuevo elemento - Interfaz.
219
En el cuadro de texto Nombre cambie el nombre a la interfaz por
interfacefigura, luego pulse el botn Agregar para visualizar una nueva interfaz en el
editor de cdigo y en la lista del Explorador de soluciones aparece un nuevo archivo
con el nombre de la interfaz.
Entre las instrucciones Public Interface y End Interface, escriba el siguiente cdigo:
Agregar Clases
Entre las instrucciones Public Class Rectangulo y End Class, escriba el siguiente
cdigo:
220
Constructor New: que recibe dos parmetros de tipo Double y asigna dichos valores
a las variables base, altura respectivamente.
area: se implementa el procedimiento area definido en la interfaz interfacefigura
el cual retorna el resultado de multiplicar la base por la altura.
Seleccione el objeto botonarea, d doble clic para abrir el editor del procedimiento
botonarea_Click y escriba el siguiente cdigo:
221
Ejecutar el proyecto
Al ejecutar el proyecto y digitar los valores 8,14 en la respectiva caja de texto y pulsar
el botn Calcular Area, se visualizar la siguiente figura:
1. Crear un programa que contenga una superclase Figura donde se herede las
figuras de rectngulos, cuadrados, tringulos y crculos. El usuario podr
escoger la posicin, la figura y los caracteres de relleno que se usarn para
dibujar cada figura.
2. Realizar un programa utilizando herencia que decida si dos nmeros son amigos.
Dos nmeros son amigos si la suma de los divisores del primer nmero,
excluido l, es igual al segundo nmero y viceversa; es decir, si la suma de los
divisores del segundo nmero, excluido l es igual al primer nmero.
3. Escribir un programa que permita capturar la hora, los minutos y los segundos
en formato de 24 horas. En una clase se deben realizar las operaciones para
retornar al programa las horas, los minutos y los segundos un segundo despus.
Nota: las horas van entre 0 y 23 y los minutos y segundos entre 0 y 59.
4. Hacer un programa utilizando herencia que lea un nmero no mayor de 1000 e
imprima ese nmero en letras.
5. Crear una clase llamada Rectangulo que contenga los atributos longitud y ancho,
cada uno de los cuales debe ser inicializado con 1. Deber contener mtodos
para calcular el permetro y el rea del rectngulo, los mtodos deben verificar
que la longitud y la altura sean nmeros flotantes entre 0.0 y 20.0. Deber
escribir un programa que permita utilizar la clase Rectangulo.
6. Elaborar un programa que dibuje lneas, rectngulos, valos al azar. Para este
fin, cree un conjunto de clases que permitan dibujar cada una de las figuras. Se
Puede utilizar instancias o herencia.
7. Disear un programa que permita capturar un nmero y por medio de clases
imprima el factorial de dicho nmero.
8. Realizar un programa que capture 10 nmeros y utilizando clases imprima el
mayor y el menor de dichos nmeros.
9. Escribir un programa que permita capturar tres valores (a, b, c) e imprima las
races de la cuadrtica utilizando clases.
10. Hacer un programa utilizando clases que permita capturar tres datos (nombre,
edad, sexo) y los guarde en un archivo de texto.
222
12. ACCESO A BASES DE DATOS CON VB.NET
Las bases datos ms comunes son las relacionales y existen varios sistemas de
administracin de bases de datos de ese tipo, algunos son: SQL Server, Access, Oracle,
MySQL, PostgresSQL, etc.
Las bases de datos relacionales son un conjunto de tablas relacionadas entre s, donde
cada tabla est definida por una serie de campos. Los campos forman las columnas de
las tablas. Las filas se denominan registros (tuplas), y cada tipo definido en un registro
es un atributo. Las tablas pertenecientes a una base de datos pueden relacionarse entre s
utilizando campos clave comunes entre las tablas.
Una base de datos orientada a objetos es un conjunto de clases que definen las
caractersticas y el comportamiento de los objetos que desarrollarn la base de datos.
Con una base de datos orientada a objetos, los objetos memorizados en la base de datos
contienen los datos como tambin las operaciones posibles con dichos datos.
DDL: permiten crear y definir nuevas bases de datos, tablas, campos e ndices.
DML: permiten generar consultas para ordenar, filtrar y extraer datos de la base de
datos.
223
Tabla 12.1 Comandos DDL y DML de SQL.
Comandos DDL
Comando Descripcin
CREATE Permite crear nuevas bases de datos, tablas, campos e ndices.
DROP Elimina bases de datos, tablas e ndices.
Modifica las tablas agregando campos o cambiando la definicin de los
ALTER
campos.
Comandos DML
Permite consultar registros de una base de datos que cumplan una condicin
SELECT
determinada.
INSERT Inserta datos en una base de datos en una nica operacin.
UPDATE Actualiza o modifica los valores de los campos y registros especificados.
DELETE Elimina registros de una tabla de una base de datos.
Las clusulas son operadores de modificacin que sirven para definir los datos que se
desean seleccionar o renovar.
Clusula Descripcin
Sirve para especificar el orgen de datos (tabla) de la cual se van a
FROM
seleccionar registros.
Permite especificar condiciones que deben cumplir los registros a
WHERE
seleccionar.
GROUP BY Separa los registros seleccionados en grupos especficos.
HAVING Expresa la condicin que debe cumplir cada grupo de registros.
ORDER BY Ordena los registros seleccionados.
224
Tabla 12.3 Operadores lgicos SQL.
Operador Uso
Evala dos condiciones y devuelve un valor de verdad slo si ambas
AND
son ciertas.
Evala dos condiciones y devuelve un valor de verdad si alguna de
OR
las dos es cierta.
NOT Negacin lgica. Devuelve el valor contrario de la expresin.
BETWEEN Permite especificar un intervalo de valores.
LIKE Realiza una comparacin de un patrn.
IN Se utiliza para describir registros de una base de datos.
Devuelve Verdadero (True) si el conjunto de comparaciones de un
ALL
origen de datos es verdad.
Operador Uso
< Menor que
> Mayor que
<> Distinto de
<= Menor o igual que
>= Mayor o igual que
= Igual que
Funcin Descripcin
AVG Calcula el promedio de los valores de un campo determinado.
COUNT Devuelve el nmero de registros de la seleccin.
SUM Suma todos los valores nmericos de un campo determinado.
225
MAX Obtiene el valor ms alto de un campo especificado.
MIN Obtiene el valor ms bajo de un campo especificado.
DROP DATABASE permite eliminar una base de datos que previamente se haba
creado. Su formato es:
CREATE TABLE permite crear una tabla. Con este comando se especifica el nombre
de la tabla, las columnas y los tipos de datos, sus claves primarias y si es necesario una
226
clave externa. Su formato es:
DROP TABLE permite eliminar una tabla que previamente se haba creado. Su
formato es:
12.3.5 INSERT
12.3.6 ALTER
SQL ALTER permite insertar un nuevo campo en una tabla. Su formato es:
12.3.7 SELECT
227
c. Si se desea obtener los registros cuya identificacin sea mayores o iguales a 150,
se debe utilizar la clusula WHERE que especifica las condiciones que deben
reunir los registros que se van a seleccionar.
d. Si se desea obtener los registros cuyos apellidos sean Vanegas o Cetina, se debe
utilizar el operador IN que especifica los registros que se quieren visualizar de
una tabla.
h. Si se desea obtener los registros donde la cuarta letra del nombre sea una a.
i.
SELECT * FROM usuarios WHERE nombres LIKE ___a%
j. Si se desea obtener los registros cuya identificacin este entre el intervalo 110 y
150, se debe utilizar la clusula BETWEEN, que sirve para especificar un
intervalo de valores.
12.3.8 DELETE
228
b. Para eliminar solamente los registros cuya identificacin sea mayor de 180.
12.3.9 UPDATE
a. Para actualizar el campo credito en 100000 para los registros cuyo nombre
empiecen por A.
b. Para actualizar el campo credito en -50000 para los registros cuya ciudad sea
igual a Buga.
229
Tabla 12.9 Informacin de la tabla pedidos.
Visual Basic .NET trabaj con la tecnologa ADO.NET (Activex Data Object) para el
el acceso a una base de datos utilizando los proveedores administradores de bases de
datos que funcionan en el entorno .NET. La plataforma .NET incorpora cuatro
proveedores: SQL SERVER, ORACLE, ODBC (Access), OLEDB.
230
DataTable: permite la manipulacin de los datos en la memoria y realiza
operaciones como la exploracin, ordenacin, edicin, filtrado, etc.
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.
NOTA: para este ejemplo el usuario tiene que tener instalado Microsoft SQL
SERVER 2005 o posterior y crear una base de datos llamada bdlibrovbnet y dentro de
ella una tabla llamada clientes (Ver anexo A, SQL Server).
231
Tabla 12.10 Propiedades de controles proyecto ConexionASQLServer.
Control Propiedad Valor
DataGridView1 Name datos
Button1 Name botoncargar
Text Cargar registros tabla.
Label1 Name lblbd
Text Conexin a la base de datos bdlibrovbnet.mdf de SQL
SERVER.
Font True
Label2 Name lbltabla
Text Tabla : Clientes
Font True
Form1 Name formulario
Text Conexin a una base de datos SQL SERVER.
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
232
Try
adaptadordedatos = New SqlDataAdapter(seleccion, conexion)
adaptadordedatos.Fill(tabladedatos)
tabla.DataSource = tabladedatos
Catch ex As Exception
MsgBox("Error: " & ex.Message)
End Try
Se crea una variable llamada conexion de tipo String que contendr la cadena
de conexin a la base de datos bdlibrovbnet.mdf de SQL Server. La cadena de
conexin debe contener como mnimo los siguientes parmetros:
Ejecutar el proyecto
233
12.5.2. Conexin a SQL Server utilizando el explorador de servidores
NOTA: para este ejemplo se utilizar la base de datos SQL Server llamada
bdlibrovbnet.mdf (Ver anexo A, SQL Server). De est base de datos se utilizar la
tabla clientes.
234
Explorador de servidores
235
conexin a la base de datos.
236
Figura 12.7 Estructura de la base de datos bdlibrovbnet.mdf.
237
Figura 12.9 Ventana Elegir orgen de datos.
238
Figura 12.11 Ventana Elegir la conexin de datos.
239
Cambie el nombre de la conexin que all aparece por cadenaconexion y pulse el botn
Siguiente>, se visualizar la siguiente figura:
Pulse el signo (+) al lado de Tablas para desplegar las tablas de la base de datos
y seleccione la tabla clientes. Por otro lado, cambie el nombre del DataSet que all
aparece por datosclientes y pulse el botn Finalizar para visualizar la siguiente figura:
240
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
NOTA: para este ejemplo se utilizar la base de datos SQL Server llamada
bdlibrovbnet y su tabla clientes (Ver anexo A, SQL Server).
241
Figura 12.17 Ventana Explorador de servidores.
242
Figura 12.19 Explorador de servidor - conexin a la base de datos SQL Server.
Del men Datos seleccione la opcin Agregar nuevo orgen de datos, para
visualizar la siguiente figura:
Figura 12.20 Asistente para la configuracin de orgenes de datos.
243
Figura 12.21 Ventana Elegir la conexin de datos.
244
Cambie el nombre de la conexin que all aparece por conexionsqlserver y
pulse el botn Siguiente>, se visualizar la siguiente figura:
Pulse el signo (+) al lado de Tablas para desplegar las tablas de la base de datos
y seleccione la tabla clientes. Por otro lado, cambie el nombre del DataSet que all
aparece por conjuntodedatos y pulse el botn Finalizar para visualizar la siguiente
figura:
245
Figura 12.26 Proyecto con la base de datos y el orgen de datos agregados.
D clic sobre la tabla clientes, pulse el botn izquierdo del mouse y arrastre el
mouse hacia el formulario y automticamente se crearn los siguientes objetos: un
control DataGridView, un BindingNavigator (ClientesBindingNavigator
representa una manera normalizada para navegar y manipular los datos en un
formulario), un DataSet (conjuntodedatos representa un conjunto de datos
recuperados de un orgen de datos), un BindingSource (ClientesBindingsource
encapsula el orgen de datos y proporciona las funciones de navegacin, filtrado,
ordenacin y actualizacin de los datos), un TableAdapter (ClientesTableAdapter
crea una nueva tabla con los datos devueltos), un AdapterManager
(ClientesAdapterManeger administrador del adaptador de datos).
246
Ejecutar el proyecto
Con los iconos del objeto BindingSource se podr desplazar por cada uno de los
registros de la tabla.
247
Al ejecutarse nuevamente la aplicacin y situarse en cualquier registro de la
tabla se visualizar cada registro independiente en la parte derecha del formulario, como
se aprecia en la siguiente figura:
248
La interfaz de usuario queda como se muestra en la siguiente figura:
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
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
c) D doble clic sobre el formulario para abrir el editor de cdigo y cree un nuevo
procedimiento llamado ver_datos:
249
Public Sub ver_datos(ByVal sentenciasql As String, ByVal tabla As DataGridView)
Try
adaptador = New SqlDataAdapter(sentenciasql, conexion)
Dim comando As New SqlCommandBuilder(adaptador)
Dim tabladedatos As New DataTable()
adaptador.Fill(tabladedatos)
transaccion.DataSource = tabladedatos
With tabla
.Refresh()
.FirstDisplayedScrollingRowIndex = transaccion.Position
End With
Catch ex As SqlException
MsgBox(ex.Message.ToString)
Catch ex As Exception
MsgBox(ex.Message.ToString)
End Try
End Sub
Se utiliza el mtodo AddNew del objeto transaccion para crear un nueva fila en
el objeto registros.
250
Else
MsgBox("No se pudo guardar el registro", MsgBoxStyle.Critical)
End If
Si la fila del objeto registros no es vaca por medio del mtodo Update del
objeto adaptador se guarda la nueva fila en la tabla clientes envindole el contenido
del DataSource del objeto transaccion y un objeto DataTable. Por otro lado, se llama
al procedimiento ver_datos para mostrar nuevamente los registros de la tabla clientes.
Si la fila es vaca se muestra el mensaje No se pudo guardar el registro.
Ejecutar el proyecto
Figura 12.33. Cuadricula con una nueva fila para insertar datos.
251
Si se captura la informacin en cada campo de la cuadricula (1000, Chicles
Bacan, Cristian Vanegas, Cra 68 # 20-21, 4159854, Bogot) y luego se pulsa el botn
Guardar nuevo registro, se insertarn los datos en la tabla clientes. En la siguiente
figura se aprecia el registro insertado:
252
Label3 Text Seleccione operador
Name lbloperador
Label4 Text Criterio de filtrado
Name lblcriterio
Label5 Text Su seleccin:
Name lblseleccion
Label6 Text resultado
Name lblresultado
Font/ Bold True
TextBox1 Name valorcampo
Button1 Name botonfiltrar
Text Filtrar registros
ComboBox1 Name listacampos
ComboBox2 Name listaoperadores
DataGridView1 Name registrosfiltrados
Form1 Name formulario
Text Filtrar registros de una tabla.
Escribir cdigo
253
Figura 12.36 Ventana Editor del objeto listacampos.
254
Public class formulario
Dim texto as String
.
End Class
lblresultado.Text = listacampos.SelectedItem.ToString
255
MsgBox("Error: " & ex.Message)
End Try
Se crean las variables: clave que almacenar el valor que este escrito en el objeto
txtcriterio; nombre_campo de tipo String que almacenar el nombre del campo
seleccionado por medio de la propiedad SelectedItem del objeto listacampos;
valoroperador de tipo String que almacenar el operador seleccionado por medio de la
propiedad SelectedItem del objeto listaoperadores; tambin se crea una variable
seleccion de tipo String que almacenar la instruccin SQL Select. En dicha
instruccin se selecciona todos los campos de la tabla clientes (Select * from clientes)
y se utiliza la clusula Where para mostrar solo aquellos registros cuya
nombre_campo corresponda al criterio de valoroperador concatenado con clave. En
un bloque Try se le asigna espacio de memoria de tipo SqlDataAdapter al objeto
adaptador al cual se le enva como parmetros los objetos seleccion (sentencia SQL) y
conexion (cadena de conexin), luego se rellena (fill) el adaptador de datos con la tabla
de datos (tabladedatos) y se le asigna al objeto tabla por intermedio de la propiedad
DataSource el objeto tabladedatos.
Ejecutar el proyecto
Al ejecutarse el proyecto en el entorno de desarrollo, se visualizar la figura 12.35. Si se
selecciona del objeto listacampos el campo nit, del objeto listaoperadores el operador
>, se escribe en el objeto txtcriterio 300 y se pulsa el botn Filtrar registros se
visualizar en la cuadricula todos aquellos registros cuyo nit sea mayor que 300, como
se muestra en la siguiente figura:
Figura 12.38 Formulario con los registros cuyo nit es mayor de 300.
256
Crear la interfaz de usuario.
257
Figura 12.45 Control MicrosoftReportViewer acoplado al formulario.
Disear el informe
Para disear el informe, pulse la flecha del lado superior derecha del objeto reporte
para ver la ventana Tareas de ReportViewer y escoja la opcin Disear nuevo
informe.
258
Figura 12.47 Seleccionar Disear nuevo informe.
259
Figura 12.49 Asistente para la configuracin de orgenes de datos.
260
Figura 12.51 Ventana Agregar conexin.
261
Figura 12.53 Ventana Microsoft Visual Studio.
Cambie el nombre de la conexin que all aparece por conexion y pulse el botn
Siguiente>, se visualizar la siguiente figura:
Pulse el signo (+) al lado de Tablas para desplegar las tablas de la base de datos
262
y seleccione la tabla clientes. Por otro lado, cambie el nombre del DataSet que all
aparece por conjuntodedatos y pulse el botn Finalizar para visualizar la siguiente
figura:
Pulse los signos (+) para desplegar la tabla. D clic en Siguiente> para
visualizar la ventana de seleccin de tipo de informe.
263
Seleccione la opcin Tabular o Matriz y d clic en Siguiente> para visualizar
la ventana de diseo de tabla.
264
D clic en Siguiente> para visualizar la ventana de eleccin de diseo de la
tabla.
265
Seleccione la opcin con el estilo que desee y d clic en Siguiente> para
visualizar la 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.
266
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.
267
Ejecutar el proyecto
268
name boton
DataGridView1 Name tablapedidos
ComboBox1 Name lista
Name formulario
Form1 Text Relacin de tablas con un
ComboBox.
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:
269
D clic en el botn Nueva Conexin. En la ventana que se visualiza elija como
orgen de datos Microsoft SQL Server y la base de datos bdlibrovbnet.
270
Por omisin esta seleccionada la opcin Usar instrucciones SQL. Pulse
Siguiente> para visualizar la ventana de generacin de instrucciones SQL.
Aqu puede realizar la seleccin de los datos que debera cargar el adaptador de
datos. Una forma es escribiendo en la ventana instrucciones SQL y la otra es pulsar el
botn Generador de consultas. Para el ejemplo, se pulsar el botn para visualizar la
siguiente figura:
271
Figura 12.74 Generador de consultas con la tabla clientes.
En esta nueva ventana seleccione la opcin * (todas las columnas) o los campos
que desea visualizar (Si desea visualizar la consulta seleccionada pulse el botn
Ejecutar consulta). Se obtendr la siguiente figura:
Figura 12.75 Generador de consultas con los campos seleccionados (tabla clientes).
272
Figura 12.76 Generador de consultas con la instruccin SQL.
273
Figura 12.78 Ventana Generar conjunto de datos.
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
274
sub, inicialice las siguientes variables u objetos globales:
Public class formulario
Dim vistapedidos As DataView
:::::::::
End class
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
d) D doble clic sobre el objeto boton para abrir el editor de cdigo y escriba el
siguiente cdigo:
e) D doble clic sobre el objeto lista para abrir el editor de cdigo del
procedimiento lista_SelectedIndexChanged y escriba el siguiente cdigo:
tablapedidos.DataSource = Nothing
Ejecutar el proyecto
Al ejecutarse el proyecto, se visualizar la figura 12.67, mostrndose en el objeto lista
el primer nombre de empresa de la tabla clientes (Si se desea ver los nombres de
empresas ordenados alfabticamente cambie el valor de la propiedad Sorted del objeto
275
lista por True). Si selecciona un nombre de empresa y se pulsa el botn Ver Pedidos,
se visualizar en la cuadricula todos los registros que estn relacionados con la tabla
pedidos.
1. Crear un programa que permita realizar una conexin a una base de datos y
mostrar datos de una tabla en un control ListView.
2. Elaborar un programa que permita realizar una conexin a una base de datos y
eliminar registros.
3. Escribir un programa que permita visualizar los registros de una tabla en campos
de texto. El usuario deber poderse desplazar por cada registro de la tabla
utilizando los botones: Primero, Siguiente, Anterior y ltimo.
4. Disear un programa que permita visualizar los registros de una tabla en un
control DataGridView. El usuario deber poderse desplazar por cada registro de
la tabla utilizando los botones: Primero, Siguiente, Anterior y ltimo.
5. Hacer un programa que permita escribir sentencias SQL en un campo de texto y
visualizar los resultados de dicha sentencia en una cuadricula.
6. Realizar un programa que permita visualizar un reporte los registros
relacionados cuyos nit sean mayores que 500.
7. Hacer un programa que permita visualizar un reporte los registros relacionados
cuyas empresas empiecen por la letra C.
8. Realizar un programa que permita hacer una conexin a una base de datos y
visualizar los registros cuyo nit sea menor o igual a 500 en un ListView.
9. Realizar un programa que permita realizar una relacin entre tres tablas de una
base de datos en SQL Server.
10. Hacer un programa que permita visualizar en un reporte los registros de una
relacin de dos tablas.
276
13. LENGUAJE DE CONSULTA INTEGRADO (LINQ)
Un proveedor LINQ realiza una consulta y la traduce en comandos que podr ejecutar el
orgen de datos, adems convierte los datos del orgen en los objetos que obtiene los
resultados de la consulta. Visual Basic .NET tiene los siguientes proveedores LINQ:
NOTA: para los ejemplos se utilizar la estructura de las tablas de la base de datos SQL
Server llamada bdlibrovbnet (Ver anexo A, SQL Server).
Select: Especifica la forma y el contenido de los datos que sern devueltos. Por
ejemplo si se desea visualizar solamente el nit y el nombre de la empresa de la
tabla clientes, se debe realizar el siguiente cdigo:
277
Dim consulta = From misclientes In Clientes
Select misclientes.nit, misclientes.empresa
Order By: Ordena una consulta de un orgen de datos por uno o varios campos
especificados. Para ordenarlo de A Z se utiliza Ascending, de Z A
Descendig, cuando no se especifica se usa Ascending predeterminadamente. Si
se desea ordenar la consulta por el nombre de la empresa de la tabla clientes de
A- Z, el cdigo sera el siguiente:
Group By: Agrupa los resultados de una consulta por uno o ms campos.
Combina dos colecciones con un campo comn de un orgen de datos. Para
visualizar agrupadas y ordenadas las fecha de entrega de los pedidos de la tabla
Pedidos, el cdigo sera:
Dim consulta = From pedidos In Pedidos Order By Pedidos.fechaentrega
Group By fecha = pedidos.fechaentrega
Into orden = Group
278
o Min: Obtiene el valor mnimo de los elementos de un orgen de datos.
o Sum: Realiza la suma de los valores de un orgen de datos.
Ejemplos:
Para definir y utilizar consultar con LINQ, deben realizar tres acciones:
Obtener el orgen de datos: Se debe especificar cules sern los datos que se
van a utilizar y donde estn.
Crear la consulta: Se especifica la informacin que se desea obtener del orgen
de datos, estos, se pueden ordenar, filtrar, agrupar.
Ejecutar la consulta: La ejecucin de la consulta es un proceso independiente
de la creacin. Se puede ejecutar cuando este definida (ejecucin inmediata) o se
puede guardar y ejecutarse posteriormente (ejecucin diferida).
Ejemplo: Realizar una consulta que imprima todos los nombres que empiecen por la
letra R.
- Orgen de datos
279
- Creacin de la consulta
- Ejecutar la consulta
280
Figura 13.1 Interfaz de usuario (ConsultaLinqTexto).
Escribir cdigo
Se utiliza la funcin de agregado Count para contar cada una de los caracteres
que contiene el texto del objeto txttexto se incluyen los espacios. La consulta se crea
con la clusula Aggregate. Al objeto txtresultado se le asigna el valor de contarletras.
Dim palabras() As String
palabras = Split(cadena, " ")
Dim contarpalabras As Integer = Aggregate mispalabras In palabras Into Count()
txtresultado.Text = txtresultado.Text & "Tiene :" & contarpalabras & " Palabras" &
vbCrLf
Se crea una matriz llamada palabras de tipo String. A dicha varible se le asigna
cada una de las palabras que contiene el objeto cadena utilizando la funcin Split. Con
la funcin de agregado Count se cuentan cada una de las palabras de la matriz palabras
y se asigna dicha cantidad a la variable contarpalabras. Al objeto txtresultado se le
adiciona el valor de contarpalabras.
Dim palabras_con_F = From letra In palabras Where letra.Contains("F")
txtresultado.Text = txtresultado.Text & "Las palabras que contienen la letra F son:" &
vbCrLf
For Each letraf In palabras_con_F
txtresultado.Text = txtresultado.Text & letraf & vbCrLf
Next
281
Se crea una variable llamada palabras_con_F. A dicha variable se le asigna
cada una de las palabras que contiene la letra F, la cual es retornada por la consulta
(From). Dicha consulta busca en la matriz palabras todas las palabras que cumplan la
condicion (Where letra.Contains(F)). Con un ciclo For Each se imprime cada
palabra con F que se encuentre en el objeto palabras_con_F y es adicionada a la
propiedad Text del objeto txtresultado. La consulta se crea con la clusula From.
Ejecutar el proyecto
282
13.4.2 Consulta LINQ a una matriz
283
Figura 13.3 Interfaz de usuario (ConsultaLinqMatriz).
Escribir cdigo
Se crea una consulta utilizando la funcin de agregado Sum para sumar los
valores del arreglo numeros y es asignado a la variable suma. Al objeto txtsuma se le
asigna el valor de suma.
Dim promedio As Integer = Aggregate promedionumeros In numeros Into Average()
txtpromedio.Text = promedio
284
txtmenor.Text = menor
Se crea una variable llamada ordenados, a la cual se le asigna una consulta que
ordena (Order By) todos los valores de menor a mayor (Ascending) del arreglo
numeros. Con un ciclo For Each se imprime los nmeros ordenados en la propiedad
Text del objeto txtordenado.
Se crea una variable llamada mayores, a la cual se le asigna una consulta que
obtiene todos los valores mayores de 40 del arreglo numeros. Con un ciclo For Each
se imprime los nmeros que cumplen la condicin en la propiedad Text del objeto
txtmayores.
Ejecutar el proyecto
285
13.4.3 Consultar una base de datos SQL Server con LINQ To SQL
Disear una aplicacin llamada ConsultaLinqToSQL, que permita visualizar todos los
registros de una tabla perteneciente a una base de datos SQL Server. Dichos datos se
deben mostrar en una cuadricula. Se debe utilizar el componente LINQ to SQL.
NOTA: para este ejemplo se utilizar la base de datos SQL Server llamada
bdlibrovbnet (Ver anexo A, SQL Server).
286
Agregar LINQ to SQL
Para agregar un objeto Clases LINQ to SQL puede realizar alguno de los siguientes
pasos:
1. Del men Proyecto seleccione Agregar nuevo elemento y busque la plantilla
Clases LINQ to SQL.
2. Del icono seleccionar Agregar nuevo elemento y busque la plantilla
Clases LINQ to SQL.
3. En el Explorador de soluciones situarse en el nombre del proyecto, dar clic
derecho, seleccionar la opcin Agregar nuevo elemento y busque la
plantilla Clases LINQ to SQL.
287
Figura 13.7 Ventana diseador relacional de objetos LINQ to SQL.
288
Figura 13.9 Ventana Agregar conexin.
289
se mostrar la siguiente ventana:
Escribir cdigo
Seleccione el objeto boton, d doble clic para abrir el editor de cdigo y escriba el
siguiente cdigo:
Dim vista As New MiLinqToSQLDataContext
Dim consulta = From misclientes In vista.clientes Select misclientes
cuadricula.DataSource = consulta
290
Ejecutar el proyecto
13.4.4 Operaciones con una tabla de una base de datos SQL Server
NOTA: para este ejemplo se utilizar la base de datos SQL Server llamada
bdlibrovbnet (Ver anexo A, SQL Server).
291
Button3 Name botoneliminar
Text Eliminar registro
Button4 Name botonnuevo
Text Nuevo registro
Button5 Name botonguardar
Text Guardar nuevo registro
Label1 Name lblcliente
Text Seleccione cliente:
Font - Bold True
Label2 Name lblnit
Text Nit:
Label3 Name lblempresa
Text Empresa:
Label4 Name lblrepresentante
Text Representante:
Label5 Name lblciudad
Text Ciudad:
Label6 Name lbldireccion
Text Direccin:
Label7 Name lbltelefono
Text Telfono:
Label8 Name lblregistros
Text Registros actuales de la tabla
Font - Bold True
TextBox1 Name txtnit
Enabled False
TextBox2 Name txtempresa
TextBox3 Name txtrepresentante
TextBox4 Name txtciudad
TextBox5 Name txtdireccion
TextBox6 Name txttelefono
ComboBox1 Name listaclientes
DataGridView1 Name cuadricula
Panel1 Name panel
Borderstyle FixedSingle
Form1 Name formulario
Text Operacin con una base de datos LINQ to SQL
292
Agregar LINQ to SQL
Del men Proyecto seleccione Agregar nuevo elemento y busque la plantilla Clases
LINQ to SQL, se visualizar la siguiente figura:
293
diseador, se debe observar una figura similar a la siguiente:
Figura 13.18 Diseador relacional de objetos con la tabla clientes.
294
Pulse sobre el link Agregar orgen de datos del proyecto, se mostrar el
Asistente para la configuracin de orgenes de datos.
295
Figura 13.23 Ventana para elegir los objetos de base de datos.
Al pulsar en el signo (+) al lado del texto Tablas se visualizarn las diferentes
tablas de la base de datos, d clic sobre la tabla clientes, adems cambie el Nombre de
DataSet por conjuntodedatos y pulse el botn Finalizar para volver a modo diseo:
296
Figura 13.24 Control listaclientes con los campos empresa y nit seleccionados.
Escribir cdigo
Se crea un procedimiento llamado datos que contiene una consulta de los datos
actuales de la tabla clientes, estos son asignados a la propiedad DataSource del objeto
DataGridView cuadricula.
297
Dim registroseleccionado As String = listaclientes.SelectedItem(0)
Dim consulta = From miregistro In vista.clientes
Where miregistro.nit = registroseleccionado
For Each campos In consulta
txtnit.Text = campos.nit
txtempresa.Text = campos.empresa
txtrepresentante.Text = campos.representante
txtciudad.Text = campos.ciudad
txtdireccion.Text = campos.direccion
txttelefono.Text = campos.telefono
Next
datos()
298
Utilizando el procedimiento SubmitChanges() se modifican los campos del registro
actual en la tabla. Si se pulsa el botn No se mostrar el mensaje Registro no
modificado.
299
.telefono = txttelefono.Text}
vista.clientes.InsertOnSubmit(nuevoregistro)
vista.SubmitChanges()
txtnit.Enabled = False
Catch ex As Exception
MsgBox("Error en el sistema")
End Try
Else
MsgBox("Registro no guardado", MsgBoxStyle.Information)
End If
datos()
Ejecutar el proyecto
300
13.4.5 Relacin entre dos tablas de una base de datos SQL Server
NOTA: para este ejemplo se utilizar la base de datos SQL Server llamada
bdlibrovbnet (Ver anexo A, SQL Server).
301
Agregar clase LINQ to SQL
Del men Proyecto seleccione Agregar nuevo elemento y busque la plantilla Clases
LINQ to SQL. En el cuadro de texto Nombre cambie el nombre por
DatosRelacionados.dbml, luego pulse el botn Agregar para visualizar un nuevo
objeto de datos relacionales LINQ to SQL.
En la lista del explorador de soluciones aparece un nuevo archivo con el nombre
asignado. Se obtendr la siguiente figura:
Figura 13.28 Diseador relacional de objetos con las tablas clientes y pedidos.
302
En el formulario seleccione el control ComboBox listaclientes para adicionar
los nombre de las empresas de la tabla clientes para ello d clic sobre la flecha superior
derecha de dicho objeto para ver las Tareas de ComboBox. D clic sobre el cuadro de
verificacin Utilizar elementos enlazados a datos y escoja la opcin orgen de datos.
303
Figura 13.31 Ventana para elegir los objetos de base de datos.
Escribir cdigo
Seleccione el objeto botonbuscar, d doble clic para abrir el editor de cdigo y escriba
el siguiente cdigo:
304
Dim vista As New DatosRelacionadosDataContext
Dim empresaseleccionada As String = listaclientes.SelectedItem(0)
Dim consultajoin = From misclientes In vista.clientes _
Join mispedidos In vista.pedidos _
On misclientes.nit Equals mispedidos.nit _
Where mispedidos.nit = empresaseleccionada _
Select mispedidos.nit, misclientes.ciudad, misclientes.representante,
mispedidos.nropedido, mispedidos.fechaentrega,
mispedidos.observacion
cuadricula.DataSource = consultajoin
Ejecutar el proyecto
305
13.4.6 Relacin tablas con LINQ to SQL y DataGridView
NOTA: para este ejemplo se utilizar la base de datos SQL Server llamada
bdlibrovbnet (Ver anexo A, SQL Server).
Del men Proyecto seleccione Agregar nuevo elemento y busque la plantilla Clases
LINQ to SQL. En el cuadro de texto Nombre cambie el nombre por
DatosDataGridView.dbml.
306
Pulse el link Explorador de servidores del diseador relacional de objetos y
adicione la base de datos bdlibrovbnet.mdf y arrastre las tablas clientes y pedidos
hacia el diseador, se debe observar una figura similar a la siguiente:
Figura 13.36 Diseador relacional de objetos con las tablas clientes y pedidos.
307
Figura 13.38 Ventana para configurar orgen de datos.
4. Seleccione el icono Objeto y pulse el botn Siguiente para ver la ventana de eleccin
del objeto a enlazar.
308
Al tener el orgen de datos, seleccione el formulario y d clic sobre el objeto
clientes del orgen de datos y arrstrelo hacia el formulario. Se obtendr la siguiente
figura:
309
Escribir cdigo
ClientesBindingSource.DataSource = vistadatos.clientes
Ejecutar el proyecto
310
13.4.7 Consulta LINQ to DataSet
NOTA: para este ejemplo se utilizar la base de datos SQL Server llamada
bdlibrovbnet (Ver anexo A, SQL Server).
311
Escribir cdigo
Seleccione el objeto formulario, d doble clic para abrir el editor del procedimiento
Formulario_Load y escriba el siguiente cdigo:
Se crea una variable llamada conexion de tipo String que contendr la cadena
de conexin a la base de datos de SQL Server. La cadena de conexin contiene el orgen
de datos (Data Source), el nombre de la base de datos SQL Server (DataBase) y la
seguridad integrada (True
Dim cargarclientes As New SqlClient.SqlDataAdapter("SELECT * FROM clientes",
conexion)
Dim comandoclientes As New SqlClient.SqlCommandBuilder(cargarclientes)
Dim conjuntodedatos As New DataSet()
cargarclientes.Fill(conjuntodedatos, "clientes")
Dim cargarpedidos As New SqlClient.SqlDataAdapter("SELECT * FROM
pedidos",conexion)
Dim comandopedidos As New SqlClient.SqlCommandBuilder(cargarpedidos)
cargarpedidos.Fill(conjuntodedatos, "pedidos")
312
.representante = filaclientes.Field(Of String)("representante"), _
.fechaentrega = filapedidos.Field(Of String)("fechaentrega"), _
.observacion = filapedidos.Field(Of String)("observacion") _
}
tablasrelacionadas.DataSource = consultalinqdataset.ToList
Se crea una consulta combinada con la clausula Join que realiza la relacion de las
tablas clientes, pedidos por el campo comn nit (Equals), con la condicion (where) de
que el nit sea igual a 100, adems, se seleccionan (Select New With) los campos de las
dos tablas que se quieren mostrar. Por ltimo se asigna a la propiedad DataSource del
objeto tablasrelacionadas el resultado de la consulta (consultalinqdataset). Se utiliza
la funcin AsEnumerable para obtener una coleccin de todas las filas de los datos,
como tambin la funcin Field para el especificar el tipo de dato de las columnas de
cada fila.
Ejecutar el proyecto
313
13.5 Ejercicios de consulta LINQ
1. Crear un programa que permita realizar una conexin a una base de datos y
mostrar datos de una tabla utilizando una consulta LINQ.
2. Elaborar un programa que permita realizar una consulta que permita eliminar los
registros cuyo nit sea mayor que 500.
3. Escribir un programa que permita por medio de una consulta visualizar los
registros de una tabla cuyo nombre de empresa empiecen por la letra C.
4. Disear un programa que permita con una consulta visualizar los nombre de los
productos de la tabla productos en un control DataGridView.
5. Hacer un programa que permita visualizar una consulta de la tabla clientes
ordenada por un campo de dicha tabla especificada por un usuario.
6. Realizar un programa que permita visualizar en una consulta los registros
relacionados de las tablas clientes y pedidos cuya fecha de entrega sea igual o
mayor que 02/23/2008.
7. Hacer un programa que permita visualizar en una consulta los registros
relacionados de las tablas clientes cuya fecha de vencimiento sea el mes de
agosto.
8. Realizar un programa que permita visualizar en una consulta todos los productos
cuyo valor sea mayor que 5000.
9. Realizar un programa que permita visualizar en una consulta la relacin entre
tres tablas de una base de datos en SQL Server.
10. Hacer un programa que permita visualizar en una consulta todos los pedidos que
tengan ms de tres productos.
314
14. APLICACIONES WEB ASP.NET
315
explorador, telfonos mviles, etc...
Para iniciar un nuevo sitio Web desde la pgina de inicio de Visual Studio 2008, se
puede realizar uno de los siguientes pasos:
Al escoger una de las dos opciones se visualizar la ventana Nuevo sitio Web,
donde se deber seleccionar la plantilla SitioWeb ASP.NET.
316
Figura 14.2 Ventana Nuevo sitio Web ASP.NET.
317
Como se puede apreciar, el entorno de desarrollo es parecido al entorno de las
aplicaciones Windows Forms. En l encontrar:
Para crear la interfaz de usuario del sitio Web, en primer lugar se deben ubicar los
controles necesarios en el formulario Web desde el cuadro de herramientas. Para el
ejemplo se diseara la interfaz de usuario utilizando los siguientes controles: 7 Label, 3
TextBox, 1 ListBox 1 DropDownList, 2 Button y 1 GridView (ficha datos).
Cuando existen varios controles del mismo tipo, estos se numeran en el mismo
orden en que son colocados (nombre del control ms numero del consecutivo). La
interfaz inicial de usuario del ejemplo debera mostrar el siguiente aspecto:
318
Figura 14.4 Interfaz de usuario inicial sitio Web PedidoWeb.
Despus de colocar los controles u objetos a un formulario Web, se puede establecer sus
propiedades en la ventana Propiedades o en el Editor de cdigo.
Para modificar las propiedades se selecciona el control en el formulario Web y
se cambia su configuracin en la ventana Propiedades. Para el caso del ejemplo
establezca las siguientes modificaciones a cada uno de los siguientes controles:
Tabla 14.1 Propiedades de los controles del sitio PedidoWeb.
319
AutoPostBack True
DropDownList1 ID listabebida
AutoPostBack True
Button1 ID botoncomida
Text Adicionar Comida
Button2 ID botonbebida
Text Adicionar Bebida
GridView1 ID tablapedido
Form1 ID formulario
Document Title Restaurante la FRIKY
Default.aspx Nombre del archivo pagina.aspx
320
Luego seleccione el control DropDownList llamado listabebida, d clic en la
flecha de la parte superior derecha del control para ver las Tareas de DropDownList y
escoja la opcin Editar Elementos para ver la ventana Editor de la coleccin
ListItem y adicione de la misma forma los siguientes elementos de la misma forma
como se hizo en el control listacomida: Cerveza, Jugo, Limonada, Vino, Gaseosa.
321
seleccinelo y d clic en la flecha de la parte superior derecha del control para ver las
Tareas de GridView y escoja la opcin formato automtico para ver la ventana
Autoformato y elija el formato que desee. Para el ejemplo, se escogi el formato
Multicolor.
Una vez se hayan establecido las propiedades del formulario Web y sus objetos, se
puede agregar el cdigo que se ejecutar en respuesta a un evento especifico de cada
control.
3. D doble clic en el objeto ListBox llamado listacomida, para abrir el editor del
procedimiento listacomida_SelectedIndexChanged y escriba el siguiente
cdigo:
If listacomida.SelectedIndex = 0 Then
valor = 10000
End If
If listacomida.SelectedIndex = 1 Then
valor = 13000
End If
If listacomida.SelectedIndex = 2 Then
valor = 8000
End If
If listacomida.SelectedIndex = 3 Then
valor = 9000
End If
322
If listacomida.SelectedIndex = 3 Then
valor = 12000
End If
If listabebida.SelectedIndex = 0 Then
valor = 3000
End If
If listabebida.SelectedIndex = 1 Then
valor = 2000
End If
If listacomida.SelectedIndex = 2 Then
valor = 1800
End If
If listabebida.SelectedIndex = 3 Then
valor = 4000
End If
If listabebida.SelectedIndex = 3 Then
valor = 1500
End If
5. D doble clic en el objeto Button llamado botoncomida, para abrir el editor del
procedimiento botoncomida_Click y escriba el siguiente cdigo:
323
txtiva.Text = Val(txtsubtotal.Text) * 0.16
txttotal.Text = Val(txtsubtotal.Text) + Val(txtiva.Text)
6. D doble clic en el objeto Button llamado botonbebida, para abrir el editor del
procedimiento botoncomida_Click y escriba el siguiente cdigo:
324
14.1.5 Ejecutar la aplicacin Web
325
Al seleccionar como comida Arroz con Pollo y Ajiaco y como bebida Vino y
Cerveza, se visualiza la siguiente figura:
Para cerrar el sitio Web PedidoWeb o cualquier otro sitio web, estando en modo diseo
se pueden realizar los siguientes pasos:
La mayora de los controles del cuadro de herramientas son similares a los trabajados en
las aplicaciones Windows Forms, en el ejemplo anterior se utilizaron los objetos Label,
TextBox, Button, ListBox, DropDownList (ComboBox en Windows Forms) y
GridView (DataGridView en Windows Forms) y como se puede apreciar, el diseo y
la programacin son muy similares. En este captulo se realizar una descripcin breve
326
y un ejemplo prctico de los siguientes controles: CheckBoxList, ImageMap,
BulletedList, RadioButtonList, HyperLink, MultiView, View y los controles de
validacin: RequiredFieldValidator, RangeValidator, CompareValidator,
CustomValidator, RegularExpressionValidator, ValidationSummary.
327
obtener la siguiente figura:
Escribir cdigo
D doble clic en el objeto CheckBoxList llamado listafrutas, para abrir el editor del
328
procedimiento listafrutas_SelectedIndexChanged y escriba el siguiente cdigo:
listafrutasseleccionadas.SelectionMode = ListSelectionMode.Multiple
listafrutasseleccionadas.Items.Clear()
Dim i As Integer
For i = 0 To listafrutas.Items.Count - 1
If listafrutas.Items(i).Selected = True Then
listafrutasseleccionadas.Items.Add(listafrutas.Items(i).Text)
End If
Next
Ejecutar la aplicacin
Un control ImageMap permite que en una imagen se puedan crear zonas activas,
que pueden ser seleccionadas al hacer clic con el mouse. Est formado por dos
329
elementos: El primero es una imagen como un archivo .gif, .jpg, .png, .bmp, etc.; El
segundo es una coleccin de zonas activas, donde cada zona puede ser definida como un
crculo, un rectngulo o un polgono y unas coordenadas que especifican la ubicacin y
el tamao de la zona activa. Cada zona activa puede ser un hipervnculo o un evento que
devuelve informacin.
330
Figura 14.15 Editor de la coleccin HotSpot.
Realice la misma operacin para agregar tres nuevas zonas activas a la imagen,
con los siguientes valores en la respectiva propiedad.
331
Tabla 14.4 Propiedades de zonas activas.
Zonas Propiedades
Bottom Left Right Top HotSpotMode PostBackValue
Segunda 100 100 200 0 PostBack imagen_robot
Tercera 200 0 100 100 PostBack imagen_celular
Cuarta 200 100 200 100 PostBack imagen_bicicleta
332
Escribir cdigo
D doble clic en el objeto ImageMap llamado mapa_imagen, para abrir el editor del
procedimiento mapa_imagen_Click y escriba el siguiente cdigo:
Ejecutar la aplicacin
333
las propiedades: Text y Value. Text detalla lo que el control va a mostrar en la pgina.
Value devuelve un valor deseado al seleccionar un elemento. Este control responde al
evento clic para devolver datos del servidor.
334
Adems agregue los siguientes elementos:
Propiedades
Text Value
MICROSOFT http://www.microsoft.com
GOOGLE http://www.google.com
JAVA http://www.java.sun
Por ltimo pulse el botn Aceptar. La interfaz de usuario con las modificaciones
respectivas en las propiedades de cada control queda como se muestra en la siguiente
figura:
335
Ejecutar la aplicacin
336
14.2.4 Control RadioButtonList
337
Figura 14.25 Editor de la coleccin ListItem con un elemento agregado.
Propiedades
Text Value
Microsoft http://www.microsoft.com
Google http://www.google.com
Java http://www.java.sun
Por ltimo pulse el botn Aceptar. La interfaz de usuario con las modificaciones
respectivas en las propiedades de cada control queda como se muestra en la siguiente
figura:
338
Figura 14.27 Interfaz de usuario final aplicacin ControlRadioButtonList.
Escribir cdigo
Dim i As Integer
For i = 0 To listapaginas.Items.Count - 1
If listapaginas.Items(i).Selected = True Then
hipertexto.NavigateUrl = listapaginas.Items(i).Value
hipertexto.Text = listapaginas.Items(i).Value
End If
Next
Con un ciclo For se leen cada uno de los elementos del objeto listapaginas y al
encontrar el elemento que est seleccionado se asigna a la propiedad Text del objeto
hipertexto el texto de la propiedad Value del objeto listapaginas, como tambin se le
adiciona dicho valor a la propiedad NavigateUrl.
Ejecutar la aplicacin
339
Figura 14.28 Ejecucin de la aplicacin ControlRadioButtonList.
340
14.2.5.1 Ejemplo prctico control MultiView
b) Agregue cuatro (4) controles View y establezca las siguientes propiedades a los
controles:
341
Tabla 14.9 Propiedades de los controles View.
342
Figura 14.32 Interfaz del objeto primeravista.
343
Tabla 14.12 Propiedades de los controles del objeto terceravista.
344
Escribir cdigo
Dim i As Integer
lblresultado.Text = "Los deportes que prcticas son:<br>"
For i = 0 To listadeportes.Items.Count - 1
If listadeportes.Items.Item(i).Selected Then
lblresultado.Text = lblresultado.Text & "<br>" & listadeportes.Items.Item(i).Value
End If
Next
multiplesvistas.ActiveViewIndex = 1
Con un ciclo For se leen cada uno de los elementos del objeto listadeportes y
aquel elemento que este seleccionado se adiciona al objeto lblresultado. Con la
propiedad ActiveViewIndex se activa la segunda vista.
Dim i As Integer
lblresultado.Text = lblresultado.Text & "<br><br>Lo prcticas por:<br>"
For i = 0 To listapractica.Items.Count - 1
If listapractica.Items.Item(i).Selected Then
lblresultado.Text = lblresultado.Text & "<br>" & listapractica.Items.Item(i).Value
End If
Next
multiplesvistas.ActiveViewIndex = 2
Con un ciclo For se leen cada uno de los elementos del objeto listapractica y
aquel elemento que est seleccionado se adiciona al objeto lblresultado. Con la
propiedad ActiveViewIndex se activa la tercera vista.
345
d) D doble clic en el objeto Button llamado botonterminar del objeto
terceravista, para abrir el editor del procedimiento botonterminar_Click y
escriba el siguiente cdigo:
Dim i As Integer
lblresultado.Text = lblresultado.Text & "<br><br>En la semana lo prcticas:<br>"
For i = 0 To listasemana.Items.Count - 1
If listasemana.Items.Item(i).Selected Then
lblresultado.Text = lblresultado.Text & "<br>" & listasemana.Items.Item(i).Value
End If
Next
multiplesvistas.ActiveViewIndex = 3
Con un ciclo For se leen cada uno de los elementos del objeto listasemana y
aquel elemento que est seleccionado se adiciona al objeto lblresultado. Con la
propiedad ActiveViewIndex se activa la cuartavista.
Ejecutar la aplicacin
346
Seleccione los deportes Baloncesto, Ciclismo y pulse el botn Siguiente para
visualizar la siguiente figura:
347
14.3 Controles para validar datos
En el cuadro de herramientas de una aplicacin Web Asp.NET existe una ficha llamada
Validacion que contiene controles que sirven para validar informacin, es decir, que los
datos proporcionados en un control sean correctos de acuerdo a la informacin
solicitada. Como ejemplo de validacin puede ser dejar en blanco un campo obligatorio,
escribir una contrasea dos veces no coincidentes, teclear un valor en un rango no
especificado. Los tipos de controles de validacin son:
348
Tabla 12.14 Propiedades controles de la aplicacin Controles_de_Validacion.
349
Escribir cdigo
a) D doble clic sobre la pgina Web, para abrir el editor del procedimiento
Page_load y escriba el siguiente cdigo:
350
ElseIf (args.Value = "U") Then
args.IsValid = True
ElseIf (args.Value = "V") Then
args.IsValid = True
Else
args.IsValid = False
End If
Ejecutar la aplicacin
Como se puede apreciar, se muestran los mensajes de error en cada campo validado por
el respectivo control de validacin. Si por el contrario se escriben los siguientes valores:
Cristian Vanegas, 8, S, 123456, cavm10@hot.com y se puls el botn Enviar, se
obtendra la pgina sin mensajes de error.
351
Figura 14.42 Ejecucin Controles_de_Validacion con datos correctos.
352
15. ACCESO A BASES DE DATOS CON ASP.NET
Con las aplicaciones Web tambin es posible mostrar informacin de una base de datos.
En el captulo 12 se hizo una breve descripcin sobre bases de datos, el lenguaje de
consulta estructurado S.Q.L., conceptos que se pueden aplicar en los sitios Web
ASP.NET. En dicho captulo se crearon aplicaciones Windows Forms donde se trabajo
con la base de datos SQL Server y se realiz la conexin a dicha base de datos, se
consult y se realizarn operaciones con los registros de una o ms tablas de la base de
datos, como tambin se diseo un informe de los registros de una tabla.
ASP.NET contiene controles que permiten realizar operaciones con los orgenes de
datos que administran las tareas que se pueden realizar con una base de datos. Estos no
representan ningna interfaz de usuario, sino que actan como intermediarios entre los
datos y los dems controles de la pgina Web ASP.NET. Dichos controles habilitan un
amplio conjunto de funciones para recuperar y modificar datos, entre las que se incluyen
la conexin, consulta, actualizacin, eliminacin y la insercin. ASP.NET incluye los
siguientes:
Control descripcin
OleDbDataAdapter Adaptador de datos para una base de datos Access.
SqlDbDataAdapter Adaptador de datos para una base de datos SQL.
OracleDbDataAdapter Adaptador de datos para una base de datos Oracle.
DataSet Representa un conjunto de datos en memoria.
DataView Representa una vista para enlazar datos.
SqlDataSource Conecta base de datos SQL Server, Oracle u OLEDB
AccesDataSource Conecta una base de datos Access de Microsoft.
XmlDataSource Conecta con un archivo XML.
353
NOTA: para este ejemplo el usuario tiene que tener instalado Microsoft SQL
SERVER 2005 o posterior y crear una base de datos llamada bdlibrovbnet y dentro de
ella una tabla llamada clientes (Ver anexo A, SQL Server).
354
Escribir cdigo
b) D doble clic sobre el objeto boton para abrir el editor de cdigo del
procedimiento boton_Click y escriba el siguiente cdigo:
355
tabladedatos se le asigna espacio de memoria de tipo DataTable para guardar los datos
en memoria y poder realizar operaciones con dichos datos. En un bloque Try se le
asigna espacio de memoria de tipo SqlDataAdapter al objeto adaptadordedatos, al
cual se le enva como parmetros los objetos seleccion (datos a mostrar) y conexion
(cadena de conexin), luego se rellena (fill) el adaptador de datos con la tabla de datos
(tabladedatos); al objeto cuadriculadatos en su propiedad DataSource se le establece
el conjunto de datos que se van a mostrar al asignrsele la tabla de datos, por otro lado,
se enlaza al objeto cuadriculadatos el orgen de datos (DataBind()) y por ltimo se
establece a la propiedad Text del objeto lblnumeroregistros el texto actual del objeto
unido al nmero total de registros que contenga la tabla (tabladedatos.Rows.Count).
Por el bloque Catch se establece un mensaje en caso de que ocurra un error de
conexin.
Ejecutar la aplicacin
356
15.2.2 Conexin a una base de datos con un control GridView
NOTA: para este ejemplo el usuario tiene que tener instalado Microsoft SQL
SERVER 2005 o posterior y tener creada la base de datos llamada bdlibrovbnet con
sus respectivas tablas. (Ver anexo A, SQL Server).
357
Figura 15.5 Asistente para la configuracin de orgenes de datos.
Escoja el objeto Base de datos y especifique como nombre del identificador del
orgen de datos orgendedatos y pulse el botn Aceptar, para visualizar la ventana de
eleccin de la conexin de datos.
Pulse el botn Nueva conexin para ver la ventana de Agregar conexin, all
d clic sobre el botn Examinar y busque la base de datos bdlibrovbnet.mdf. Se
obtendr la siguiente figura:
358
Figura 15.7 Ventana Agregar conexin con la base de datos seleccionada.
359
Figura 15.9 Ventana Guardar cadena de conexin.
360
Figura 15.11 Ventana Consulta de prueba.
361
Ejecutar la aplicacin
362
NOTA: para este ejemplo el usuario tiene que tener instalado Microsoft SQL
SERVER 2005 o posterior y tener creada la base de datos llamada bdlibrovbnet con
sus respectivas tablas. (Ver anexo A, SQL Server).
Explorador de servidores
363
Figura 15.17 Ventana Agregar conexin con la base de datos bdlibrovbnet.mdf.
364
Figura 15.19 Ventana de las Tareas de FormView.
|Escoja el objeto Base de datos y especifique como nombre del identificador del
orgen de datos conexiondedatos y pulse el botn Aceptar para visualizar la ventana de
Elegir la conexin de datos. De la lista que all aparece escoja la base de datos
bdlibrovbnet.mdf. La ventana quedara de la siguiente forma:
365
Figura 15.21 Ventana Elegir la conexin de datos.
366
Figura 15.23 Ventana Configurar la instruccin Select.
367
Seleccione el esquema Multicolor y pulse el botn Aceptar. La interfaz de
usuario queda como se muestra en la siguiente figura:
Ejecutar la aplicacin
368
15.2.4 Insertar un registro en una tabla
Establecer la conexin
369
Figura 15.29 Ventana para elegir el orgen de datos.
370
Figura 15.31. Ventana Guardar cadena de conexin.
Por otro lado, pulse el botn Avanzadas para ver la ventana de opciones de
generacin de consultas SQL avanzadas. Active las opciones Generar instrucciones
Insert, Update y Delete y Usar concurrencia optimista. Se obtendr la siguiente
figura:
371
Figura 15.33 Opciones de generacin SQL avanzadas.
372
Figura 15.35 Interfaz de usuario InsertarRegistrosWeb.
Ejecutar la aplicacin
Al pulsarse el link Nuevo los campos de texto del objeto vistadatos quedaran en
blanco y se observaran dos nuevos link Insertar y Cancelar, como se aprecia en la
figura.
373
Figura 15.37 Formulario Web para insertar un registro en la tabla.
Registro insertado
374
15.2.5 Modificar un registro de una tabla
Establecer la conexin
375
Ahora d clic sobre la opcin Editar campos para visualizar la ventana
Campos. En la ventana Campos seleccionados escoja el objeto Editar, Actualizar,
Cancelar y en la ventana Propiedades de CommandField busque la propiedad
ButtonType y escoja de la lista la opcin Button.
376
Ejecutar la aplicacin
Con los link numricos busque el registro que se inserto en el ejemplo anterior y
pulse el botn Editar. Se observaran dos nuevos botones Actualizar y Cancelar.
Modifique el contenido del campo empresa por el texto Las acacias.
377
Figura 15.45 Registro modificado de la tabla clientes.
Establecer la conexin
378
Figura 15.46 Ventana diseo sitio Web EliminarRegistrosWeb.
379
Figura 15.48 Interfaz de usuario EliminarRegistrosWeb.
Ejecutar la aplicacin
380
Figura 15.50 Formulario Web con el registro a ser eliminado.
Figura 15.51 Formulario Web al ser eliminado el registro con nit 20000.
381
15.2.7 Filtrar registros de una tabla
Establecer la conexin
382
Figura 15.54 Ventana para elegir el orgen de datos.
383
Figura 15.56 Ventana Guardar cadena de conexin.
Por otro lado, pulse el botn WHERE para ver la ventana Agregar clusula
WHERE. Realice lo siguiente: de la lista Columna escoja el campo nit; de la lista
Operador seleccione el operador >=; de la lista Orgen el texto None; y en las
propiedades del parmetro el valor 500. Se obtendr la siguiente figura:
384
Figura 15.58 Agregar clusula WHERE.
385
Figura 15.60 Ventana diseo sitio Web FiltrarRegistrosWeb.
386
La interfaz de usuario queda como se muestra en la siguiente figura:
Ejecutar la aplicacin
387
15.2.8 Informe de los registro de una tabla
Elaborar un sitio Web llamado InformeRegistrosWeb que permita visualizar todos los
registros de la tabla clientes de la base de datos bdlibrovbnet.mdf.
Para seleccionar la tabla y disear el informe, pulse la flecha del lado superior derecha
del objeto informeregistros para ver la ventana Tareas de ReportViewer y escoga la
opcin Disear nuevo informe.
388
Figura 15.66 Seleccin Tareas de ReportViewer Disear nuevo informe.
389
Figura 15.68 Ventana Elegir la conexin de datos.
390
Cambie el nombre de la conexin que all aparece por conexioninforme y pulse
el botn Siguiente>. Se visualizar la ventana elija los objetos de base de datos. Pulse el
signo (+) al lado de Tablas para desplegar las tablas de la base de datos y seleccione la
tabla clientes. Por otro lado, cambie el nombre del DataSet que all aparece por
conjuntodedatos.
391
D clic en Siguiente> para visualizar la ventana de seleccin de tipo de
informe. Seleccione la opcin Tabular.
392
Pulse el botn Siguiente> para visualizar la ventana Elegir el diseo de la
tabla. Seleccione la opcin Escalonado.
393
Pulse el botn Siguiente> para visualizar la ventana Finalizacin del asistente
de informes. En el campo Nombre del informe escriba el texto
informe_registros_clientes.
394
Figura 15.79 Ventana con el informe informe_registros_clientes elegido.
Al ejecutarse el sitio Web, se visualizar la pgina con el informe de los registros que
contiene la tabla clientes. Puede ajustar el tamao del reporte en la pgina en modo de
diseo.
Figura 15.80 Pgina Web con el informe de los registros de la tabla clientes.
395
15.2.9 Visualizar los registros de dos tablas relacionadas
396
Establecer la conexin
397
Pulse el botn Aceptar. Se visualizar la ventana Elegir la conexin de datos.
Realice la conexin de datos de la base de datos bdlibrovbnet.mdf. Se obtendr la
siguiente figura:
398
Pulse el botn Siguiente para visualizar la ventana de Configurar la
instruccin Select. Seleccione la tabla Clientes y en la pestaa Columnas pulse el
cuadro de verificacin *.
399
Pulse el botn Aceptar para volver a modo diseo. Ahora seleccione el objeto
datospedidos y pulse en la flecha de la parte superior derecha para ver las Tareas de
GridView. Escoja la opcin Elegir origen de datos y seleccione <Nuevo origen de
datos>. Se visualizar la ventana Elija un tipo de origen de datos, all seleccione el
objeto Base de datos y cambie el identificador para el origen de datos por
conexionpedidos.
400
D clic en el botn Siguiente para ver la ventana Guardar la cadena de
conexin. Cambie el nombre de la cadena de conexin por cadenapedidos, se obtendr
la siguiente figura:
401
A continuacin pulse el botn WHERE para visualizar la ventana de Agregar
clusula WHERE.Y realice lo siguiente: de la lista Columna escoja el campo nit; de la
lista Operador seleccione el operador =; de la lista Orgen Control; y en las
propiedades del parmetro en Id. De control seleccione listaempresas. Se obtendr la
siguiente figura:
402
Pulse el botn Aceptar para ver nuevamente la ventana Configurar instruccin
Select. En dicha ventana pulse el botn Siguiente para ver la ventana de Consulta de
prueba. Por ltimo pulse el botn Finalizar para volver a modo diseo.
403
15.3 Ejercicios bases de datos con ASP.NET
1. Crear un sitio Web que permita realizar una conexin a una base de datos y
mostrar datos de una tabla en un control Repeater
2. Elaborar un sitio Web que permita realizar una conexin a una base de datos y
actualizar un campo nmerico por el valor actual ms 100000.
3. Escribir un sitio Web que permita visualizar los registros de una tabla en campos
de texto. El usuario deber poderse desplazar por cada registro de la tabla
utilizando los botones: Primero, Siguiente, Anterior y ltimo.
4. Disear un sitio Web que permita visualizar los registros de una tabla en un
control ListView. El usuario deber visualizar cinco registros por cada pgina
utilizando los botones: Primero, Siguiente, Anterior y ltimo.
5. Hacer un sitio Web que permita escribir sentencias SQL en un campo de texto y
visualizar los resultados de dicha sentencia en un GridView.
6. Realizar un sitio Web que permita visualizar los registros de dos tablas
relacionadas donde la ciudad sea igual a Cali.
7. Hacer un sitio Web que permita visualizar un informe de los registros de una
tabla cuyas empresas empiecen por la silaba CA.
8. Realizar un sitio Web que permita hacer una conexin a una base de datos y
visualizar los registros cuyo nit sea mayor que 300 y menor que 700 en un
ListView.
9. Realizar un sitio Web que permita realizar una relacin entre tres tablas de una
base de datos en SQL Server.
10. Hacer un sitio Web que permita visualizar en un informe los registros de una
relacin de dos tablas.
404
16. SERVICIOS WEB
Para habilitar un servicio web con ASP.NET de debe crear un archivo con una
extensin de nombre de archivo .asmx, declarar un servicio web en ese archivo y
definir los mtodos de los servicios web.
Desde la pgina de inicio de Microsoft Visual Studio cree un nuevo proyecto, puede
seguir los siguientes pasos:
405
2. Hacer clic en la opcin Archivo del men y seleccionar Nuevo sitio Web
Figura 16.1 Ventana para crear un servicio Web desde Visual Basic.NET.
406
D clic sobre el icono IIS local y en la ventana derecha seleccione el objeto
Sitio web predeterminado. Se observar la siguiente figura:
407
Figura 16.5 Nuevo sitio web con la ubicacin del servicio Web.
408
Escribir cdigo en el servicio Web
El cdigo ser la interfaz del servicio Web a los que un usuario tendr acceso desde una
aplicacin Web. Entre Class y End Class se deben declarar cada uno de los
procedimientos que utilizar el servicio Web para realizar una tarea especfica. Los
procedimientos de un servicio Web se estructuran de la siguiente manera:
<WebMethod ()>: Entre los parntesis se puede hacer un comentario del servicio Web,
<WebMethod (Description:=Servicio Web para consultar una base de datos)>
409
Ejecutar el Servicio Web
410
En el campo de texto escriba el nmero 7 y d clic en el botn Invocar para
realizar el proceso del procedimiento numerosprimos.
411
Tabla 16.1 Propiedades de controles del sitio Web NumerosPrimosWeb.
Para agregar el servicio Web a la aplicacin Web seleccione el men Sitio Web y
escoja la opcin Agregar referencia Web, se obtendr la siguiente ventana:
412
Figura 16.12 Ventana para agregar un servicio Web.
D clic sobre el link Servicios web del equipo local, se visualizar una ventana
similar a la siguiente figura (depende de los servicios que tenga el equipo local):
Figura 16.13 Ventana para seleccionar un servicio Web del equipo local.
En este caso pulse el segundo link Service, el cual tiene una URL
http://localhost:8081/ServicioWebNumerosPrimos/Serv... Se obtendr la siguiente
figura:
413
Figura 16.14 Funciones del servicio Web.
En esta ventana se muestran todas las funciones que tiene el servicio Web
ServicioWebNumerosPrimos. En el campo Nombre de referencia Web aparece por
omisin el texto localhost (cmbielo si desea), pulse el botn Agregar referencia para
volver a la pgina Web. En el Explorador de soluciones se podr visualizar el servicio
Web integrado al proyecto
Escribir cdigo
D doble clic sobre el objeto boton para abrir el editor de cdigo del procedimiento
boton_Click y escriba el siguiente cdigo:
414
Dim servicio As New localhost.Service
txtresultado.Text = servicio.numerosprimos(txtnumero.Text)
415
NDICE
416
From, 278 MonthCalendar, 145
FROM, 224 MouseClick, 188
FromArgb, 104 MouseDoubleClick, 188
Funciones de cadenas de caracteres, 72 MouseDown, 188
Funciones Matemticas, 69 MouseEnter, 188
Function, 61 MouseHover, 188
GetItemChecked, 148 MouseLeave, 188
GraphicsPath, 169 MouseMove, 188
GROUP, 224 MouseUp, 188
Group By, 279 MouseWheel, 188
HAVING, 224 movenext, 127, 128
Height, 175 MultiView, 342
Herencia, 198, 201 NamesSpace, 410
HotSpotMode, 332 Not, 33
If (operador)., 39 NOT, 225
IIF., 39 Objetos, 198
ImageMap, 331 OleDataAdapter, 231
IN, 225 OleDbCommand, 231
IndexOf, 73 OleDbConnection, 231
InitialDirectory, 137 OleDbDataAdapter, 355
Insert, 73 Operadores de comparacin, 225
INSERT, 224 Operadores Lgicos, 33
Integrated, 10 Operadores lgicos S.Q.L, 224
Integrated Security, 233, 357 Operadores Relacionales, 32
Join, 279 Or, 33
KeyCode, 194 OR, 225
KeyDown, 193 OracleCommand, 231
KeyPress, 193 OracleConnection, 231
KeyUp, 193 OracleDataAdapter, 231
Left, 172 OracleDbDataAdapter, 355
Len, 73 ORDER, 224
Length, 72 Order By, 279
Lenguaje de Consulta Estructurado, 223, OrElse, 33
225, 229 Orientada a objetos, 223
LIKE, 225 origen de datos, 354
LinkLabel., 91 Palabras clave, 36
LINQ, 278 Paste, 139
LINQ to DataSet, 278 Pie, 163
LINQ to Objects, 278 Point, 163
LINQ to SQL, 278 Poligono, 163
LINQ to XML, 278 Polimorfismo, 198
ListBox, 93 PostBack, 332
ListView, 107 PostBackValue, 332
Matrices, 78 pow, 69
Max, 69, 279 private, 199
MAX, 226 Probar la conexin, 235
MaximumValue, 352 Procedimientos, 61
MDI, 130 Programacin Orientada a Objetos, 198
Mensaje, 198 Propiedad, 198
Men principal, 15, 319 protected, 199
men Ventana, 153 public, 199
Mens, 130 Punto, 163
Mtodo, 198 RadioButton, 99
Mid, 73 RadioButtonList, 338
min, 69 RangeValidator, 350
Min, 280 ReadtoEnd, 138
MIN, 226 Recta, 163
MinimumValue, 352 Rectangle, 163
Modificar la cadena de conexin:, 235 Rectangulo, 163
Mdulos, 59 Redo, 139
417
RegularExpressionValidator, 350 System.Linq, 278
Remove, 73 TableAdapter, 246
Replace, 73 tan, 69
RequiredFieldValidator, 350 Timer, 172
RichTextBox, 115 Tipos de datos, 26
round, 69 TocharArray, 73
RowFilter, 276 ToLower, 72
SDI, 130 Toma de desiciones, 37
Select, 278 Top, 172
SELECT, 224, 227 ToUpper, 72
Select case (Seleccionar caso), 42 TrackBar, 102
SelectedItem, 255, 256 TreeView, 118
SelectedValue, 276 Trim, 73
SelectionBullet, 141 Try-Catch, 117
Sentencia If (Si), 37 tuplas, 223
Sentencia If- Else (Si - Sino), 38 Undo, 139
Sentencias bsicas S.Q.L, 226 UPDATE, 224
servicio web, 407 Val, 31
sin, 69 ValidationExpression, 352
SOAP, 407 ValidationSummary, 350
Sobrecarga, 200 ValidationType, 352
Split, 73 ValueMember, 276
SqlCommand, 231 ValueToCompare, 352
SqlConnection, 231 variable, 25
SqlDataAdapter, 231 Ventana de depuracin de errores, 19, 320
SqlDataSource, 355 Ventana de propiedades, 18, 320
SqlDbDataAdapter, 355 View, 342
sqrt, 69 Visual Basic .NET, 10
Str, 31 Visual Studio .NET, 10
StreamWriter, 137 VScrollBar, 102
String.Copy, 73 WebBrowse, 125
StrReverse, 73 Where, 279
Sub, 61 WHERE, 224
SubString, 73 While, 48
Sum, 280 Width, 175
SUM, 225 Windows Authentication, 422
System.Data.SqlClient, 232, 356 XmlDataSource, 355
System.Drawing, 162 Xor, 33
418
BIBLIOGRAFA
INFOGRAFA
http://www.elquintero.net/Manuales.aspx?Cat=2&SubCat=6&jscript=true
http://www.willydev.net/descargas/Cursos/vbnet/index.html
http://www.dotnetspider.com/tutorials/AspNet-Tutorials.aspx
http://www.programacionfacil.com/visual_basic_net/start
http://www.programacion.com/asp/articulo/datosaspnet/
http://www.es-asp.net/tutoriales-asp-net/tutorial-61-81/efectuando-acceso-a-
datos.aspx
http://www.es-asp.net/tutoriales-asp-net/tutorial-61-96/enlazando-a-bases-
de-datos.aspx.
http://msdn.microsoft.com/es-es/library/y8c0cxey.aspx
http://msdn.microsoft.com/es-es/library/ya3sah92(VS.80).aspx
http://msdn.microsoft.com/es-es/library/ff855828(VS.80).aspx
http://msdn.microsoft.com/es-es/library/a127sbc5(VS.80).aspx
http://msdn.microsoft.com/es-es/library/h974h4y2(VS.80).aspx
http://social.msdn.microsoft.com/forums/es-ES/vbes/thread/087a5f2c-9eda-
44a5-9a58-6008b65c9a8e
http://www.recursosvisualbasic.com.ar/htm/tutoriales/datagrid-dbgrid.htm
http://www.recursosvisualbasic.com.ar/htm/tutoriales/controles_visual_basic
_menu.htm
419
ANEXO A
SQL Server
Este tutorial utiliza como base de datos SQL Server 2005 Express.
Dicha base de datos se puede instalar independientemente de la versin de Visual
Studio.
A.1 Conectarse a SQL Server.
Cuando se instala SQL Server, en los programas existe una opcin para conectarse a la
base de datos seleccione Microsoft SQL Server 2005. Realice los siguientes pasos:
1. Inicio - > Todos los Programas - > Microsoft SQL Server 2005.
2. SQL Server Management Studio Express.
1. Server Name: Por omisin aparece el nombre del servidor donde fue instalado
SQL Server.
2. Authenticacion: Por omisin aparece Windows Authentication, la otra opcin
es SQL Server Authentication. Si selecciona SQL Server Authentication, se
deber digitar el User Name y el Password creado cuando se realizo la
instalacin de SQL Server.
420
3. Pulsar el botn Connect.
421
Figura A.5 Ventana para crear una nueva base de datos.
422
Figura A.7 Base de datos bdlibrovbnet con sus elementos creados inicialmente.
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.
423
Seleccione New Table para ver la ventana de diseo de la tabla, como se aprecia
en la siguiente figura:
Para agregar los campos a la tabla en Column Name escriba nit, en Data Type
seleccione nvarchar (50) (campo alfanumrico).
Realice los mismos pasos para crear los campos: empresa, representante,
direccion, telefono, ciudad (todos con el mismo tipo de datos nvarchar (50)). Por
424
ltimo seleccione el campo nit y pulse el icono para crear la clave primaria ( ), la
figura quedara:
Figura A.11 Ventana con los campos de la tabla y nit como llave primaria.
425
Pulse el botn Yes para obtener la ventana para escoger el nombre Choose
Name.
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:
426
Figura A.16 Estructura tabla ventas.
Al finalizar de crear las tablas, la estructura de la base de datos con las tablas
quedara como se aprecia en la siguiente figura:
Cuando se selecciona una tabla y se d clic derecho se visualiza la ventana con las
diferentes opciones que se pueden realizar como son:
427
Figura A.18 Opciones para la manipulacin de una tabla.
428
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:
429
Figura A.23 Ventana al Aceptar la verificacin de sintaxis SQL.
Para ejecutar la instruccin SQL deber dar clic en el icono (Execute SQL),
se vera la siguiente figura:
Ahora se debern llenar con datos las tablas pedidos, productos y ventas de
acuerdo a las siguientes figuras:
430
Figura A.25 Tabla pedidos con datos insertados.
Para crear un diagrama de una base datos seleccione Database Diagrams de la base de
datos bdlibrovbnet, de clic derecho y seleccione la opcin New Database Diagram.
Para ver la ventana de adicin de tablas:
431
Figura A.28 Ventana Add Table de la opcin New Database Diagram.
Seleccione una tabla y pulse el botn Add. Realice esta misma operacin con
cada una de las tablas restantes. Al terminar pulse el botn Close para observar la
siguiente figura:
Para crear la relaciones entre las tablas seleccione el campo nit de la tabla
cliente, de clic en el mouse y mantngalo pulsado y arrstrelo hacia el campo nit de la
tabla pedidos, suelte el mouse para ver la ventana Tables and Columns.
432
Figura A.30 Ventana Tables and Columns.
433
Fgura A.32 Ventana de diagrams con las relaciones entre tablas.
Pulse el botn Yes para obtener la ventana para escoger el nombre Choose
Name.
434
Escriba como nombre del diagrama relaciontablas y pulse el botn OK. Se
visualizar la ventana para guardar los cambios realizados.
Figura A.35 Ventana para guardar los cambios realizados en la base de datos.
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:
435
Figura A.37 Ventana para adicionar tablas a una vista.
Adicione las tablas clientes y pedidos. Al terminar pulse el botn Close para
visualizar la siguiente figura:
436
Figura A.39 Ventana de ejecucin de la vista creada.
Pulse el botn Yes para obtener la ventana para escoger el nombre Choose
Name.
437
Escriba como nombre de la vista vista_clientes_pedidos y pulse el botn OK.
Se visualizar la siguiente figura:
438