Sie sind auf Seite 1von 160

2012

MANUAL VISUAL NET


Lenguaje de Programacin
Computacin III Herramientas de Desarrollo de Software

JMBS
Instituto Sagrado Corazn de Jess

08/05/2012

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

TEMTICA DE DESARROLLO
SESIN I: EL IDE DEL VISUAL BASIC .NET

Conceptos Generales ......................................................................................... 6 MICROSOFT NET FRAMEWORK ........................................................................... 6 Entorno NET FRAMEWORK ................................................................................ 7 Visual Studio NET .............................................................................................. 9 Elementos del Entorno de VISUAL STUDIO 2008 .................................................. 12

SESIN II: INSTRUCCIONES CONDICIONALES

Primera Aplicacin ............................................................................................. 23 Variables y Operadores ...................................................................................... 34 Uso de Operadores

Operadores de Asignacin ........................................................ 38 Operadores de Comparacin ..................................................... 38

Instrucciones Condicionales ................................................................................ 41 Instruccin SELECT CASE ..................................................................... 48 Laboratorio..50

SESIN III: TRABAJANDO CON CONTROLES

ComboBox ........................................................................................................ 56 ListBox.............................................................................................................. 61 CheckBox .......................................................................................................... 64 Radio Button .................................................................................................... 67 Tab Page .......................................................................................................... 72 Laboratorios...74

SESION IV: PROCESOS REPETITIVOS

For/Next ........................................................................................................... 70 For Each .......................................................................................................... 71 While/End While ............................................................................................... 71 Do/Loop ........................................................................................................... 72 Estructuras ....................................................................................................... 73 Laboratorio..74

SESIN V: PROCEDIMIENTOS Y ARREGLOS

PROCEDIMIENTOS Y FUNCIONES ....................................................................... 81 ARREGLOS ........................................................................................................ 81

ARREGLOS TIPO LISTA ......................................................................... 82

Semestre 2012 - I

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

ARREGLOS TIPO TABLA ........................................................................ 86 ARREGLOS CON PARAMETROS.............................................................. 87 ARREGLOS DE CONTROLES................................................................. .87

Laboratorios...88

SESION VI: EXCEPCIONES Y MENUES

Control de Excepciones ................................................................................... 97 Mens en Visual Basic NET y 2008 ...................................................................... 101 Laboratorios...110

SESIN VII: BASE DE DATOS

Base de Datos Relacional .................................................................................... 112 LENGUAJE SQL ................................................................................................. 116 Laboratorios...119

SESIN VIII: ADO NET

ADO NET ......................................................................................................... 135 Objeto de acceso a datos .................................................................................. 155 Acceso a Datos...................................................................................................160

Semestre 2012 - I

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

INTRODUCCIN

Visual Basic.net es la evolucin de Visual Basic, el popular lenguaje de programacin de Microsoft. A diferencia de sus antecesores, Visual Basic.net esta implementado sobre el FRAMEWORK .NET y las potencialidades que tiene el leguaje supera con creces las de versiones anteriores. Visual Basic .net esta basado en el paradigma de programacin orientado a objetos, por lo que es necesario tener algunas nociones de este tipo de programacin. La siguiente gua pretende ilustrar al estudiante sobre las caractersticas ms importantes del lenguaje, el

FRAMEWORK que lo soporta y los distintos tipos de aplicaciones que podemos lograr con l.

Semestre 2012 - I

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

SESIN I EL IDE DEL VISUAL BASIC .NET


CONTENIDO

Conceptos Generales MICROSOFT NET FRAMEWORK Entorno NET FRAMEWORK Visual Studio NET Elementos del Entorno de VISUAL STUDIO 2008
PRCTICA DE REFORZAMIENTO

Semestre 2012 - I

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

CONCEPTOS GENERALES
MICROSOFT .NET
Microsoft.Net es una nueva tecnologa que responde a la necesidad de comunicacin total entre negocios de sistemas heterogneos y con gran capacidad de procesamiento. Microsoft .Net proporciona todas las herramientas y tecnologas para construir

Aplicaciones Web Distribuidas usando protocolos Web estndares tales como HTTP (Hipertexto Transfer Protocolo), XML (extensible Markup Languaje) y SOAP (Simple Object Access Protocol). Las aplicaciones creadas en la plataforma .NET podrn ser usadas por un gran nmero de clientes, tales como PC, PC de bolsillo (Palm PC), celulares digitales, PC de juegos (PC Games), PC de auto (Auto PC), PC Televisor (Ultimate TV), etc. La plataforma .NET de Microsoft es un componente de software que puede ser aadido al sistema operativo Windows. Provee un extenso conjunto de soluciones predefinidas para necesidades generales de la programacin de aplicaciones, y administra la ejecucin de los programas escritos especficamente con la plataforma. Esta solucin es el producto principal en la oferta de Microsoft, y pretende ser utilizada por la mayora de las aplicaciones creadas para la plataforma Windows.

MICROSOFT .NET FRAMEWORK


Lo que se dice en el eBook Microsoft .NET Framework. ".NET Framework es un entorno para construir, instalar y ejecutar servicios Web y otras aplicaciones. Se compone de tres partes principales: el Common Language Runtime, las clases Framework y ASP.NET" Lo que dice el MSDN Library. "El .NET Framework es un entorno multilenguaje para la construccin, distribucin y ejecucin de Servicios Webs y aplicaciones." "El .NET Framework es una nueva plataforma diseada para simplificar el desarrollo de aplicaciones en el entorno distribuido de Internet." "El .NET Framework consta de dos componentes principales: el Common Language Runtime y la librera de clases .NET Framework." El .NET Framework es el corazn de .NET, cualquier cosa que queramos hacer en cualquier lenguaje .NET debe pasar por el filtro cualquiera de las partes integrantes del .NET Framework. Basndose en la definicin de Microsoft sobre que es el .NET FRAMEWORK podemos decir que .NET Framework

es un entorno para construir, instalar y ejecutar servicios Web y otras aplicaciones. Se compone de tres partes principales: El conjunto de lenguajes de programacin, La Biblioteca de Clases Base o BCL y El Entorno Comn de Ejecucin para Lenguajes o CLR por sus siglas en ingls.

Semestre 2012 - I

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


ENTORNO NET FRAMEWORK
La siguiente figura muestra un diagrama con la distribucin de elementos dentro del entorno de .NET Framework.

En la base del entorno de ejecucin, se encuentra el CLR, que constituye el ncleo de .NET Framework, encargndose de la gestin del cdigo en cuanto a su carga, ejecucin, manipulacin de memoria, seguridad, etc. En el nivel intermedio, se sita la jerarqua de clases bsicas del entorno de ejecucin, que constituyen un slido API de servicios a disposicin del programador, para multitud de tareas como, gestin del sistema de ficheros, manipulacin multihebra, acceso a datos, etc. Finalmente, en el nivel superior, encontramos las clases que permiten el diseo del interfaz de usuario de nuestras aplicaciones. Si necesitamos desarrollar aplicaciones para Internet, utilizaremos ASP.NET, que nos provee de todo lo necesario para crear aplicaciones para la Red: WEB FORMS, WEB SERVICES, etc. Adems la plataforma provee de un motor capaz de desarrollar aplicaciones para escritorio (similar a las que se puede obtener con Visual Basic). Estas aplicaciones de escritorio son los llamados WINDOWS FORMS, la nueva generacin de formularios, con caractersticas avanzadas y muy superiores a las del motor de generacin de formularios de obtenidos con versiones anteriores de Visual Basic.

Visual Studio .NET


Visual Studio .net es un entorno de programacin integrado (IDE) desarrollado por Microsoft para el desarrollo de aplicaciones .NET. Este entorno cuenta con todo lo necesario para la creacin de aplicaciones, en esta gua se utilizar el entorno Visual Studio 2008 para realizar los ejercicios. Visual Studio no es el nico IDE para desarrollar aplicaciones .net, existen otros entornos alternativos entre los cuales podemos SHARPDEVELOP.

LOS WINDOWS FORMS


Windows Forms es el nombre que reciben las interfaces de usuarios creadas para ser utilizadas en aplicaciones de escritorio. Estas interfaces pueden ser diseadas a travs de los motores de construccin ofrecidos por Windows Forms est constituido por multitud de clases especializadas que ofrecen funcionalidades para el trabajo con

Semestre 2012 - I

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


ventanas, botones, rejillas, campos de texto y todo este tipo de controles habituales en las aplicaciones de escritorio. Visual Studio ofrece todo lo necesario para crear visualmente este tipo de programas, de un modo similar aunque ms rico al que ofreca el entorno de desarrollo integrado de Visual Basic. Al contrario de Visual Basic 6, VB.NET ofrece control sobre cada control que se incorpore al Windows Form. Los formularios (ventanas) son clases que heredan de la clase base Form, cada control que se incorpore en la clase form ser miembro de esta. Otras consideraciones previas. Extensin de los ficheros de cdigo. En Visual Basic .NET a diferencia de lo que ocurra en las versiones anteriores de Visual Basic, slo existe un tipo de fichero de cdigo, el cual tiene la extensin .vb, en este tipo de fichero pueden coexistir distintos tipos de elementos, por ejemplo: un mdulo de clase, un formulario, un mdulo de cdigo, un control, etc.; mientras que en las versiones anteriores de Visual Basic, cada uno de estos elementos tenan su propio tipo de fichero con su respectiva extensin. Tipos de ejecutables.

Con Visual Basic .NET puedes crear bsicamente estos dos tipos de ejecutables: de consola, no grfico, al estilo del viejo MS-DOS, y grficos, como los que normalmente estamos acostumbrados a ver en Windows. Existen otros tipos de aplicaciones que se pueden crear con Visual Basic .NET: aplicaciones ASP.NET, las cuales sern tratadas en otra gua. Visual Basic .NET (VB.NET): Es un lenguaje de programacin orientado a objetos que se puede considerar una evolucin de Visual Basic implementada sobre el framework .NET. Su introduccin result muy controvertida, ya que debido a cambios significativos en el lenguaje VB.NET no es compatible hacia atrs con Visual Basic, cosa que caus gran divisin en la comunidad de desarrolladores de Visual Basic. La gran mayora de programadores de VB.NET utilizan el entorno de programacin Microsoft Visual Studio .Net en alguna de sus versiones (Visual Studio .NET, Visual Studio .NET 2003 o Visual Studio .NET 2008), aunque existen otras alternativas, como SharpDevelop (que adems es libre). Como pasa con todos los lenguajes de programacin basados en .NET, los programas escritos en VB.NET requieren el Framework .NET para ejecutarse.

Semestre 2012 - I

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

VISUAL BASIC .NET 2008


Cuando se Iniciar el Visual Basic Net conocer el Entorno de Desarrollo Integrado (IDE) del Visual Basic 2008 es decir todas las ventanas y componentes que permitan el desarrollo de aplicaciones. Visual Studio .NET es un entorno de desarrollo integrado que nos ayuda a disear, desarrollar, depurar e implantar con rapidez soluciones basadas en el .NET Framework. Podemos acceder a un conjunto comn de herramientas, diseadores y editores desde cualquiera de los lenguajes de programacin de Visual Studio .NET. Podemos crear aplicaciones Windows Forms y Web Forms que integren datos y lgica de negocio.

Al ingresar por primera vez al Visual Basic Net observara la siguiente pantalla En esta pantalla se muestra principalmente la pgina de inicio con los proyectos reciente y as opciones para abrir o crear un nuevo proyecto. Tambin se muestra las opciones para Abrir o Crear un nuevo proyecto. Tambin se muestra el cuadro de herramientas y el explorador de soluciones pero vacos porque no hay ningn proyecto activo.

Semestre 2012 - I

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Para visualizar todos los componentes de Visual Basic Net debe crear una aplicacin. CREAR UNA APLICACIN Para crear una aplicacin puede seguir cualquiera de los siguientes pasos: Elegir la opcin Archivo Nuevo Proyecto:

Hacer clic en el botn Nuevo Proyecto que se encuentra en la barra estndar.

Semestre 2012 - I

10

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

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, debemos escoger el tipo de plantilla que deseamos utilizar. Una plantilla de aplicacin proporciona archivos de inicio y una estructura de proyecto, y contiene los objetos bsicos del proyecto y la configuracin del entorno que necesitamos para crear el tipo de aplicacin que deseamos.

Plantilla Aplicacin Windows


Esta plantilla proporciona las herramientas, estructura y cdigo de inicio para crear una aplicacin estndar basada en Windows. Aade automticamente las referencias bsicas del proyecto y los archivos a utilizar como punto de partida para nuestra aplicacin. Esta ventana contiene las plantillas instaladas de Visual Studio Net. En forma predeterminada se elige aplicacin para Windows. En la caja de herramientas, escriba el nombre de su nueva aplicacin y presione ENTER haga clic en el botn Aceptar. o

Semestre 2012 - I

10

11

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


ELEMENTOS DEL ENTORNO DE VISUAL STUDIO 2008 Mens y barras de herramientas
Al crear una nueva aplicacin se visualiza la siguiente ventana que consisten en el IDE del Visual Basic .Net. En el ejemplo se ha creado una aplicacin llamada Windows Application1

Men principal Nuevo proyecto Cuadro de herramientas Diseador de Windows Forms

Ventana Propiedades

Semestre 2012 - I

11

12

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Barra de Ttulo
Contiene el nombre del proyecto y su estado. Cuando estamos en estado de diseo, es decir dibujando los controles o escribiendo las instrucciones, la barra slo muestra el nombre del proyecto.

Cuando ejecuta la aplicacin se muestra la palabra ejecutando en la barra de titulo. Durante este estado la aplicacin solo ejecutara las instrucciones indicadas y no se podr modificar las ni alterar el diseo de la aplicacin. Los siguientes botones que s encuentran en la barra estndar permiten iniciar, interrumpir, detener o depurar una aplicacin.

Semestre 2012 - I

12

13

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Tambin se puede ejecutar una aplicacin pulsando la tecla F5.

La Barra de Men
La barra de mens contienen todas las opciones que permiten

utilizar el Visual Basic 2008 Express.

El Cuadro de Herramientas
Como su nombre lo indica, este cuadro contiene todas las herramientas que se necesita para desarrollar las aplicaciones. Al pasar el puntero del Mouse por este cuadro se visualizan todas las herramientas. Si desea que el cuadro de herramientas est permanente en su pantalla, debe hacer clic en el botn Ocultar Automticamente.

El Formulario

El formulario es el objeto principal de cada aplicacin porque aqu se construye la interfaz del usuario, es decir, la comunicacin del usuario con la aplicacin que se desarrolla. El desarrollo de una aplicacin consiste en agregar los formularios necesarios y asignarles sus propiedades luego

Semestre 2012 - I

13

14

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


dibujar los controles que cada uno ellos necesitan y asignarles tambin sus propiedades y finalmente escribir las instrucciones requeridas por la aplicacin. Cuando se crea una aplicacin, en forma predeterminada se crea un formulario llamado Form1.Para agregar nuevos formularios a su aplicacin puede elegir la Opcin Proyecto Agregar Windows Forms.

Otra forma de agregar formularios a una aplicacin es haciendo clic en el nombre del proyecto del explorador de soluciones y eligiendo la opcin Agregar Windows Forms. En la ventana que se visualiza selecciones Windows Forma y luego clic en el botn Agregar, si desea, antes de hacer clic en el botn Agregar puede asignarle un nombre diferente al predeterminado del nuevo formulario. En el siguiente ejemplo se est agregando un nuevo formulario con el nombre frm ejemplo por Form2.vb

Para eliminar un formulario haga clic derecho en su nombre en el explorador de soluciones y del men contextual que se visualiza elija la opcin Eliminar. Del mensaje que se visualiza, haga clic en el botn Aceptar para confirmar la eliminacin. Cuando se ejecuta el proyecto, se visualiza el primer formulario. Para indicar el formulario inicial seleccione el nombre de la aplicacin luego clic derecho, propiedades. Luego seleccione el nombre del formulario inicial.

Semestre 2012 - I

14

15

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Barra de Mens

Men principal Barra de herramientas estndar

Nuevo proyecto

Guardar Form1.vb

Deshacer

La Ventana de Propiedades
Esta ventana, como su nombre lo indica, contiene todas las propiedades o caractersticas que se les pueden asignar a los controles que se dibujan en el formulario. Como en casi todas las ventanas, en la barra de ttulo se visualizan los botones que permiten: Indicar posicin de la ventana de la pantalla Indicar si la ventana se oculta en forma automtica Cerrar la ventana

Los botones

Permiten lo siguiente: Mostrar las propiedades o eventos ordenados por su categora Mostrar las propiedades o eventos ordenadas alfabticamente por su n nombre Ver slo las propiedades del objeto seleccionado Ver slo los eventos del objeto seleccionado

El Explorador de Soluciones (CTRL + R)


El explorador de servidores contiene todos los objetos que forman parte de nuestra aplicacin, como formularios, controles de usuarios, mdulos etc.

Semestre 2012 - I

15

16

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

El explorador de soluciones muestra los siguientes botones:

Estos botones permiten: Mostrar las propiedades del archivo seleccionado Mostrar todos los archivos del proyecto Actualizar el explorador de soluciones Ingresar a la ventana de cdigo del objeto seleccionado Ver la ventana de diseo Ver diagrama de clase

Ventana de Cdigo

Semestre 2012 - I

16

17

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Explorador de soluciones

Ventana de Diseo
Como en las versiones anteriores de Visual Basic, tambin se puede ingresar a la ventana de cdigo de un objeto pulsando la tecla F7 y para regresar a la ventana de diseo Shift+f7

CONFIGURAR EL VISUAL BASIC NET Si desea configurar el Visual Basic Net como por ejemplo cambiar el tipo, tamao, color de la letra de las instrucciones que escriba o el color del texto de cada comentario, etc. debe elegir la opcin Herramientas Opciones. Se visualiza una ventana con 2 opciones. 1.-Crear una Carpeta de trabajo en la unidad d:\Mis Proyectos 2,-Clic en herramientas, Opciones, Proyectos y soluciones Escoger la ruta de la carpeta de trabajo en; D:\mis proyectos

Semestre 2012 - I

17

18

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


1. 2. 3. Ubicacin de proyectos de Visual Studio Ubicacin de plantillas de proyecto de usuario de Visual Studio Ubicacin de plantillas de elementos de usuario de Visual Studio

Clic en Archivo Nuevo Proyecto: observe lo siguiente:

Observe lo siguiente:

Semestre 2012 - I

18

19

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Asigne las siguientes Propiedades: Propiedades Text Backcolor BackgroundImage Mi Primer Formulario InactiveCaptionText Imagen1

Cuadro de Herramientas
Para observar el cuadro de herramientas pulsar las teclas ALT +CTRL +X Para ocultar el cuadro de herramientas hacer clic en el icono

Para ejecutar las aplicaciones

Ejecutar las aplicaciones Clic en Proyecto, Propiedades de WindowsApplication1 Se observa Elija Objeto inicial: Form1 Clic en el icono Ejecutar

Semestre 2012 - I

19

20

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

PROCESO
Cdigo Diseador Explorador de Soluciones Ventana de Propiedades Cuadro de Herramientas Examinador de Objetos Ejecutar Application F7 Shift + f7

Tecla Rpida

CTRL + R, CTRL +ALT +L F4 CTRL+ALT+X F2 F5

Semestre 2012 - I

20

21

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

SESIN II
INSTRUCCIONES CONDICIONALES
CONTENIDO

Primera Aplicacin Variables y Operadores


Uso de Operadores

Operadores de Asignacin Operadores de Comparacin

Instrucciones Condicionales Instruccin SELECT CASE


PRCTICA DE REFORZAMIENTO

Semestre 2012 - I

21

22

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Nuestra primera aplicacin.
Crear una aplicacin que muestre el siguiente formulario y luego de hacer clic en el botn aplicar se observe los siguientes mensajes como se muestran en la fig 2

Figura 1

Luego de hacer clic en aplicar

Figura 2

Procedimiento
a)primero Realizamos el diseo del formulario b)Pulsar alt + ctrl + x para usar el control etiqueta

Este control permite escribir ttulos Y usar el control botn de comando para generar el botn de comando

Semestre 2012 - I

22

23

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Objeto Label1

Propiedad Name Font

Valor Label1 Microsoft Sans Serif, 36pt, style=Bold Label1 Microsoft Sans Serif, 36pt, style=Bold Button1 APLICAR

Label2

Nombre Font

Button1

Name Text

Propiedades de los controles del Formulario Establecer las siguientes propiedades de los controles Realize el siguiente cdigo

Pulse shift +F7 para pasar del formulario ala venatna de cdigo

Public Class Form4 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Label1.Text = "BIENVENIDOS A VISUAL STUDIO " Label1.ForeColor = Color.Blue Label2.Text = "UCV SE MAS" Label2.ForeColor = Color.Brown End Sub End Class

Explicacin
En este ejemplo se aplica el evento clic al objeto Button1, el cual activa las propiedades de los 2 objetos: Label1 y Label 2 de la siguiente forma:

Label1.Text = "BIENVENIDOS A VISUAL STUDIO "

Objeto

propiedad
La propiedad Text permite asignar el texto al Objeto La propiedad ForeColor permite asignar el color al Objeto

Semestre 2012 - I

23

24

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Agregue el siguiente botn SALIR ya agregue el cdigo que se indica.

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Me.Close() End Sub En este caso el formulario se identifica con Me y se le asigna el METODO close()

Segunda Aplicacin
Otra aplicacin ser un simple formulario con algunos elementos de escritorio comunes para ir familiarizando con el entorno. Abra el entorno de desarrollo visual studio y cree un nuevo proyecto (ctrl+n).

Semestre 2012 - I

24

25

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


En el cuadro de dialogo seleccione Windows application

En el cuadro de dialogo Name escriba alumnos y pinche el botn OK. El IDE inmediatamente creara el proyecto y nos mostrar una esto:

En la cual se mostrar como pgina principal una pestaa que contendr el diseador visual con un formulario el cual el sistema habr llamado Form1. En la ventana de propiedades cambie el nombre a form_alumnos

Semestre 2012 - I

25

26

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Adems cambie la propiedad text a Registro de Alumnos y el tamao (size) a 800,600.Lo que acabamos de hacer es ajustar las propiedades del objeto form mediante el diseador. Agregando controles a nuestro formulario. Desde la ventana de herramientas o toolbox podemos agregar distintos controles a nuestro formulario, esto lo podemos hacer pinchando el control que deseamos y arrastrndolo al formulario. Ingrese los siguientes controles a su formulario: 9 Etiquietas (Label) 6 cuadros de texto (TextBox) 1 cuadro de lista desplegable (combo box) 1 Calendario (DateTimePicker) Cambie la propiedad de cada Label con los siguientes nombres: RUN Nombre Ap. Paterno Ap.Materno Direccin Telfono Email Carrera Fecha de Ingreso Cambie la propiedad name de los text_box de la siguiente forma: Text_run

Semestre 2012 - I

26

27

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Text_nombre Text_ap_pat Text_ap_mat Text_direccion Text_telefono Text_email

Cambie la propiedad nombre del combo box a cmb_carrera y la del DateTimerPicker a DTP_fec_ingreso. Distribuya estos controles de la siguiente Manera:

Presione el botn a esto:

para ejecutar la aplicacin y ver cmo quedar nuestro formulario, debera ver algo similar

Semestre 2012 - I

27

28

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Hasta el momento no hemos utilizado absolutamente nada de cdigo, bueno, dependiendo de la ptica del programador, esto es una ventaja ya que el IDE nos permite crear en forma rpida una aplicacin. Hagamos algo ms interesante, agreguemos dos botones al formulario para utilizarlo como disparador de un eventos, para ello iremos nuevamente al toolbox y busquemos el control Button, ubiquemos uno debajo del combobox de carrera y cambiemos su nombre a btn_grabar y la propiedad text a Grabar, el otro botn ubiqumoslo al costado derecho del botn Grabar y cambie su propiedad nombre a btn_Salir y su text a Salir. Como comentario aparte, Se han fijado que para dar el nombre a los controles hemos utilizado una nomenclatura comn?, por ejemplo Textbox1 lo llamamos Text_run, Combobox1 lo llamamos cmb_carrera, bueno, utilizar nomenclaturas comunes que identifiquen claramente el tipo de control y el campo o dato con el cual se est trabajando es una buena idea ya que nos permitir fcilmente identificar estos cuando estemos trabajando con cdigo. Sigamos con nuestra aplicacin, hasta ahora no hemos utilizado nada de cdigo, as que ya es hora de utilizar nuestras neuronas . Haga doble clic en el botn btn_salir. Qu ha pasado?, se ha activado la pestaa de cdigo y auto-mgicamente el cursor se ha ubicado entre estas lneas:

Private

Sub

Button1_Click(ByVal

sender

As

System.Object,

ByVal

As

System.EventArgs) Handles btn_salir.Click End Sub


Se trata de un procedimiento cuyo nombre, btn_salir_Click, compuesto del nombre del control y del evento, lo proporciona automticamente el IDE. Recibe dos parmetros: sender y e, con informacin adicional proporcionada por el entorno. Pero lo verdaderamente importante est al final de la declaracin: Handles btn_salir_Click. La palabra clave Handles, seguida del nombre de un control, un punto y el nombre de un evento

Semestre 2012 - I

28

29

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


de ese control, le indica al entorno de .NET Framework que debe ejecutar este procedimiento cuando se produzca el evento para ese control. No realizaremos en este momento una explicacin ms detallada puesto que trataremos este aspecto con ms profundidad en temas posteriores del texto. Este procedimiento ser ejecutado cada vez que pulsemos el control btn_salir, por lo que si en tal situacin, queremos cerrar el formulario, slo ser necesario incluir la lnea de cdigo mostrada entre estas lneas. Me.Close() Presiona para ejecutar el programa, presiona el botn cerrar y observa que sucede.

Agreguemos algo de estilo a nuestro formulario. Para ello pondremos una imagen en el top de formulario con el Titulo de la aplicacin. Primero debemos hacer espacio para nuestra imagen, seleccione todos los controles y muvalos hacia abajo. Para ello mantenga presionado el botn derecho del mouse y seleccione los controles de formulario. Agregamos un Label a nuestro Formulario, y le agregamos las siguientes propiedades (en tiempo diseo): Dock = Top Autosize = False En la propiedad Image, importamos una nueva imagen, yo ocup el logo de Ceduc , ustedes elijan el que gusten.

y aceptamos: Cambiemos las siguientes propiedades: ImageAlign = MiddleLeft Text = [Titulo]

Semestre 2012 - I

29

30

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


TextAlign = MiddleRight Font = Microsoft Sans Serif, 18pt, style=Bold BackColor = Window Modifiers = Public

Nuestro formulario debera quedar ms o menos as:

Agregando nuevos formularios al proyecto.


Vamos a construir un formulario que nos servir de autentificacin para nuestra aplicacin. Para ello vamos a la pestaa Solution explorer y hagamos clic con el botn derecho sobre el icono de nuestro proyecto, aparecer un men emergente, desde la opcin add seleccionemos Windows Form.

Semestre 2012 - I

30

31

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Ahora agregamos un nuevo formulario (Windows Form), frmLogin.vb. Y le agregamos los siguientes controles: En el formulario frmLogin.cs, cambiamos la propiedad del control btnAceptar:

DialogResult = Ok

Y en el control btnCancelar: DialogResult = Cancel

Y en el control txtPassword: UseSystemPasswordChar = Trae PasswordChar = * Y en el propio formulario cambiamos las siguientes propiedades: AcceptButton = btnAceptar CancelButton = btnCancelar

Ahora debemos hacer que nuestro formulario de autentificacin sea el principal en nuestro proyecto, para ello vamos nuevamente a la ventana del explorador de soluciones y seleccionamos nuestro proyecto haciendo doble clic en el. En este instante se abrir el cuadro de propiedades de la aplicacin. En el cuadro de opciones startup form selecionaremos el formulario frmLogin:

Semestre 2012 - I

31

32

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Vamos nuevamente al formulario frmLogin y hacemos clic en el botn aceptar para acceder al cdigo del evento. Instanciaremos el formulario form_alumnos para llamarlo de la siguiente forma.

Dim falumnos = New form_alumnos() falumnos.show()

Semestre 2012 - I

32

33

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Variables y Operadores
Uso de variables y operadores de VB.NET Variable Ubicacin de memoria temporal, se usan para almacenar datos. Una variable tiene un nombre y un tipo de dato. Ejemplo:

Dim NombreVariable tipoDato


Tipos de Datos Datos que pueden albergar una variable. Tipo de datos Descripcin

Integer Long Short Byte Double Single Decimal Boolean Char String DateTime Object Numero entero 32 bits Nmero entero 64 bits Nmero Entero 16 bits Binarios o caracteres ASCII en numrico Decimales 64 bits Decimales de coma flotante 32 bits Decimales con coma como enteros 128 bits True o False nmeros de 16 bits Un carcter numero de 16 bits sin signo Alfanumricos Fechas y horas como entero de 64 bits Datos de cualquier tipo Declaracin de Variables Indicar su presencia a un programa. Sintaxis:

Dim NombreVariable [As Tipo]


Ejermplos: Dim NumVar As Integer Dim StrVar As String

Semestre 2012 - I

33

34

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Tambien se pueden declarar por medio de caracteres de tipo identificador. Dim StrVar$

Tipo Dato Integer Long Single Double

Carcter de identificacin % & ! #

Decimal String
Nomenclatura de variables

@ $

Debe empezar por una letra.

No puede contener puntos ni caracteres de identificacin de tipo

No debe superar los 255 caracteres

Debe ser exclusivo dentro del mismo mbito (procedimiento, formulario o modulo).

Inicializacin de variables

De manera predeterminada una variable contienen un valor cuando se declara. Por ejemplo, una variable Integer contiene 0 y una variable Boolean almacena False. Ejemplos Dim NumVar As Integer Declaracin

NumVar=200

Inicializacin en 200

Dim NumVar As Integer =200

Declaracin e Inicializacin

Semestre 2012 - I

34

35

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Crear una variable en momento de declaracin: New
Dim permite declarar o crear variables, sin embargo las variables se crean cuando se utilizan o se inicializan. La sentencia New permite crear una variable en el momento de su declaracin. Ejemplos Dim NumVar As Integer NumVar = New Integer() Declaracin Creacin b) Declaracin y creacin Declaracin y creacin

Dim NumVar As Integer = New Integer() Dim NumVar As New Integer()

Disociar una variable de su tipo de dato: Nothing Nothing disocia una variable de su tipo de dato correspondiente. pOr ejemplo si se asinga Nothing a una variable de tipo Integer la variable pierde su valor y adopta el valor predeterminado de su tipo de datos. Ejemplo Dim Ctr Integer = 10 Ctr = Nothing Adopta 10 Adopta 0

Declaraciones implcitas y explicitas Se puede declarar variables implcita explcitamente. Ejemplo: cpvroman@hotmail.com NumVar= 2*5 10 3 que permiten utilizar variables sin declararlas y

Se recomienda declarar explcitamente una variable. La instruccin Option Explicit garantiza que las variables se declaren antes de utilizarlas. Sintaxis Option Explicit On Off Por defecto es On

Semestre 2012 - I

35

36

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


mbito de las variables El mbito determina su accesibilidad. En funcin a ello, una variable puede ser variable local o de nivel de modulo. Variable local, declaradas en un procedimiento. Variable de modulo, declaradas a nivel de la aplicacin o de mdulos de una aplicacin. A su vez se clasifican en privadas (solo en el modulo) y publicas (entre mdulos). Ejemplos Private Dim NumVar Integer Private

NumVar As Integer Public Dim NumVar As Integer Public NumVar as Integer Conversin de Tipos Se dispone de dos tipos de conversiones:

Por ampliacin no generan perdidas de datos y siempre producen resultas satisfactorios.

Por ejemplo, Short a Integer

Por Reduccin, generan perdida de datos y en ocasiones insatisfactorios.

Por ejemplo, de Integer a Short A su vez pueden ser conversiones explicitas (On) e implcitas (Off). Option Strict [On Off] On comprueba los tipos de datos antes de la conversin. Off puede generar conversiones implcitas. El valor por defecto es On Nota: Cuando se define la instruccin Option Strict On, es necesario declarar las variables explcitamente. Constante Una variable cuyo valor no cambia durante la ejecucin de un programa. Const MaxPuntos As Integer = 100 Const MaxPuntos = 100

Semestre 2012 - I

36

37

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Uso de Operadores
Un operador es una unidad de cdigo que realiza una operacin en una variable(s) o elementos. Tenemos los siguientes:

Aritmticos Asignacin Comparacin Lgicos/ de bits Concatenacin

Operadores Aritmticos
Operador ^ Descripcin Calcula la potencia Sintaxis Numero ^ Exponente * Multiplicar dos nmeros Numero1 * Numero2 / Dividir dos nmeros Numnero1 / Numero2 \ Mod Divide y devuelve un entero Devuelve el resto Numero1 \ Numero2 Numero1 Mod Numero2 12 Mod 4.3 3.4 200\3 5 Mod 2 1 8/3.5 (-3)^4 3.5*3.25 Ejemplo 2^3

Sumar dos nmeros o unir dos cadenas

Expresion1 + Expresion2 Numero1 Numero2

5.89+6.3 47.9 Mod 9.35 1.15 Hola+Mundo 23.6-8.3 15.3

Diferencia entre dos Nmeros

Semestre 2012 - I

37

38

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Operadores de Asignacin

Operador =

Descripcin Asigna un valor o expresin a una variable o propiedad

Sintaxis Variable = Expresion

Ejemplo Num1 = 12

Costo = Precio Variable += Expresion Num1 * Cant = 10

+=

Asignacin de suma

-=

Asignacin de resta

Variable -= Expresion

Num1 +=20 Numero =5

*=

Asignacin de

Variable *=

Numero -=2 Numero = 6

Multiplicacin /= Asignacin de divisin

Expresion Variable /= Expresion

Numero *=2 Numero = 5.8

\=

Asignacin de divisin de enteros

Variable \= Expresion Variable &= Expresion

Numero /=2 Num= 8.4

&=

Asignacin de concatenacin

Num \=2 Cadena = Hola

^=

Asignacin de potencia

Numero ^= Exponente

Cadena &= Mu ndo = 2 Numero1

Numero1 ^=3

Semestre 2012 - I

38

39

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Operadores de Comparacin
Permiten comparar dos expresiones, el resultado es un valor booleano. Operador < <= > >= = <> Is Descripcin Menor que Menor o igual que Mayor que Mayor o igual que Igual que No igual que Comparar dos referencias a Sintaxis Expresion1< Expresion2 Expresion1<= Expresion2 Expresion1> Expresion2 Expresion1>= Expresion2 Expresion1= Expresion2 Expresion1<> Expresion2 Objeto1 Is Ejemplo 23 < 30 56 <= 56 8>3 78 >= 12 5=5 63 <> 89 Dim Objeto1, Objeto2 As

PRAMAR .NET

Visual

Elementos del lenguaje. Variables y estructuras de datos

Introduccin a los tipos de datos

Tipo Visual Basic Net

Tamao de almacenamiento 2 bytes 8 bytes

Rango de Valores

Boolean Date

Verdadero o Falso 0:00:00 del 1 de enero de 0001 a 11:59:59 PM del 31 de diciembre de 9999 Hasta 29 dgitos significativos, con valores de hasta 7,9228 x 10 (con signo)

Decimal

16 bytes

Double

8 bytes

-4,94065645841246544E-324 a +1,79769313486231570E+308 (con signo -2.147.483.648 a +2.147.483.647 (con signo

Integer

4 bytes

Single

4 bytes

-3,4028235E+38 a 1,401298E-45 (con signo) 0 a 2.000 millones aproximadamente de caracteres Unicode

String

Variant

Semestre 2012 - I

39

40

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


INSTRUCCIN CONDICIONAL
Estas instrucciones nos permiten tomar decisiones, permiten evaluar una expresin y ejecutar unas instrucciones en caso contrario ejecuta otras series de instrucciones Sintaxis: Primera Forma: If <expresin a evaluar> Then <Instruccin (si la expresin devuelve Verdadero)> Ejemplo: If a = b Then MessageBox(.Son Nmeros Iguales.) Si la expresin a evaluar de a = b devuelve o mejor dicho es verdadera, este nos mostrar un mensaje, con el texto de .Son Nmeros Iguales.. Segunda Forma: If <expresin a evaluar> Then <Instruccin (si la expresin evaluada devuelve Verdadero)> End If Ejemplo: If b <> 0 Then Res = a / b Console.WriteLine("El Resultado de La Divisin es: {0}", Res) End If Esta segunda forma, lo utilizamos cuando tengamos que hacer mas de una instruccin si la expresin a evaluar resulta verdadera, en este caso si es mayor que b, si es verdadero este har la siguiente instruccin de a dividir entre b y el resultado guardarlo en una variable llamada Res, que despus la mostraremos en pantalla. Tercera Forma: If <expresin a evaluar> Then < Instruccin (si la expresin evaluada devuelve Verdadero)> Else < Instruccin (si la expresin evaluada devuelve Falso)>

Semestre 2012 - I

40

41

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


End If Ejemplo: If b <> 0 Then Res = a / b Console.WriteLine("El Resultado de La Divisin es: {0}", Res) Else Console.WriteLine("Error: Divisin Entre Cero") End If Esta forma nos permite utilizar los dos tipos de resultados de la expresin evaluada, por ejemplo, si b es diferente a cero este dividir a a, pero si es falso, nos mostrara un mensaje de Error. Cuarta Forma: If <expresin a evaluar> Then <Instruccin (si la expresin evaluada devuelve Verdadero)> Else <Instruccin (si la expresin evaluada devuelve Falso)> (todo en una misma lnea) Esta forma no tan muy usada, solo en los casos cuando hay que hacer una sola instruccin en cada tipo de respuesta de la expresin evaluada, por ejemplo, si a es igual b nos mostrar un mensaje de Nmeros Iguales, pero si es falso nos mostrara otro mensaje dicindonos que No son Nmeros iguales, y recuerden que es en una sola lnea. Quinta Forma: If <expresin a evaluar> Then < Instruccin (si la expresin evaluada devuelve Verdadero)> ElseIf <expresin a evaluar> Then < Instruccin (si la expresin evaluada devuelve Verdadero)> Else < Instruccin (si la expresin evaluada devuelve Falso)> End If Ejemplo: If b = 0 Then Console.WriteLine("Error: Divisin Entre Cero") ElseIf a <> b Then Res = a / b Console.WriteLine("El Resultado de La Divisin es: {0}", Res) Else Console.WriteLine("El Resultado de La Divisin es: 1") End If

Semestre 2012 - I

41

42

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


EJEMPLOS CON SENTENCIA CONDICIONAL (IF-THEN) Desarrollar una aplicacin con 4 ejercicios que permita realizar lo siguiente: Ejercicio1.- Ingresar las Notas de Un alumno y obtener su promedio

Vista Diseo del Formulario Principal Objeto Form1 Propiedad (Name) BackColor BackgroundImage BackgroundImageLayout Font Label1 (Name) Text Font ForeColor Button1 (Name) BackColor BackgroundImage BackgroundImageLayout Font Label1 Ejercicios de Visual Basic Net Valor Form1

Semestre 2012 - I

42

43

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Vista Cdigo del Formulario Principal Clic en el primer botn, escriba el siguiente cdigo dentro del procedimiento que permite llamar a un formulario. Si queremos llamar a los formulario en modo Modal es decir, que solo se active el formulario priincipal,cuando cerramos el formulario secundario,debemos utilizar el metodo ShowDialog. Las siguientes instrucciones muestran el formulario form2 en modo Modal.

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Form2.ShowDialog() End Sub

Vista Diseo del segundo formulario:

Declaracin de Variables

Se Requiere lo siguiente: El Ingreso del cdigo solo numrico El ingreso de apellidos y nombres y el curso solo letras Las notas deben ser valor numrico Obtener el Promedio

Semestre 2012 - I

43

44

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


FORMULARIO
Cuando se inicia el formulario el cursor debe ubicarse en el primer cuadro , en este aplicaremos al formulario el evento activated.

Private Sub Form2_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated TextBox1.Focus() End Sub
En las Notas Las Notas deben cambiar de color si es aprobatorio color azul, en caso contrario color rojo.

Aplicar en Textbox1 Evento:Changed

Private Sub TextBox1_TextChanged_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

If Val(TextBox1.Text) >= 11 Then TextBox1.ForeColor = Color.Blue Else TextBox1.ForeColor = Color.Red End If End Sub
Aplicando Consistencia: Las Notas deben ser de valor Numrico

Aplicar en Textbox1 Evento:KeyPress

Private Sub TextBox1_KeyPress1(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress If (Asc(e.KeyChar) < 48 Or Asc(e.KeyChar) > 57) And Asc(e.KeyChar) <> 8 Then e.Handled = True End If

Semestre End Sub

2012 - I

44

45

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


CALCULOS Obtener el promedio escriba sub y la palabra promedio pulse enter luego digite el cdigo Para llamar procedimiento promedio utilizar: Sub promedio() n1 = Val(TextBox1.Text) n2 = Val(TextBox2.Text) n3 = Val(TextBox3.Text) prom = (n1 + n2 + n3) / 3 TextBox4.Text = prom.ToString("##.00") If (prom >= 0 And prom < 10.5) Then PictureBox1.Image = WindowsApplication3.My.Resources.Resources.desaprobado MsgBox("Desaprobado") Else If (prom > 10.5 And prom <= 20) Then PictureBox1.Image = WindowsApplication3.My.Resources.Resources.aprobado MsgBox("Aprobado") End If End If End Sub

En el botn

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Call promedio() End Sub
Observe el promedio respectivo Se requiere que las notas deben estar entre un valor de 0 y 20

En este caso se crea un procedimiento llamado evaluar.

Semestre 2012 - I

45

46

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Sub evaluar() if Val(TextBox1.Text) < 0 Or Val(TextBox1.Text) > 20 Then MsgBox("La nota debe estar entre 0 y 20", MsgBoxStyle.Exclamation, "verifique") TextBox1.Clear() TextBox1.Focus() Else TextBox2.Focus() INSTRUCCION SELECT CASE End ocasiones If Tambin existen o programas donde se exige evaluar muchas condiciones a la vez, en estos casos o se
usa una condicin compuesta muy grande o se debe intentar convertir el problema a uno que se pueda resolver usando la instruccin SELECT CASE. Esta instruccin es una instruccin de decisin mltiple donde el compilador prueba o busca el valor contenido en una variable ENTERA, CHARACTER, STRING contra una lista de constantes apropiadas, es decir enteras, carcter o astringes, cuando el computador encuentra el valor de igualdad entre variable y constante entonces ejecuta el grupo de instrucciones asociados a dicha constante, si no encuentra el valor de igualdad entre variable y constante, entonces ejecuta un grupo de instrucciones asociados a un default, aunque este ltimo es opcional. El formato en visual BASIC net de esta instruccin es el siguiente; capturar o asignar variable de condicin Select Case variableopcion case const1 instruccion(es) case const2 instruccion(es) case const3 Instruccion(es) Case Else instruccion(es) End Select

End Sub

Public Class Form4 Dim EDAD As Integer Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click EDAD = Val(TextBox1.Text) Select Case EDAD Case 0 To 9 Label2.Text = "INFANCIA" Case 10 To 13 Label2.Text = "NIEZ" Case 15, 16, 17

Semestre 2012 - I

46

47

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Label2.Text = "ADOLESCENCIAZ" Case 18 To 59 Label2.Text = "ADULTEZ" Case Is >= 60 Label2.Text = "ANCIANO" Case Else Label2.Text = "NO EXISTE" End Select End Sub End Class

Semestre 2012 - I

47

48

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

LABORATORIOS
LABORATORIO - 001

1.

Elaborar una aplicacin que permita ingresar el nombre de un usuario y que luego permita saludarlo en un Label.

Public Class Form1 Private Sub BtnSaludo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSaludo.Click 'Define la variable nombre y le asigna el valor ingresado Dim Nombre As String = TxtNombre.Text 'Alinea el texto del saludo al centro de la etiqueta LblSaludo.TextAlign = ContentAlignment.MiddleCenter 'Muestra el saludo LblSaludo.Text = "Hola: " & Chr(10) & Chr(13) & Nombre & Chr(10) & Chr(13) & Chr(10) _ & Chr(13) & "Bienvenido a Visual Basic 2008" End Sub Private Sub BtnCerrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCerrar.Click Close() End Sub End Class

Semestre 2012 - I

48

49

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


LABORATORIO - 002
Elaborar una aplicacion que permita obtener el promedio de tres notas, mostrandome los puntos obtenidos (suma de las notas) y el promedio del mismo.

Public Class Form1 Private Sub BtnCalcular_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim Nota1, Nota2, Nota3, Puntos, Promedio As Single Nota1 = Single.Parse(TxtNota1.Text) Nota2 = Single.Parse(TxtNota2.Text) Nota3 = Single.Parse(TxtNota3.Text) Puntos = Nota1 + Nota2 + Nota3 Promedio = Puntos / 3 LblPuntos.Text = Puntos.ToString LblPromedio.Text = Promedio.ToString If Promedio >= 10.5 Then LblPromedio.ForeColor = Color.Blue Else LblPromedio.ForeColor = Color.Red End If End Sub Private Sub BtnNuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) TxtNombre.Text = "" TxtNota1.Text = "" TxtNota2.Text = "" TxtNota3.Text = "" LblPuntos.Text = "" LblPromedio.Text = "" TxtNombre.Focus() End Sub End Class

Semestre 2012 - I

49

50

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

LABORATORIO - 003
Elaborar una aplicacin que permita mostrar el promedio de dos notas, este promedio se mostrara en un cuadro de mensaje, de la siguiente manera:

Public Class Form4 Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim kb As Integer = 0 Dim seg As Integer = 0 Dim velocidad As Integer = 0 kb = 55 velocidad = kb / seg MsgBox(CStr(velocidad) & " kb por seg") End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim aNumber As Integer = CInt(TextBox1.Text) Dim bNumber As Integer = CInt(TextBox2.Text) MsgBox(calculopromedio(aNumber, bNumber)) End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click TextBox1.Text = "" TextBox1.Text = "" habilitabotones() End Sub Sub deshabilitabotones() TextBox1.Enabled = False TextBox2.Enabled = False End Sub Sub habilitabotones() TextBox1.Enabled = True

Semestre 2012 - I

50

51

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


TextBox2.Enabled = True End Sub Function calculopromedio(ByVal N1 As Integer, ByVal N2 As Integer) As Integer Return (N1 + N2) / 2 End Function End Class

LABORATORIO - 004
2. Elaborar una aplicacion que permita ingresar el nombre de un cliente asi como el monto consumido, luego al hacer click debera mostrar el importe del mismo acompaado del igv, mostrandose en los labels respectivos.

Public Class Form1 Private Sub BtnCalcular_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim Monto, Importe, Igv As Double Monto = Double.Parse(TxtMonto.Text) Importe = Monto / 1.19 Igv = Monto - Importe LblImporte.Text = Importe.ToString("###,##0.00") LblIgv.Text = Igv.ToString("###,##0.00") End Sub Private Sub BtnNuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) TxtCliente.Text = "" TxtMonto.Text = "" LblImporte.Text = "" LblIgv.Text = "" TxtCliente.Focus() End Sub Private Sub BtnCerrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Close() End Sub End Class

Semestre 2012 - I

51

52

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

SESIN III TRABAJANDO CON CONTROLES


CONTENIDO

ComboBox ListBox CheckBox RadioButton TabPage PRCTICA DE REFORZAMIENTO

Semestre 2012 - I

52

53

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


ComboBox (Control, formularios Windows Forms)
El control ComboBox de los formularios Windows Forms se utiliza para mostrar datos en un cuadro combinado desplegable. De forma predeterminada, el control ComboBox aparece en dos partes: la parte superior es un cuadro de texto que permite al usuario escribir un elemento de la lista. La segunda parte es un cuadro de lista que muestra una lista de elementos, de los cuales el usuario puede seleccionar.

Public Class Form7 Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged Select Case ComboBox1.SelectedIndex Case 0 TextBox1.Text = 1000 Case 1 TextBox1.Text = 2000 Case 2 TextBox1.Text = 3000 End Select End Sub Private Sub Form7_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load ComboBox1.Items.Add("DIGITADOR") ComboBox1.Items.Add("PROGRAMADOR") ComboBox1.Items.Add("ANALISTA") End Sub End Class El control ComboBox de Visual Basic 6.0 se ha reemplazado por el control ComboBox de Windows Forms en Visual Basic 2008. Los nombres de algunas propiedades, mtodos, eventos y constantes son diferentes y, en

Semestre 2012 - I

53

54

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


algunos casos, existen diferencias de comportamiento. Diferencias conceptuales Change (Evento) En Visual Basic 6.0, el evento Change del control ComboBox se desencadena cuando se modifica el texto del control. El evento Change no se desencadena cuando se selecciona un elemento en la seccin de la lista del control. Si se modifica el texto de un elemento de la lista mediante programacin, no se desencadena el evento Change. En Visual Basic 2008, el evento Change ya no existe; el evento TextChanged se desencadena cada vez que el texto se modifica por alguna razn; por ejemplo:

Cuando se modifica la seccin de entrada de texto Cuando se selecciona un elemento de la lista Cuando se modifica un elemento de la lista mediante programacin Cuando se llama al mtodo AddItem

ItemData (Propiedad) En Visual Basic 6.0 la propiedad ItemData de un control ComboBox se puede establecer en tiempo de diseo en la ventana Propiedades para asociar un valor Integer con un elemento ComboBox. En Visual Basic 2008, la propiedad ItemData ya no existe. La biblioteca Microsoft. VisualBasic. Compatibility contiene una funcin SetItemData que se puede utilizar para asociar un valor Integer con un elemento; la funcin GetItemData se puede utilizar para recuperar el elemento. Locked (Propiedad) En Visual Basic 6.0, la propiedad Locked de un control ComboBox determina si se puede editar la seccin del cuadro de texto del control. En Visual Basic 2008, la propiedad Locked impide que un control se mueva en tiempo de diseo. No existe un equivalente directo para la propiedad Locked de Visual Basic 6.0; sin embargo, puede conseguir el mismo efecto si establece la propiedad DropDownStyle del control ComboBox en DropDownList. Nota En Visual Basic 6.0, si se establece la propiedad Locked en True, tambin se impedir que se modifique la seleccin. Para duplicar este comportamiento, puede cancelar la seleccin en el evento MouseDown. NewIndex (Propiedad) En Visual Basic 6.0, la propiedad NewIndex se usaba para recuperar el ndice del ltimo elemento agregado a un control ComboBox. En Visual Basic 2008, la propiedad NewIndex ya no existe. Puede utilizar el valor devuelto desde el mtodo Item.Add para recuperar el ndice de un elemento cuando ste se agrega.

Semestre 2012 - I

54

55

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


TopIndex (Propiedad) En Visual Basic 6.0, la propiedad TopIndex se utilizaba para devolver o establecer un valor que especificara el elemento del control ComboBox o ListBox que deba mostrarse en la posicin superior. Esta propiedad sola utilizarse para desplazarse por la lista sin seleccionar ningn elemento. En Visual Basic 2008, la propiedad ComboBox ya no es compatible con la propiedad TopIndex. En la mayora de los casos esto no debera representar un problema, porque al definir la propiedad TopIndex, no se producir ningn efecto visible a menos que se hubiera establecido la propiedad Style en 1 - SimpleCombo. En este caso, puede emular su comportamiento utilizando un control ListBox y un control TextBox; el control ListBox contina admitiendo la propiedad TopIndex. Scroll (Evento) El evento Scroll de Visual Basic 6.se utiliza junto con la propiedad TopIndex para llevar a cabo acciones cuando se desplaza por la lista. Visual Basic 2008 no admite el evento Scroll; sin embargo, en la mayora de los casos, el evento SelectedIndexChanged constituye un sustituto vlido. Otras diferencias Existen numerosas diferencias conceptuales que se aplican a todos los controles, como diferencias en los enlaces de datos, control de fuentes, operaciones de arrastrar y colocar, compatibilidad con Ayuda, y otras. Para obtener ms informacin, vea Conceptos de formularios Windows Forms para usuarios de Visual Basic 6.0. Cambios de cdigo para el control ComboBox En los ejemplos siguientes se muestran las diferencias que existen entre las tcnicas de codificacin de Visual Basic 6.0 y Visual Basic 2008. El cdigo se modifica para hacer que un control ComboBox sea de slo lectura El cdigo siguiente muestra cmo impedir que un usuario agregue nuevos elementos a un control ComboBox. Copiar cdigo ' Visual Basic 6.0 Combo1.Locked = True Visual Basic Copiar cdigo ' Visual Basic 2008 ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList El cdigo se modifica para seleccionar el ltimo elemento agregado en un control ComboBox El cdigo siguiente muestra cmo se establece la seleccin en un elemento que se ha agregado mediante

Semestre 2012 - I

55

56

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


programacin a un control ComboBox. Copiar cdigo ' Visual Basic 6.0 Combo1.AddItem "This is a new item" Combo1.ListIndex = Combo1.NewIndex Visual Basic Copiar cdigo ' Visual Basic 2008 Dim i As Integer i = ComboBox1.Items.Add("This is a new item") ComboBox1.SelectedIndex = i El cdigo de Private Sub se modifica para asociar datos de elementos El cdigo siguiente muestra cmo se asocia un nmero de empleado a cada empleado mostrado en un control ComboBox y cmo se recupera despus ese nmero en tiempo de ejecucin. Copiar cdigo ' Visual Basic 6.0 Private Sub Form_Load Combo1.AddItem "Nancy Davolio" Combo1.ItemData(Combo1.NewIndex) = 12345 Combo1.AddItem "Judy Phelps" Combo1.ItemData(Combo1.NewIndex) = 67890 End Sub Private Sub Combo1_Click() Label1.Caption = "Empoyee #" & _ CStr(Combo1.ItemData(Combo1.ListIndex)) End Sub Visual Basic Copiar cdigo ' Visual Basic 2008 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _ System.EventArgs) Handles MyBase.Load ComboBox1.Items.Add("Nancy Davolio") Microsoft.VisualBasic.Compatibility.VB6. _ SetItemData(ComboBox1, ComboBox1.Items.Count() - 1, 12345) ComboBox1.Items.Add("Judy Phelps") Microsoft.VisualBasic.Compatibility.VB6. _ SetItemData(ComboBox1, ComboBox1.Items.Count() - 1, 67890) End Sub

Semestre 2012 - I

56

57

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Visual Basic Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged Label1.Text = "Employee #" & CStr( _ Microsoft.VisualBasic.Compatibility.VB6. _ GetItemData(ComboBox1, ComboBox1.SelectedIndex)) End Sub

Control ListBox El control ListBox permite aadir elementos en forma de lista y tambin poder seleccionar elementos de la misma para trabajar los datos. Este control permite seleccionar un elemento solo o varios de ellos, utilizando la propiedad Multiselect. La imagen de la izquierda muestra un ListBox en el que se selecciona un solo elemento y a la derecha se seleccionan varios: Algunas de sus propiedades. ListBox.Items.Add: Sirve para agregar informacin al control ListBox.SelectedIndex: Indica los elementos que han sido seleccionado en el control, (ojo) esta propiedad es una de las ms funcionales que tiene este control, ya que, no da una perspectiva completa de la informacin que tenemos almacenada en el mismo. ListBox.Items.RemoveAt: Remueve o elimina la informacin seleccionada en el mismo. ListBox.Sorted: Esta propiedad es de tipo Boolean (Verdadero o Falso), nos sirve para ordenar alfabticamente (A hasta Z) la informacin contenida en el control.

Public Class Form8 Private Sub Form8_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ListBox1.Items.Add("DIGITADOR") ListBox1.Items.Add("PROGRANADOR") ListBox1.Items.Add("ANALISTA")

Semestre 2012 - I

57

58

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


End Sub Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged Select Case ListBox1.SelectedIndex Case 0 TextBox1.Text = 1200 Case 1 TextBox1.Text = 2500 Case 2 TextBox1.Text = 4500 End Select End Sub End Class

Ejercicio 2

Semestre 2012 - I

58

59

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Public Class Form1 'Aqui valido que no quede entradas en blanco Private Sub btnAgregar_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnAgregar.Click If Me.txtNombre.Text = "" Then MessageBox.Show("El Nombre est en blanco", "Datos en blanco") Me.txtNombre.Focus() Exit Sub Else If Me.txtDireccion.Text = "" Then MessageBox.Show("La Direccion est en blanco", "Datos en blanco") Me.txtDireccion.Focus() Exit Sub Else If Me.txtTelefono.Text = "" Then MessageBox.Show("El Telefono est en blanco", "Datos en blanco") Me.txtTelefono.Focus() Exit Sub Else 'Agrego a la lista Me.lstLista.Items.Add(Me.txtNombre.Text.Trim _ & " " & "---" & " " & Me.txtDireccion.Text.Trim _ & " " & "---" & " " & Me.txtTelefono.Text.Trim) 'Limpio las entradas Me.txtNombre.Clear() Me.txtDireccion.Clear() Me.txtTelefono.Clear() 'Enfoco Me.txtNombre.Focus() End If End If End If End Sub Private Sub btnEliminar_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnEliminar.Click 'Aqui eliminamos los datos del ListBox If Me.lstLista.SelectedIndex <> -1 Then Me.lstLista.Items.RemoveAt(Me.lstLista.SelectedIndex) MessageBox.Show("El Dato ha sido borrado", "Dato borrado") Exit Sub

Semestre 2012 - I

59

60

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Else MessageBox.Show("Debe seleccionar para poder borrar", "Seleccione el dato") End If End Sub Private Sub btnSalir_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnSalir.Click 'Aqui mandamos a salir Application.Exit() End Sub Private Sub Llenar_Lista() 'Aqui creamos un metodo para llenar la lista With Me.lstLista.Items .Add("Carlos Perez --- La Vega --- 8095286969") .Add("Roman Fernandez --- Santiago --- 8094715896") .Add("Juan Fco. --- Santiago --- 8094718494") .Add("Alberto Fernandez --- La Vega --- 8093256969") .Add("Adalberto Perez --- San Cristobal --- 8098526969") End With End Sub Private Sub btnLlenar_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnLlenar.Click 'Aqui llamamos el metodo Call Llenar_Lista() 'Mandamos a ordenar Me.lstLista.Sorted = True End Sub End Class

Semestre 2012 - I

60

61

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


CONTROL CHECKBOX

PROPIEDADES BackColor Checked Obtiene o establece el color de fondo del control. Obtiene o establece un valor que indica si el estado de la casilla de verificacin es el de activada. Obtiene o establece un valor que indica si el control puede responder a la interaccin del usuario. Obtiene o establece la fuente del texto que muestra el control. Obtiene o establece el color de primer plano del control. Obtiene o establece el texto asociado al control.

Enabled

Font ForeColor Text

Se utiliza un control CheckBox para dar al usuario una opcin del tipo verdadero/falso o s/no. El control de la casilla de verificacin puede mostrar una imagen o texto o ambos. Se utiliza la propiedad Checked para obtener o establecer el valor de un control de casilla de verificacin de dos estados.

MTODOS

Focus

Establece el foco de entrada en el control.

Hide Refresh

Oculta el control al usuario. Obliga al control a invalidar su rea cliente y, acto seguido, obliga a que vuelva a dibujarse el control y sus controles secundarios. Muestra el control al usuario.

Show

Semestre 2012 - I

61

62

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Public Class Form5 Dim sueldo, bon, descuento, neto As Single Private Sub Opcion1ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Form2.Show() End Sub Private Sub Opcion2ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Form4.Show() End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged If CheckBox1.Checked = True Then sueldo = 1500 TextBox1.Text = sueldo Else sueldo = 0 TextBox1.Text = sueldo End If End Sub

Semestre 2012 - I

62

63

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged If CheckBox2.Checked = True Then bon = 500 TextBox2.Text = bon Else bon = 0 TextBox2.Text = bon End If End Sub Private Sub CheckBox3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox3.CheckedChanged If CheckBox3.Checked = True Then descuento = 345 TextBox3.Text = descuento Else descuento = 0 TextBox3.Text = descuento End If End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click neto = sueldo + bon - descuento TextBox4.Text = neto.ToString("##.00") End Sub

Semestre 2012 - I

63

64

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Private Sub Form5_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load sueldo = 0 bon = 0 descuento = 0 neto = 0 End Sub End Class

Control Radiobutton

Ofrece opciones que el usuario puede activar o desactivar, pero solamente una opcin si existe un grupo de RadioButton. El control RadioButton puede mostrar texto, Imagen o ambos. Cuando el usuario selecciona un botn de opcin en un grupo, los dems se desactivan automticamente. Se utiliza la propiedad Checked para obtener o establecer el estado de un RadioButton. Ofrece opciones que el usuario puede activar o desactivar, pero solamente una opcin si existe un grupo de RadioButton. El control RadioButton puede mostrar texto, Imagen o ambos. Cuando el usuario selecciona un botn de opcin en un grupo, los dems se desactivan automticamente. Se utiliza la propiedad Checked para obtener o establecer el estado de un RadioButton.

Semestre 2012 - I

64

65

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


PROPIEDADES BackColor CheckAlign Obtiene o establece el color de fondo del control. Obtiene o establece la ubicacin de la parte de casilla de verificacin del control de botn de opcin. Obtiene o establece un valor que indica si el control est activado. Obtiene o establece un valor que indica si el control puede responder a la interaccin del usuario. Obtiene o establece la fuente del texto que muestra el control. Obtiene o establece el color de primer plano del control. Obtiene o establece el nombre del control. Obtiene o establece el texto asociado al control. Obtiene o establece un valor que indica si se muestra el control.

Checked Enabled

Font ForeColor Name Text Visible

MTODOS

Focus Hide Refresh

Establece el foco de entrada en el control. Oculta el control al usuario. Obliga al control a invalidar su rea cliente y, acto seguido, obliga a que vuelva a dibujarse el control y sus controles secundarios. Sobrecargado. Activa un control. Muestra el control al usuario. Hace que el control vuelva a dibujar las regiones no vlidas en su rea de cliente.

Select Show Update

Semestre 2012 - I

65

66

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Public Class Form6 Dim SUELDO As Single Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged If RadioButton1.Enabled = True Then SUELDO = 960 TextBox1.Text = SUELDO End If End Sub Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged If RadioButton2.Enabled = True Then SUELDO = 2500 TextBox1.Text = SUELDO End If End Sub Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged If RadioButton3.Enabled = True Then SUELDO = 3500

Semestre 2012 - I

66

67

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


TextBox1.Text = SUELDO End If End Sub End Class

TAB PAGE
Este control permite visualizar las fichas de un control.

Public Class Form9 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Call visibilidad() TabPage1.BackColor = Color.BlanchedAlmond Label6.Text = "DATOS REGISTRADOS" Label7.Text = TextBox1.Text Label8.Text = TextBox2.Text Label9.Text = TextBox3.Text Label10.Text = TextBox4.Text Label11.Text = ComboBox1.Text End Sub

Semestre 2012 - I

67

68

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Me.Close() End Sub Private Sub Form9_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Label6.Visible = False Label7.Visible = False Label8.Visible = False Label9.Visible = False Label10.Visible = False Label11.Visible = False ComboBox1.Items.Add("DIGITADOR") ComboBox1.Items.Add("PROGRAMADOR") ComboBox1.Items.Add("ANALISTA") TabPage1.Text = "DATOS PERSONALISIMOS" TabPage2.Text = "ESTUDIOS" TabPage3.Text = "RESUMEN" TabPage1.BackColor = Color.BlanchedAlmond TabPage2.BackColor = Color.White TabPage3.BackColor = Color.Chartreuse End Sub Sub visibilidad() Label6.Visible = True Label7.Visible = True Label8.Visible = True Label9.Visible = True

Semestre 2012 - I

68

69

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Label10.Visible = True Label11.Visible = True End Sub

Semestre 2012 - I

69

70

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

LABORATORIOS
LABORATORIO - 001
Se desea elaborar una aplicacin que me permita mostrar el Neto a Pagar en el sueldo de un empleado para ello debemos tomar en cuenta lo siguiente: Si hacemos click en el Check de Bon Mov, se debera tomar en cuenta: El basico va a Depender del Cargo: Cargo Analista Programador Operador Digitador Secretaria Bon Mov es el 2% del Basico Si es Bon Ref es el 1% del Basico El Sueldo Bruto es la Suma del Basico mas las Bonificaciones esta se mostrara en el Label14. El Adelanto es el 3% del Basico, la AFP es el 13% del Basico, Otros es el 7% del Basico, por lo tanto el total de Descuentos es : Adelanto + AFP + Otros esto se mostrara en el Label15. El Neto es Bruto TotalDescuentos. El diseo de la ventana tendra el siguiente aspecto: Basico 2800 2000 1600 1250 1000

Semestre 2012 - I

70

71

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

LABORATORIO - 002

Elaborar una aplicacin que permita ingresar el Nombre, Edad y Estado Civil asi como su Turno, cuando presionemos Agregar este se visualizara en las Listas respectivas. Luego si deseamos eliminar a uno de los elementos de la lista, debemos seleccionarla y luego hacer clic en el botn Quitar. Del mismo modo cuando se haga clic en Limpiar todos los controles se borraran.

Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAgregar.Click Dim Nombre, Casado, Turno As String Dim Edad As Byte If TxtNombre.Text.Trim = "" Then MessageBox.Show("Ingrese el Nombre", "Por Favor") TxtNombre.Focus() Exit Sub End If If RbMaana.Checked = False And RbTarde.Checked = False And RbNoche.Checked = False Then MessageBox.Show("Seleccione el Turno", "Por Favor") Exit Sub End If 'Cambia el nombre a maysculas Nombre = TxtNombre.Text.ToUpper() Edad = UpEdad3.Value If CkCasado.Checked = True Then Casado = "Si" Else

Semestre 2012 - I

71

72

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Casado = "No" End If If RbMaana.Checked = True Then Turno = "Maana" ElseIf RbTarde.Checked = True Then Turno = "Tarde" Else Turno = "Noche" End If LbNombre.Items.Add(Nombre) LbEdad.Items.Add(Edad.ToString) LbTurno.Items.Add(Turno) LbCasado.Items.Add(Casado) TxtNombre.Clear() UpEdad3.Value = 18 CkCasado.Checked = False RbMaana.Checked = False RbTarde.Checked = False RbNoche.Checked = False TxtNombre.Focus() End Sub Private Sub LbNombre_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LbNombre.SelectedIndexChanged Seleccionar(LbNombre.SelectedIndex) End Sub Private Sub LbEdad_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LbEdad.SelectedIndexChanged Seleccionar(LbEdad.SelectedIndex) End Sub Private Sub LbTurno_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LbTurno.SelectedIndexChanged Seleccionar(LbTurno.SelectedIndex) End Sub Private Sub LbCasado_SelectedIndexChanged(ByVal sender As System.Object, ByVal System.EventArgs) Handles LbCasado.SelectedIndexChanged Seleccionar(LbCasado.SelectedIndex) End Sub Private Sub BtnQuitar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnQuitar.Click If LbNombre.SelectedIndex < 0 Then MessageBox.Show("Seleccione MessageBoxIcon.Information) un elemento", "Para Quitar", MessageBoxButtons.OK, e As

Semestre 2012 - I

72

73

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Else Quitar(LbNombre.SelectedIndex) End If End Sub Private Sub BtnLimpiar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLimpiar.Click LbNombre.Items.Clear() LbTurno.Items.Clear() LbEdad.Items.Clear() LbCasado.Items.Clear() End Sub Sub Seleccionar(ByVal Elemento As Integer) LbNombre.SelectedIndex = Elemento LbTurno.SelectedIndex = Elemento LbEdad.SelectedIndex = Elemento LbCasado.SelectedIndex = Elemento End Sub Sub Quitar(ByVal Elemento As Integer) LbNombre.Items.RemoveAt(Elemento) LbTurno.Items.RemoveAt(Elemento) LbEdad.Items.RemoveAt(Elemento) LbCasado.Items.RemoveAt(Elemento) End Sub End Class

Semestre 2012 - I

73

74

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

LABORATORIO - 003
Elaborar una aplicacin que permita ingresar :

Nombre de una Persona Seleccionar el Sexo de una persona Seleccionar el Estado Civil Ingresar la Edad.

Cuando se ingresa la Edad y se presiona ENTER, se mostrara la informacion ingresada y seleccionada en las listas respectivamente, y al mismo tiempo se debera mostrar Los Nros que solicitan en la parte inferior.

List: Masculino Femenino List: Soltero Casado Viudo Divorciado Conviviente

Semestre 2012 - I

74

75

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

LABORATORIO - 004
Elaborar una aplicacin que permita ingresar : Nombre de una Persona Seleccionar el Turno Seleccionar el Ciclo Seleccionar la Especialidad Seleccionar los datos Adicionales.

Se debera tomar en cuenta las siguientes alternativas : ESPECIALIDADES Contabilidad Computacion 290 290 310 320 260 270 280 280 295 295 340 340

Turno Maana Tarde Noche

Ciclo I , II y III IV, V ,VI I , II y III IV, V ,VI I , II y III IV, V ,VI

Turismo 280 300 250 270 284 320

Secretariado 285 315 265 270 290 325

Los precios se mostrara en la Caja de Texto Mensualidad, asi mismo cuando seleccionamos un dato Adicional esta se acumulara en la caja de texto Pago Adicional. El Descuento sera de la siguiente manera : Turno Maana Tarde Noche Descuento 2% de la Suma (Mensualidad + Adicional) 3% de la Suma (Mensualidad + Adicional) 4% de la Suma (Mensualidad + Adicional)

List : Maana Tarde Noche List : I II III IV V VI

Semestre 2012 - I

75

76

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

SESIN IV PROCESOS REPETITIVOS


CONTENIDO

For/Next For Each While/End While Do/Loop Estructuras PRCTICA DE REFORZAMIENTO

Semestre 2012 - I

76

77

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


PROCESOS REPETITIVOS
Los procesos repetitivos o llamados bucles, se utilizan para repetir el o los cdigos, un nmero determinado de veces, para esto usaremos el For, que nos permitir repetir un nmero determinado de veces el cdigo. For / Next Con este tipo de bucle podemos repetir un cdigo un nmero determinado de veces. Sintaxis: For <variable numrica> = <valor inicial> To <valor final> [Step <incremento>] 'contenido del bucle, lo que se va a repetir Next Primera Forma: Una de las formas ms utilizadas. For i = 1 To 10 'contar de 1 hasta 10 'la variable i tomar los valores 1, 2, 3, etc. Next Segunda Forma: Esta forma se utiliza para decirle como va a incrementar, ya sea como el ejemplo de 2 en 2. For i = 1 To 100 Step 2 'contar desde 1 hasta 100 (realmente 99) de 2 en 2 'la variable i tomar los valores 1, 3, 5, etc. Next Tercera Forma: Cuando queremos que un bucle sea en decreciente solo bastar darle un valor negativo, al nmero, como en el ejemplo, queremos que en vez que avance del 1 al 10 queremos que este vaya del 10 al 1. For i = 10 To 1 Step -1 'contar desde 10 hasta 1 'la variable i tomar los valores 10, 9, 8, etc. Next

Semestre 2012 - I

77

78

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


For Each Este bucle repetir o iterar por cada uno de los elementos contenidos en una coleccin. Sintaxis: For Each <variable> In <coleccin del tipo de la variable> 'Lo que se har mientras se repita el bucle Next Ejemplo: Dim s As String For Each s In "Hola Mundo"

Console.WriteLine(s) Next Console.ReadLine() Este bucle recorre cada uno de los caracteres de una cadena, en este caso recorrer cada carcter de la cadena s (Hola Mundo). Comenzando por la H y de ah la o y as hasta la ltima o de la palabra Mundo. Las estructuras repetitivas o llamados tambin bucles, se utilizan para repetir el o los cdigos, hasta que la expresin evaluada de un valor de Falso. While / End While Se repite mientras se cumpla la expresin lgica que se indicar despus de While Sintaxis: While <expresin> Lo que haya que hacer mientras se cumpla la expresin End While Ejemplo: While i < 10 Console.WriteLine(i) i=i+1 End While

Semestre 2012 - I

78

79

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Este cdigo escribir el valor de i hasta que el valor de i tome el valor 10 Do / Loop Este tipo de bucle es muy parecido al anterior. Si se utiliza solo con esas dos instrucciones, este tipo de bucle no acabar nunca y repetir todo lo que haya entre Do y Loop. Pero este tipo de bucle se puede usar con dos instrucciones que nos permitirn evaluar expresiones lgicas: While y Until Pero no debemos confundir este While con el While/End While que acabamos de ver anteriormente. La ventaja de usar While o til con los bucles Do/Loop es que estas dos instrucciones podemos usarlas tanto junto a Do como junto a Loop, la diferencia est en que si los usamos con Do, la evaluacin se har antes de empezar el bucle, mientras que si se usan con Loop, la evaluacin se har despus de que el bucle se repita al menos una vez. Sintaxis: Primera Forma: Este bucle evala al principio, mejor dicho realizara el cdigo o las instrucciones un numero que digamos que sea n veces. Do While <expresin> de

Instruccin Loop Segunda Forma: Este bucle evala al final, mejor dicho realizara el cdigo o las instrucciones n veces. Do Instruccin Loop While <expresin> Tercera Forma: Este bucle evala al principio, a diferencia que el primero realizara el cdigo siempre y cuando la expresin sea falsa, mejor dicho realizara el cdigo o las instrucciones n veces. Do Until <expresin>

Instruccin Loop Cuarta Forma: Este bucle evala al final, a diferencia que el segundo realizara el cdigo siempre y cuando la expresin sea falsa, mejor dicho realizara el cdigo o las instrucciones n 1 veces Do Instruccin

Semestre 2012 - I

79

80

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Loop Until <expresin>

Ejemplo con PROCESOS REPETITIVOS

Public Class Form10 Dim I As Integer Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click I=0 While (I <= 20) I=I+1 ListBox1.Items.Add(I) End While End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click I=0

Semestre 2012 - I

80

81

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Do I=I+1 ListBox2.Items.Add(I) Loop While (I <= 20) End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click I=0 Do While (I < 20) I=I+1 ListBox3.Items.Add(I) Loop End Sub Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click For I = 1 To 20 ListBox4.Items.Add(I) Next End Sub

Semestre 2012 - I

81

82

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


ESTRUCTURA S
Es una combinacin de tipos de datos 1. 2. Se utilizan para crear tipos de valores definidos por el usuario Sus miem bros pueden ser variables, propiedades, mtodos o eventos

Ejemplo de estructura definida por el usuario: Public Structure Empleado Public Nombre As String Public Apellido As String Public FechaContrato As Date Public Cargo As String Private Salario As Decimal End Structure Crear una estructura para almacenar informacin sobre coches Declare una estructura pblica con el nombre CarInfo en la seccin de declaraciones de Form1. Incluya los miembros que se muestran en la siguiente tabla. Public Structure CarInfo Public Marca As String Public Modelo As String Public PrecioCompra As Single Public FechaCompra As Date Declare una variable de tipo CarInfo y asgnele valores 1. En el evento Button1_Click, declarar una variable con el nombre miCoche de tipo de estructura CarInfo. El cdigo debera ser parecido a: Dim miCoche As CarInfo 2. Asignar valores a los miembros de la estructura. Podemos utilizar los siguientes valores o escoger otros. miCoche.Marca = "Jeep" miCoche.Modelo = "Cherokee" miCoche.PrecioCompra = 27999 miCoche.FechaCompra = #06/23/2000#

Semestre 2012 - I

82

83

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Visualizar la informacin del coche en los cuadros de texto Establezca las propiedades TextBox para visualizar la estructura CarInfo estructura en cuadros de texto en el formulario. El cdigo debera ser parecido a: TextBox1.Text = miCoche.Marca TextBox2.Text = miCoche.Modelo TextBox3.Text = miCoche.PrecioCompra TextBox4.Text = miCoche.FechaCompra Ejecutar y probar la aplicacin Ejecutar la aplicacin y hacer clic en Display Car Structure. El formulario que se ejecute debera tener un aspecto parecido a ste

Semestre 2012 - I

83

84

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

LABORATORIOS
LABORATORIO - 001
Elaborar una aplicacin que permita ingresar : Nombre de una Persona Seleccionar una Zona (Norte y Sur) Al ingresar El Monto de la Venta y se presiona ENTER se calcula : La Movilidad sera : o o Norte 20 soles Sur 15 soles 3% del Monto 2% del Monto

La Comision sera de : o o

Al mismo tiempo se ingresara automaticamente la informacion que se solicita en las listas. Cuando se presione el Boton RESUMEN se mostrara los Totales que se solicitan.

Semestre 2012 - I

84

85

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

LABORATORIO - 002
Crear una aplicacin que permita agregar los datos de sus amigos en las listas que se muestran en el diseo, para ello debera tomar en cta lo siguiente: El codigo debera estar creado de la siguiente manera: (Primer carcter del Apellido Paterno + Primer carcter del Apellido Materno + Ao + Mes del Nacimineto). Se debe agregar en la Lista Apellido Los Apellidos y Nombres. Asi como en la Lista signo debe mostrar el signo de la Persona de acuerdo a su fecha de nacimiento.

Semestre 2012 - I

85

86

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

LABORATORIO - 003
Crear una aplicacin que me permita adicionar a un grupo de datos que son ingresados desde ciertos controles, estos controles estan distribuidos de la siguiente manera :

Semestre 2012 - I

86

87

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

SESIN V PROCEDIMIENTOS Y ARREGLOS


CONTENIDO

PROCEDIMIENTOS Y FUNCIONES ARREGLOS

ARREGLOS TIPO LISTA ARREGLOS TIPO TABLA ARREGLOS CON PARAMETROS ARREGLOS DE CONTROLES

PRCTICA DE REFORZAMIENTO

Semestre 2012 - I

87

88

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


PROCEDIMIENTOS Son pequeos programas que son invocados desde cualquier parte de un programa Se usa de la siguiente forma: Sub nombre_procedimiento(Byval argumento1 as tipo1,Byval argumento2 as tipo2.) Sentencia1 Sentencia2 End sub Se les llama de la siguiente forma: Call nombre_procedimiento(argumento1,argumento2..) FUNCIONES Son pequeos programas que son invocados desde cualquier parte de un programa pero que valor Se usa de la siguiente forma: Sub nombre_funcion(Byval argumento1 as tipo1,Byval argumento2 as tipo2.) Sentencia1 Sentencia2 End sub Se les llama de la siguiente forma: variable=nombrefuncion(arg1,arg2,arg3) EJEMPLO CON PROCDEMIENTOS Y FUNCIONES devuelven un

Semestre 2012 - I

88

89

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Public Class Form12 Dim n1, n2, n3 As Integer, obtenerprom, prome As Single Function promedio(ByVal x As Integer, ByVal y As Integer, ByVal z As Integer) As Single promedio = (x + y + z) / 3 Return promedio End Function Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click n1 = Val(TextBox1.Text) n2 = Val(TextBox2.Text) n3 = Val(TextBox3.Text) 'con funciones obtenerprom = promedio(n1, n2, n3) TextBox4.Text = obtenerprom.ToString("##.00") 'llamar a procedimientos Call mensaje() End Sub Sub mensaje() If obtenerprom >= 11 Then MsgBox("ESTAS APROBADO") Else MsgBox("ESTAS DESAPROBADO") End If End Sub Sub CALCULARPROM(ByVal m As Integer, ByVal n As Integer, ByVal p As Integer) prome = (m + n + p) / 3 TextBox4.Text = prome.ToString("##.00") End Sub End Class Public Class Form13 Dim n1, n2, n3 As Integer, prome As Single, cadena As String Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click n1 = Val(TextBox1.Text) n2 = Val(TextBox2.Text) n3 = Val(TextBox3.Text) Call CALCULARPROM(n1, n2, n3) End Sub Sub CALCULARPROM(ByVal m As Integer, ByVal n As Integer, ByVal p As Integer) prome = (m + n + p) / 3 TextBox4.Text = prome.ToString("##.00") If prome >= 11 Then

Semestre 2012 - I

89

90

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


cadena = "ESTAS APROBADO" Else cadena = "ESTAS DESAPROBADO" End If Call MENSAJE(cadena) End Sub Sub MENSAJE(ByVal TEXTO As String) MsgBox(TEXTO) End Sub End Class

Semestre 2012 - I

90

91

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


ARREGLOS
Uno de los problemas ms comunes en los diversos sistemas de informacin es el tratamiento o procesamiento de una gran volumen de datos o de informacin. Las variables usadas hasta ahora reciben propiamente el nombre de variables escalares porque solo permiten almacenar o procesar un dato a la vez. Por ejemplo si se quiere almacenar nombre y edad de 15 personas con el mtodo tradicional se ocuparan 30 variables y solo es nombre y edad de 15 personas, agreguen ms datos y ms personas y ya es tiempo de empezar a analizar otro tipo de variables. Es decir, en problemas que exigen manejar mucha informacin o datos a la vez, variables escalares no son suficientes ya que su principal problema es que solo permiten almacenar y procesar un dato a la vez. Se ocupan entonces variables que sean capaces de almacenar y manipular conjuntos de datos a la vez. Variables de tipo arreglo si permiten almacenar y procesar conjuntos de datos del mismo tipo a la vez. Cada dato dentro del arreglo se le conoce como elemento del arreglo y se simboliza y procesa (captura, operacin, despliegue) usando el nombre del arreglo respectivo y un subndice indicando la posicin relativa del elemento con respecto a los dems elementos del arreglo, solo recordar que en VISUAL BASIC 2008 la primera posicin, elemento o rengln es el 0 (cero), ej. NOMBRES Juan >nombres(0) Pedro nombres(1)

Rosa > nombres(2) Jose > nombres(3) Sin embargo sus problemas son similares a los de variables normales es decir hay que declararlos, capturarlos, hacer operaciones con ellos, desplegarlos, compararlos, etc. En programacin tradicional siempre se manejan dos tipos de arreglos los arreglos tipo listas, vectores o unidimensionales y los arreglos tipo tablas, cuadros, concentrados, matrices o bidimensionales en ambos casos son variables que permiten almacenar un conjunto de datos del mismo tipo a la vez, su diferencia es en la cantidad de columnas que cada uno de estos tipos contiene, como en los siguientes ejemplos: a) LISTAS DE EDADES

18 34 22 15

Semestre 2012 - I

91

92

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


B) TABLAS DE SUCURSALES SUC A 10 20 30 SUC B 50 60 70 40 80

SUC D 90 100 110 120

Como se observa la diferencia principal entre un arreglo tipo lista y un arreglo tipo tabla son las cantidades de columnas que contienen.

ARREGLO TIPO LISTA


Un arreglo tipo lista se define como una variable que permite almacenar un conjunto de datos del mismo tipo organizados en una sola columna y uno o ms renglones. Tambin reciben el nombre de vectores en algebra o arreglos unidimensionales en programacin. Los procesos normales con una lista o con sus elementos incluyen declarar toda la lista, capturar sus elementos, desplegarlos, realizar operaciones con ellos, desplegarlos, etc. Para declarar una lista se usa el siguiente formato; SHARED DIM NOMLISTA (CANT ELEMENTOS -1) AS TIPODATO Shared(compartido), se usa cuando la lista se tenga que compartir entre varias subrutinas, observar que cada botn de comando en un programa empieza con sub-end sub, si un programa tiene varias subrutinas que compartan la misma lista, dicha lista deber ser SHARED. La cantidad de elementos-1, significa que si se quiere una lista de 5 ciudades por ejemplo su declaracin ser shared dim ciudad (4) as string, la razn de esto es que visual basic empieza una lista por el elemento o rengln cero (0), por tanto cuando se pide crear una lista de 4 ciudades, visual basic net le agrega el rengln o elemento 0, que en total daran 5 ciudades. Es tambin importante recordar que un arreglo en visual basic net es realmente un objeto derivado de la clase SYSTEM.ARRAY. Recordar tambin que como objeto arreglo, tambin puede usar una serie de mtodos pertenecientes a dicha clase system.array, los metodos principales de dicha clase y por tanto de los arreglos derivados de la misma son: Public Methods BinarySearch Overloaded. Searches a one-dimensional sorted Array for a value, using a binary search algorithm. Clear Sets a range of elements in the Array to zero, to false, or to a null reference (Nothing in Visual Basic), depending on the element type. Clone Creates a shallow copy of the Array. Copy Overloaded. Copies a section of one Array to another Array and performs type casting and boxing as required. CopyTo Copies all the elements of the current one-dimensional Array to the specified one-dimensional Array starting at the specified destination Array index. CreateInstance Overloaded. Initializes a new instance of the Array class. Equals (inherited from Object) Overloaded. Determines whether two Object instances are equal. GetEnumerator Returns an IEnumerator for the Array.

Semestre 2012 - I

92

93

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


GetHashCode (inherited from Object) Serves as a hash function for a particular type, suitable for use in hashing algorithms and data structures like a hash table. GetLength Gets the number of elements in the specified dimension of the Array GetLowerBound Gets the lower bound of the specified dimension in the Array. GetType (inherited from Object) Gets the Type of the current instance. GetUpperBound Gets the upper bound of the specified dimension in the Array. GetValue Overloaded. Gets the value of the specified element in the current Array. IndexOf Overloaded. Returns the index of the first occurrence of a value in a one-dimensional Array or in a portion of the Array. Initialize Initializes every element of the value-type Array by calling the default constructor of the value type. LastIndexOf Overloaded. Returns the index of the last occurrence of a value in a one-dimensional Array or in a portion of the Array. Reverse Overloaded. Reverses the order of the elements in a one-dimensional Array or in a portion of the Array. SetValue Overloaded. Sets the specified element in the current Array to the specified value. Sort Overloaded. Sorts the elements in one-dimensional Array objects. ToString (inherited from Object) Returns a String that represents the current Object. FUENTE: Ayuda Microsoft Net notas: En visual Basic 2008 recordar que la primera posicion o renglon en una lista es la posicion o renglon 0 (cero). El dato capturado, proviene de momento de un componente escalar textbox y/o se usan tantos de estos controles como elementos tenga el arreglo o mas facil aun se debera controlar la captura de elementos usando algun algoritmo sencillo de validacion como lo muestra el programa ejemplo.

Public Class Form1 Shared EDADARR(4) As Integer ' DECLARANDO RENG COMO GLOBAL

Semestre 2012 - I

93

94

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Dim RENG As Integer Private Sub Form1_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated EDAD.Focus() End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load EDAD.Focus() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click ' LIMPIANDO LISTAS LISTA1.Items.Clear() LISTA2.Items.Clear() ' CARGANDO LISTA ORIGINAL CON EDAD CAPTURADA For RENG = 0 To 4 LISTA1.Items.Add(EDADARR(RENG)) Next ' A MESES Y Y DESPLEGANDO For RENG = 0 To 4 EDADARR(RENG) = EDADARR(RENG) * 12 LISTA2.Items.Add(EDADARR(RENG)) Next End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' EN ESTE MODULO SOLO SE TRABAJA CON EL ARREGLO ' EN MEMORIA EDAD.Focus()

Semestre 2012 - I

94

95

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


LISTA1.Items.Add(EDAD.Text) Label2.Text = RENG

If RENG <= 5 Then EDADARR(RENG) = Val(EDAD.Text) RENG = RENG + 1 EDAD.Text = "" End If If RENG >= 5 Then EDAD.Visible = False RENG = 0 End If End Sub End Class

Notas:
Observar que en el programa el arreglo edad y la variable rengln se declararon de tipo GLOBAL porque los dos mtodos el de captura y el de operacin-despliegue, las estn compartiendo. Adems observar que se declararon antes de los eventos clickButton, para crearlos como objetos globales. Para el caso de operaciones y comparaciones con todos los elementos de la lista a la vez se deber usar un ciclo for con una variable entera llamada rengln, misma que tambin se usa como ndice de la lista. Recordar que todos los datos internos de la lista estarn almacenados en la memoria ram del computador, para despliegues se usa un componente visual que permite manipular un conjunto de datos a la vez, el ListBox con sus mtodos apropiados pero se tiene que usar un ciclo for para ir aadiendo o agregando elemento por elemento como se observa en el problema ejemplo que se ha venido desarrollando, en este caso se quiere desplegar las cinco edades convertidas a meses. La ultima instruccin y muy importante es poner en cero las variables de control de ciclos o ndice de arreglos, esto es porque el servidor mantiene el programa ejecutndose continuamente en memoria y si se vuelve a pedir la ejecucin del programa, en cuento se intente capturar un nuevo dato va a marcar el error arreglo fuera delimite o arrayofbound, estn avisados. Para inicializar una lista se debe usar el siguiente formato: shared dim nomlista() as tipodato={lista de valores separados por comas} ej;

Semestre 2012 - I

95

96

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


shared dim edad() as integer = {15,16,17,18} shared dim sueldo() as double = {40.85, 65.30, 33.33} shared dim ciudad() as string = {tecate, tijuana, mexicali, rosarito, ensenada} TAREAS PROGRAMACION VISUAL BASIC 2008 1.- Capturar y desplegar 5 precios de productos cualesquiera usando dos panel uno para capturar y uno para desplegar 2.- Capturar 4 sueldos en un panel desplegarlos aumentados en un 25% en otro panel 3.- Capturar los datos de 5 productos comprados en una tienda, incluyendo nombre, precio y cantidad en sus 3 listas respectivas, despus calcular una cuarta lista con el gasto total por cada producto desplegarlo todo en un segundo panel e incluir tambin el gran total 4.- Capturar en una lista solamente 6 nmeros mltiplos de 5, se debe de estar capture y capture nmeros hasta que se completen los 6 mltiplos de 5 ARREGLOS TIPO TABLA Un arreglo tipo tabla se define como un conjunto de datos del mismo tipo organizados en dos o ms columnas y uno o ms renglones. Para procesar (recordar solo operaciones y comparaciones) internamente todos los elementos de la tabla se ocupan dos ciclos for uno externo para controlar rengln y uno interno para controlar columna. Los elementos de la tabla se debern simbolizar con el nombre de la tabla y 2 subndices, el primer subndice referencia al rengln y el siguiente subndice referencia la columna los dos dentro del mismo corchete. La declaracin de una tabla ser de acuerdo al siguiente formato: SHARED DIM NOMTABLA (RENG-1,COL-1) AS TIPODATO Ej: SHARED DIM SUELDO (3,4) AS DOUBLE RECORDAR QUE VA A GENERAR UNA MATRIZ QUE TENDRA CUATRO RENGLONES Y CINCO COLUMNAS EMPIEZA EN SUELDO (0,0) Para capturar sus elementos, usaremos un textbox y un botn de captura, solo tener cuidado o mucho control sobre los ndices rEN y col como lo muestra el ejemplo. Para efectuar otros procesos tales como operaciones, despliegues con todos los elementos de la tabla se debern usar 2 ciclos un for externo para controlar rengln y un for interno para controlar columna.

Semestre 2012 - I

96

97

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Public Class Form2 ' DECLARANDO LISTA GLOBAL ' RECORDAR QUE SON 3 RENG Y 4 COLUMNAS Shared CALIFICACION(2, 3) As Integer ' DECLARANDO RENG Y COL COMO GLOBAL Dim R, C As Integer Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' EN ESTE MODULO SOLO SE TRABAJA CON EL ARREGLO ' EN MEMORIA CALIFICACION(R, C) = CALIF.Text C=C+1 CALIF.Text = "" If C = 4 Then R=R+1 C=0 End If If R = 3 Then CALIF.Visible = False End If End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim TEMP As String ' PROCESANDO Y REGALANDO 5 PUNTOS A TODOS For R = 0 To 2 For C = 0 To 3 CALIFICACION(R, C) = CALIFICACION(R, C) + 5 Next C Next R

Semestre 2012 - I

97

98

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


' desplegando For R = 0 To 2 TEMP = CALIFICACION(R, 0) & " " & CALIFICACION(R, 1) & " " & CALIFICACION(R, 2) & " CALIFICACION(R, 3) LISTA1.Items.Add(TEMP) ' limpiando temporal antes de otro renglon TEMP = " " Next End Sub End Class Notas: Observar el formato de declaracin y como se controlan los ndices de captura r, c Para procesar los elementos se usan dos ciclos for y el formato tabla (reng,col). En este problema se usa el objeto LISTBOX para presentar el resultado ms adelante se usara un objeto ms apropiado. Corrida: Para inicializar tablas, se usa el siguiente formato: Dim nomarreglo() As tipodato = {lista valores} Dim ciudades() as String = {tijuana', tecate, ensenada} Recordar que no se pueden inicializar arreglos de tamano fijo, para inicializar tablas aqu est el ejemplo: Dim alfa(,) As Integer = {{1, 2}, {3, 4} {5,6} } TAREAS PROGRAMACION VISUAL BASIC 2008 1.- CONSTRUIR UN CUADRO QUE CONTENGA LOS COSTOS FIJOS DE CUATRO PRODUCTOS CUALESQUIERA, QUE SE PRODUCEN EN TRES PLANTAS DIFERENTES DE UNA EMPRESA MAQUILADORA (2 prog uno capturado y otro inicializado). 2.- CONSTRUIR UN CUADRO QUE CONTENGA LOS INGRESOS MENSUALES POR VENTAS DURANTE LOS TRES PRIMEROS MESES DEL ANO DE CUATRO SUCURSALES DE UNA CADENA DE AUTO REFACCIONES, AGREGAR AL FINAL UNA LISTA QUE MUESTRE LOS INGRESOS MENSUALES TOTALES POR MESES Y UNA SEGUNDA LISTA QUE MUESTRE LOS INGRESOS MENSUALES TOTALES POR SUCURSAL(2 progs uno capturado y otro inicializado). 3.-CONSTRUIR UN CUADRO QUE CONTENGA LAS COMISIONES GANADAS POR TRES VENDEDORES, DE LOS 5 TIPOS DE LINEA BLANCA DE CONOCIDA MUEBLERIA, ADEMAS LISTAS DE COMISIONES TOTALES Y PROMEDIOS GANADAS POR LOS VENDEDORES, ASI COMO LISTAS DE COMISIONES TOTALES Y PROMEDIOS POR TIPO DE LINEA BLANCA ANALIZAR ESTE CODIGO Y ESCRIBA LOS RESULTADOS QUE SE OBTIENEN PARA TOTALES Y PROMEDIOS POR RENGLON FOR R = 0 TO 3 FOR C = 0 TO 2 " &

Semestre 2012 - I

98

99

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

TOTRENG(R) = TOTRENG(R) + TABLA(R,C) NEXT C PROMRENG(R) = TOTRENG(R)/3 NEXT R 'PARA TOTALES Y PROMEDIOS POR COLUMNA FOR C = 0 TO 2 FOR R = 0 TO 3 TOTCOL(C)=TOTCOL(C) + TABLA(R,C) NEXT R PROMCOL(C) = TOTCOL(C) / 4 NEXT C

ARREGLOS CON LISTBOX ListBox uno de los nuevos Controls, es un componente DINAMICO(es decir no tiene tamao definido) que permite procesar visualmente un conjunto de elementos de tipo string. La propiedad Rows que se usa al crearlo, es solo para indicarle cuantos renglones desplegara en pantalla, es decir si se usa rows=5, en listbox se podr capturar todos los elementos o datos que se quiera pero solo desplegara los ltimos cinco elementos. Sin embargo existen ciertas propiedades del listbox que permiten conocer cuntos elementos estn cargados en el listbox. Otra importante aspecto a recordar cuando se procese o programe, es que el primer ndice de la lista, es el ndice numero 0(cero). Este componente, contiene muchas propiedades y mtodos que facilitan el trabajo con datos la ms importante es su propiedad ITEMS, que a su vez tiene: PROPIEDAD ACCION O SIGNIFICADO Items.Add(dato): Inserta un elemento al final del listbox. Items.Clear(): Elimina todos los elementos de la lista. Items.Count(): Regresa la cantidad de elementos en lista. Items.Sorted = true; Ordena los elementos de la lista usada solo al tiempo de diseo.

Semestre 2012 - I

99

100

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Items.Contains(dato): Regresa true o false, si el dato se encuentra o no encuentra en la lista. Items.IndexOf(dato): Regresa el ndice del objeto dentro del listbox. Items.Insert(indice,dato): Inser ta el dato en la posicion indicada. Items.Remove(dato): Elimina el dato de el listbox. Items.RemoveAt(indice): Elimina el dato que est en la posicin indicada. Items[indice]: get or set el dato en la posicin indicada (ver primera nota abajo). Notas: GET y SET son propiedades asociadas a todos los objetos o controles y sus propiedades en microsoft net, por ejemplo para un textbox, si en un programa se dice alfa = text5.text; se est usando get, si se dice text5.text=500; se est usando set. Otro ejemplo alfa=listbox2.Items(2); se est usando (get) listbox2.Items(4)=mama; se est usando (set). OBSERVAR QUE NO SE USA PROPIEDAD TEXT. Esto de get-set se puede usar para cualquier propiedad, por ejemplo alfa = listbox8.background; se est usando get, pero si se codifica listbox8.background=amarillol; se est usando set, como se observa es importante entender y aplicar este GET-SET en todos los programas. Capturas: Solo se ocupara un TextBox, el evento click del button y el metodo Add del ListBox. Proceso: Se ocupara un ciclo for y el metodo count de ListBox. Despliegues: No se ocupa porque todos los cambios son visibles. Pero si se quiere pasar de un ListBox a otro ListBox, entonces ciclo for, count, etc. Ejemplo prog se

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click LISTA.Items.Add(DATO.Text) DATO.Text = "" End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim r, cant, meses As Integer cant = LISTA.Items.Count

Semestre 2012 - I

100

101

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


For r = 0 To cant - 1 meses = LISTA.Items(r) meses = meses * 12 LISTA.Items(r) = meses Next r End Sub Recordar que el primer indice en un ListBox es el cero por eso el ciclo va desde el cero hasta la cantidad de elementos menos uno. Corrida:

TAREAS PROGRAMACION VISUAL BASIC 2008 1.- CAPTURAR EN UNA LISTA LOS SUELDOS DE 6 EMPLEADOS Y DESPLEGARLOS EN UNA SEGUNDA LISTA AUMENTADOS EN UN 30%. 2.- CAPTURAR EN UNA LISTA LOS PESOS EN KILOGRAMOS DE 6 PERSONAS DESPLEGARLOS EN UNA SEGUNDA LISTA CONVERTIDOS A LIBRAS Y ADEMAS SOLO LOS MAYORES DE 100 LIBRAS. 3.- CAPTURAR EN SUS 4 LISTAS RESPECTIVAS MATRICULA, NOMBRE Y DOS CALIFICACIONES DE 5 ALUMNOS, DESPUES CALCULAR UNA LISTA DE PROMEDIOS DE CALIFICACIONES.

Semestre 2012 - I

101

102

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


4.CAPTURAR EN SUS LISTAS RESPECTIVAS NUMEMPLEADO,

NOMEMPLEADO, DIAS TRABAJADOS Y SUELDO DIARIO DE 5 EMPLEADOS, DESPLEGAR EN OTRA PANTALLA O PANEL LA NOMINA PERO SOLO DE AQUELLOS EMPLEADOS QUE GANAN MAS DE $300.00 A LA SEMANA ARREGLOS COMO PARAMETROS Para pasar un arreglo completo como parmetro a un procedimiento o a una funcin solo se manda el nombre del arreglo sin corchetes e ndices, en el procedimiento o funcin que recibe solo se declara un arreglo del mismo tipo y se puede usar el mismo o diferente nombre del arreglo sin corchetes e ndices. Sin embargo es conveniente aclarar, que a diferencia de variables escalares normales visual basic 2008 no genera una nueva variable en memoria ni tampoco copia los datos al arreglo que recibe, en su lugar visual basic sigue usando los datos que estn en el arreglo original, es por esta razn que cambios que se le hagan a los datos del arreglo que recibe realmente se est haciendo al arreglo original como lo muestra el siguiente ejemplo:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' creando y cargando una lista local con 5 elementos Dim lista1() As Integer = {1, 2, 3, 4, 5} ' pasandola a un procedimiento ' observar que se pasa sin parentesis Call PROC1(lista1) ' desplegando lista original y observar el resultado Dim r As Integer For r = 0 To 4

Semestre 2012 - I

102

103

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


LISTA.Items.Add(lista1(r)) Next r End Sub Sub PROC1(ByVal vector) ' recibiendola con otro nombre y ' sumando a vector + 100 Dim r As Integer For r = 0 To 4 vector(r) = vector(r) + 100 Next r End Sub

Parmetro

ARRAYS DE CONTROLES
Visual Basic cuenta con el concepto de array de controles, en el que varios controles comparten el mismo conjunto de procedimientos de suceso, incluso aunque cada uno de los elementos individuales en el array pueda tener asignados diferentes valores para sus propiedades. Slo podr crear un array de control en tiempo de diseo y, como mnimo, al menos un control debe pertenecer al array. Podr crear un array de controles utilizando cualquiera de los siguientes mtodos: 1. 2. Crear un control y, posteriormente, asihnar un valor numrico (no negativo) a su propiedad Index; de esta forma habr creado un array de control con un nico elemento. Crear dos controles de la misma clase y asignarles el mismo valor a su propiedad Name. Visual Basic muestra un cuadro de dilogo avisndole que ya existe un control con el mismo nombre y le preguntara si desea crear un array de controles. 3. Seleccionar un control del formulario, pulsar Crtl + C para copiarlo en el portapapeles y, posteriormente, pulsar Ctrl + V para pegar una nueva instancia del control con la misma propiedad Name que el objeto inicial. Visual Basic muestra el mensaje de aviso mencionando en el punto anterior. Los array de controles son una de las caractersticas ms interesantes del entorno Visual Basic y aade una gran flexibilidad a sus programas:

Los controles que pertenecen al mismo array comparten el mismo conjunto de procedimientos de suceso; de esta forma podr reducir drsticamente la cantidad de cdigo que tendr que escribir en respuesta a una accin del usuario.

Podr aadir dinmicamente nuevos elementos al array de controles en tiempo de ejecucin; en otras palabras, podr crear nuevos controles que no existan en tiempo de diseo. Los elementos de los array de controles consumen pocos recursos en comparacin con los controles

Semestre 2012 - I

103

104

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


normales y producen archivos ejecutables de menor tamao. Adems, los formularios de Visual Basic pueden almacenar hasta 256 nombres de controles distintos, pero un array de controles cuenta como uno solo de estos nombres. En otras palabras , los arrays de controles le permiten superar con facilidad esa limitacin EJEMPLO: Crear el siguiente array de controles para el ingreso de la siguiente informacin

Public Class Form1 Inherits System.Windows.Forms.Form

Dim T(7) As TextBox Dim Lb(7) As Label Dim Titu() As String = {"Nombre:", "Domicilio:", "Localidad:", "Partido:", "Telfono:", "Pas:", "Cdigo Postal:"}

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim I As Integer, Y As Integer For i = 0 To 6 T(i) = New TextBox() Lb(I) = New Label() Lb(I).Text = Titu(I) Next

Semestre 2012 - I

104

105

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

For i = 0 To 6 Me.Controls.Add(T(i)) Me.Controls.Add(Lb(I)) Lb(I).Top = Y + 3 T(I).Top = Y Y = Y + 30 T(I).Text = Rnd() * 200 T(I).Left = 80 Next End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click T(0).text = "hola" End Sub End Class

Semestre 2012 - I

105

106

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

LABORATORIOS
Elaborar una aplicacion que me permita llamar a dos cuadros de dialogo (Fuente y Color) los cuales al ser activado van alterar el contenido de la caja de texto donde se ingreso la informacion.

Public Class Form1 Private Sub BtnFuente_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnFuente.Click 'Para establecer tambien el color de la letra FontD.ShowColor = True 'Activa el cuadro de dilogo FontD.ShowDialog() 'Asigna al texto escrito el Tipo,Tamao y estilo de letra seleccionado TxtTexto.Font = FontD.Font 'Asigna al texto escrito el color de letra seleccionado TxtTexto.ForeColor = FontD.Color End Sub Private Sub BtnColor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnColor.Click 'Activa el Cuadro de Dilogo ColorD.ShowDialog() 'Asigna el color seleccionado al fondo del texto TxtTexto.BackColor = ColorD.Color End Sub Private Sub TxtTexto_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtTexto.TextChanged BtnFuente.Enabled = TxtTexto.Text.Trim <> String.Empty BtnColor.Enabled = TxtTexto.Text.Trim <> String.Empty End Sub End Class

Semestre 2012 - I

106

107

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

SESIN VI
CONTROL DE EXCEPCIONES Y MENUES

CONTENIDO Control de Excepciones Minus Principal y Contextual PRCTICA DE REFORZAMIENTO

Semestre 2012 - I

107

108

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


CONTROL DE EXCEPCIONES
Una excepcin es un error inesperado que puede ocurrir durante la ejecucin de un programa, lo que genera que la ejecucin se detenga o funciones en forma incorrecta. El control de excepciones en toda aplicacin es muy importante, porque permite brindar informacin adecuada al usuario de la aplicacin sobre el problema detectado, sin necesidad que s e interrumpa su ejecucin y permitiendo que se corrija el problema. En Visual Basic .NET existe la clase Excepcin que permite controlar las excepciones dentro de un aplicacin. Para empezar a controlar las excepciones debe definir una variable con esta clase .Por ejemplo: Dim Ex As Exception La variable que se define con la clase Exception tendr toda la informacin de la excepcin o error que se produce. Por ejemplo:

Cuando ocurre una excepcin dentro de un programa y no se controla la ejecucin del programa, se deetiene y se visualiza una ventana similar a la siguiente, dependeiendo del tipo de excepcin: Si hace clic en Ver detalle, se visualiza el detalle de la excepcin:

Try Catch
Esta instruccin permite controlar las excepciones o errores inesperados que pueden ocurrir en Visual Basic .NET. Su sintaxis es la siguiente: Try Bloque de Instrucciones N 01 Catch Variable As Exception Bloque de Instrucciones N 02 Finally Bloque de Instrucciones N 03 End Try

Semestre 2012 - I

108

109

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Bloque de Instrucciones N 01 Es el bloque de instrucciones que deseamos controlar, es decir, el bloque de instrucciones de nuestra aplicacin donde puede ocurrir la excepcin o error. Por ejemplo, en este bloque de instrucciones puede ir el mtodo Open, porque puede ocurrir un error al abrir la conexin a SQL Server, porque no existe el servidor, el nombre del usuario o su contrasea son incorrectos, hemos asignado un valor incorrecto en la cadena de conexin, etc. Bloque de Instrucciones N 02 Es el bloque de instrucciones que se debe ejecutar cuando ocurra una excepcin durante la ejecucin de la aplicacin. En este bloque de instrucciones debemos reconocer la excepcin o el error producido para enviar un mensaje adecuado al usuario y evitar que nuestra aplicacin deje de funcionar. En la parte inicial de este bloque de instrucciones y despus de la palabra Catch, se debe definir una variable de tipo Excepcin, la cual almacenara en sus propiedades la informacin de la excepcin producida. La variable tambin se puede definir al inicio de programa. Bloque de Instrucciones N 03 Este bloque de instrucciones es opcional y si se escriben, se ejecutan siempre es decir. Si se produce o no la excepcin. Si en una parte del bloque Try Catch desea salir de l, puede utilizar Exit Try. Exit Try es una palabra clave que permita salir del bloque Try Catch y ejecuta la instruccin o instrucciones que se encuentran despus de End Try. La palabra clave Exit Try no se puede utilizar el bloque de instrucciones N 03, es decir, despus de la palabra Finally.

Semestre 2012 - I

109

110

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Public Class Form1 Dim Ex As Exception Dim Dato As String Dim Nota1, Nota2, Promedio As Double Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Try 'Ingrea la Primera Nota Dato = InputBox("Ingresa la nota N 01", "Por Favor", 0) 'PREGUNTA SI ESTA NULA O VACIA If String.IsNullOrEmpty(Dato) = False Then Nota1 = Double.Parse(Dato) Else 'Si esta vacia o nula le asigna el 0 Nota1 = 0 End If 'ingresa la primera Nota Dato = InputBox("Ingresa la nota N 02", "Por Favor", 0) 'pregunta si esta nula o vacia If String.IsNullOrEmpty(Dato) = False Then Nota2 = Double.Parse(Dato) Else 'Si esta vacia o nula le asigna el 0 Nota2 = 0 End If 'Calcual el promedio Promedio = (Nota1 + Nota2) / 2 'MUESTRA SU PROMEDIO MsgBox("Su promedio es:" & Promedio.ToString("#0.00") & "Puntos", MsgBoxStyle.Information, "resultado") Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, ex.Source) End Try End Sub End Class Utilizando Finally ................................................................................................... ................................................................................................. 'ingresa la primera Nota Dato = InputBox("Ingresa la nota N 02", "Por Favor", 0) 'pregunta si esta nula o vacia If String.IsNullOrEmpty(Dato) = False Then

Semestre 2012 - I

110

111

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Nota2 = Double.Parse(Dato) Else 'Si esta vacia o nula le asigna el 0 Nota2 = 0 End If 'Calcual el promedio Promedio = (Nota1 + Nota2) / 2 Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, ex.Source) Finally 'MUESTRA SU PROMEDIO MsgBox("Su promedio es:" & Promedio.ToString("#0.00") & "Puntos", MsgBoxStyle.Information, "resultado") End Try Utilizando el bloque Finally se muestra el promedio final

Semestre 2012 - I

111

112

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Mens en Visual Basic .net y 200
Hay dos tipos de mens que se pueden poner en aplicaciones hechos en Visual Basic .NET: el men principal (MenuStrip) y el contextual (ContextMenuStript).

MenuStrip
El men principal es el que aparece en las aplicaciones abajo de la barra de la ventana (o sea, la tirita que dice "Archivo, Edicin, etc."). Para crear uno, se tiene que arrastrar el objeto MenuStrip a la ventana. El ambiente de diseo cambia un poco: el "control" aparece en la parte inferior, fuera de la ventana y en la parte superior de la ventana (o forma) que ests creando, aparece una cajita que dice "Escriba aqu". La pantalla se ve algo as:

Al darle clic sobre ese mensaje, te permite escribir un texto (el letrero del primer men) y aparecen "huecos" para escribir ms opciones. Las siguientes imgenes muestran el efecto que tiene ir tecleando opciones del men.

Semestre 2012 - I

112

113

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Al ejecutar este formulario observe el menu de opciones

Para mostrar un mensaje por cada opcin escriba el siguiente codigo: Public Class Form7 Private Sub ClientesToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ClientesToolStripMenuItem.Click MessageBox.Show("Esta es la opcion Mantenimiento de Clientes", "Menues") End Sub Private Sub ProductosToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ProductosToolStripMenuItem.Click

Semestre 2012 - I

113

114

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


MessageBox.Show("Esta es la opcion Mantenimiento de Productos", "Menues") End Sub End Class

Men contextual
Arrastre el icono del Men Contextual y se puede escribir los nombres de las opciones.

Si le das click afuera de la ventana del men contextual que aparece, desaparece

Para activar estas opciones se debe insertar un objeto y programar un evento para el men contextual.

Semestre 2012 - I

114

115

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Public Class Form8 Private Sub Label1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label1.MouseDown If e.Button = Windows.Forms.MouseButtons.Right Then ContextMenuStrip1.Show(Label1, New Point(e.X, e.Y)) End If End Sub Ejecute la aplicacin y cuando se haga click sobre la etiqueta observe que aparece el menu contextual

Semestre 2012 - I

115

116

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

LABORATORIOS
LABORATORIO - 001
Elaborar una aplicacion que permita registrar los datos de los Empleados de una Empresa, estas seran mostradas en un ListView llamado LvPersonal, esta lista estara controlada por un Combo llamado CboModo el cual mostrara los estados del ListView (Iconos Grandes,Detalle,Lista,Iconos Pequeos,Ttulos), tambien podran ser mostraos algunos graficos agregados en un ImageList1.

Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Asigna el formato inicial al control ListView LvPersonal.View = View.Details LvPersonal.GridLines = True LvPersonal.FullRowSelect = True LvPersonal.Columns.Add("Codigo", 50, HorizontalAlignment.Center) LvPersonal.Columns.Add("Nombre", 200, HorizontalAlignment.Left) LvPersonal.Columns.Add("Sueldo", 100, HorizontalAlignment.Right) 'Llena el Personal Dim Personal As ListViewItem Personal = New ListViewItem("001", 0) Personal.SubItems.Add("Julio Dvila") Personal.SubItems.Add("2,500.00") LvPersonal.Items.Add(Personal) Personal = New ListViewItem("002", 0)

Semestre 2012 - I

116

117

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Personal.SubItems.Add("Oscar Ruiz") Personal.SubItems.Add("850.00") LvPersonal.Items.Add(Personal) Personal = New ListViewItem("003", 0) Personal.SubItems.Add("Miguel Saavedra") Personal.SubItems.Add("1,350.00") LvPersonal.Items.Add(Personal) CboModo.SelectedIndex = 1 'Evita que se modifique el cdigo TxtCodigo.ReadOnly = True 'Llama al procedimiento NoIngresar NoIngresar() End Sub Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CboModo.SelectedIndexChanged LvPersonal.View = CboVistas.SelectedIndex End Sub Private Sub LvPersonal_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles LvPersonal.Click TxtCodigo.Text = LvPersonal.SelectedItems(0).SubItems(0).Text TxtNombre.Text = LvPersonal.SelectedItems(0).SubItems(1).Text TxtSueldo.Text = LvPersonal.SelectedItems(0).SubItems(2).Text End Sub Private Sub BtnNuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnNuevo.Click TxtCodigo.Text = Format(LvPersonal.Items.Count + 1, "000") 'Permite escribir el Nombre y Sueldo TxtNombre.ReadOnly = False TxtSueldo.ReadOnly = False TxtNombre.Text = "" TxtSueldo.Text = "" TxtNombre.Focus() 'Desactiva el botn Nuevo BtnNuevo.Enabled = False 'Activa los botones Grabar e Ignorar BtnGrabar.Enabled = True BtnIgnorar.Enabled = True End Sub Private Sub BtnGrabar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Semestre 2012 - I

117

118

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


BtnGrabar.Click Dim Codigo, Nombre, Sueldo As String Dim Personal As ListViewItem 'Asigna los datos ingresados a Variables Codigo = TxtCodigo.Text Nombre = TxtNombre.Text Sueldo = TxtSueldo.Text 'Agrega al control ListView los datos ingresados Personal = New ListViewItem(Codigo, 0) Personal.SubItems.Add(Nombre) Personal.SubItems.Add(Sueldo) LvPersonal.Items.Add(Personal) 'Llama al procedimiento NoIngresar NoIngresar() End Sub Private Sub BtnIgnorar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnIgnorar.Click TxtCodigo.Text = "" TxtNombre.Text = "" TxtSueldo.Text = "" NoIngresar() End Sub Sub NoIngresar() TxtNombre.ReadOnly = True TxtSueldo.ReadOnly = True 'Activa el botn Nuevo BtnNuevo.Enabled = True 'Desactiva los botones Grabar e Ignorar BtnGrabar.Enabled = False BtnIgnorar.Enabled = False End Sub End Class

Semestre 2012 - I

118

119

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

LABORATORIO - 002
Elaborar una aplicacion que permita mostrar la Zona, Departamentos, Provincias en un TreeView(TvElementos) y que al seleccionar uno de ellos se mostrara sus datos en los labels respectivos.

Public Class Form1 Private Sub BtnVer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnVer.Click TvElementos.Nodes.Clear() Dim Padre As TreeNode Dim Hijo As TreeNode '**** ZONA NORTE **** Padre = New TreeNode("Norte") TvElementos.Nodes.Add(Padre) 'Elementos del Norte Hijo = Padre.Nodes.Add("Lima") Hijo.Nodes.Add("Lima") Hijo.Nodes.Add("Huaral") Hijo.Nodes.Add("Huacho") Hijo = Padre.Nodes.Add("Chiclayo") Hijo.Nodes.Add("Motupe") Hijo.Nodes.Add("Monsefu") '**** ZONA SUR **** Padre = New TreeNode("Sur") TvElementos.Nodes.Add(Padre) 'Elementos de la Zona Sur Hijo = Padre.Nodes.Add("Chincha") Hijo.Nodes.Add("GrosoPrado") Hijo.Nodes.Add("ChinchaBaja")

Semestre 2012 - I

119

120

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Hijo.Nodes.Add("ChinchaAlta") Hijo = Padre.Nodes.Add("Pisco") Hijo.Nodes.Add("El Tonel") Hijo.Nodes.Add("El Puerto") Hijo = Padre.Nodes.Add("Ica") Hijo.Nodes.Add("Paracas") Hijo.Nodes.Add("Ica") Hijo.Nodes.Add("Nazca") '**** ZONA CENTRO**** Padre = New TreeNode("Centro") TvElementos.Nodes.Add(Padre) 'Elementos Centro Hijo = Padre.Nodes.Add("Huancayo") Hijo = Padre.Nodes.Add("Cuzco") End Sub Private Sub TvElementos_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows .Forms. TreeViewEventArgs) Handles TvElementos.AfterSelect LblZona.Text = TvElementos.SelectedNode.Text LblDepartamento.Text = TvElementos.SelectedNode.FullPath LblProvincia.Text = TvElementos.SelectedNode.Level End Sub End Class

Semestre 2012 - I

120

121

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

LABORATORIO - 003
Elaborar una aplicacion que permita registrar los datos de los Empleados de una Empresa, estas seran mostradas en un ListView llamado LvPersonal, esta lista estara controlada por un Combo llamado CboModo el cual mostrara los estados del ListView (Iconos Grandes,Detalle,Lista,Iconos Pequeos,Ttulos), tambien podran ser mostraos algunos graficos agregados en un ImageList1.

Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Asigna el formato inicial al control ListView LvPersonal.View = View.Details LvPersonal.GridLines = True LvPersonal.FullRowSelect = True LvPersonal.Columns.Add("Codigo", 50, HorizontalAlignment.Center) LvPersonal.Columns.Add("Nombre", 200, HorizontalAlignment.Left) LvPersonal.Columns.Add("Sueldo", 100, HorizontalAlignment.Right) 'Llena el Personal Dim Personal As ListViewItem Personal = New ListViewItem("001", 0) Personal.SubItems.Add("Julio Dvila") Personal.SubItems.Add("2,500.00") LvPersonal.Items.Add(Personal) Personal = New ListViewItem("002", 0) Personal.SubItems.Add("Oscar Ruiz")

Semestre 2012 - I

121

122

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Personal.SubItems.Add("850.00") LvPersonal.Items.Add(Personal) Personal = New ListViewItem("003", 0) Personal.SubItems.Add("Miguel Saavedra") Personal.SubItems.Add("1,350.00") LvPersonal.Items.Add(Personal) CboModo.SelectedIndex = 1 'Evita que se modifique el cdigo TxtCodigo.ReadOnly = True 'Llama al procedimiento NoIngresar NoIngresar() End Sub Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CboModo.SelectedIndexChanged LvPersonal.View = CboVistas.SelectedIndex End Sub Private Sub LvPersonal_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles LvPersonal.Click TxtCodigo.Text = LvPersonal.SelectedItems(0).SubItems(0).Text TxtNombre.Text = LvPersonal.SelectedItems(0).SubItems(1).Text TxtSueldo.Text = LvPersonal.SelectedItems(0).SubItems(2).Text End Sub Private Sub BtnNuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnNuevo.Click TxtCodigo.Text = Format(LvPersonal.Items.Count + 1, "000") 'Permite escribir el Nombre y Sueldo TxtNombre.ReadOnly = False TxtSueldo.ReadOnly = False TxtNombre.Text = "" TxtSueldo.Text = "" TxtNombre.Focus() 'Desactiva el botn Nuevo BtnNuevo.Enabled = False 'Activa los botones Grabar e Ignorar BtnGrabar.Enabled = True BtnIgnorar.Enabled = True End Sub Private Sub BtnGrabar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnGrabar.Click

Semestre 2012 - I

122

123

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Dim Codigo, Nombre, Sueldo As String Dim Personal As ListViewItem 'Asigna los datos ingresados a Variables Codigo = TxtCodigo.Text Nombre = TxtNombre.Text Sueldo = TxtSueldo.Text 'Agrega al control ListView los datos ingresados Personal = New ListViewItem(Codigo, 0) Personal.SubItems.Add(Nombre) Personal.SubItems.Add(Sueldo) LvPersonal.Items.Add(Personal) 'Llama al procedimiento NoIngresar NoIngresar() End Sub Private Sub BtnIgnorar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnIgnorar.Click TxtCodigo.Text = "" TxtNombre.Text = "" TxtSueldo.Text = "" NoIngresar() End Sub Sub NoIngresar() TxtNombre.ReadOnly = True TxtSueldo.ReadOnly = True 'Activa el botn Nuevo BtnNuevo.Enabled = True 'Desactiva los botones Grabar e Ignorar BtnGrabar.Enabled = False BtnIgnorar.Enabled = False End Sub End Class

Semestre 2012 - I

123

124

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

LABORATORIO - 003
Elaborar una aplicacion que permita mostrar la Zona, Departamentos, Provincias en un TreeView(TvElementos) y que al seleccionar uno de ellos se mostrara sus datos en los labels respectivos.

Public Class Form1 Private Sub BtnVer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnVer.Click TvElementos.Nodes.Clear() Dim Padre As TreeNode Dim Hijo As TreeNode '**** ZONA NORTE **** Padre = New TreeNode("Norte") TvElementos.Nodes.Add(Padre) 'Elementos del Norte Hijo = Padre.Nodes.Add("Lima") Hijo.Nodes.Add("Lima") Hijo.Nodes.Add("Huaral") Hijo.Nodes.Add("Huacho") Hijo = Padre.Nodes.Add("Chiclayo") Hijo.Nodes.Add("Motupe") Hijo.Nodes.Add("Monsefu") '**** ZONA SUR **** Padre = New TreeNode("Sur") TvElementos.Nodes.Add(Padre) 'Elementos de la Zona Sur Hijo = Padre.Nodes.Add("Chincha") Hijo.Nodes.Add("GrosoPrado") Hijo.Nodes.Add("ChinchaBaja")

Semestre 2012 - I

124

125

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Hijo.Nodes.Add("ChinchaAlta") Hijo = Padre.Nodes.Add("Pisco") Hijo.Nodes.Add("El Tonel") Hijo.Nodes.Add("El Puerto") Hijo = Padre.Nodes.Add("Ica") Hijo.Nodes.Add("Paracas") Hijo.Nodes.Add("Ica") Hijo.Nodes.Add("Nazca") '**** ZONA CENTRO**** Padre = New TreeNode("Centro") TvElementos.Nodes.Add(Padre) 'Elementos Centro Hijo = Padre.Nodes.Add("Huancayo") Hijo = Padre.Nodes.Add("Cuzco") End Sub Private Sub TvElementos_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows .Forms. TreeViewEventArgs) Handles TvElementos.AfterSelect LblZona.Text = TvElementos.SelectedNode.Text LblDepartamento.Text = TvElementos.SelectedNode.FullPath LblProvincia.Text = TvElementos.SelectedNode.Level End Sub End Class

Semestre 2012 - I

125

126

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

LABORATORIO - 004
Elaborar una aplicacin que permita obtener el factorial y si es un numero primo de un numero atravez de la creacion de una clase, donde la clase debera validar el ingreso de los numeros y debera calcular el factorial y si el numero es primo.

CLASE INFORME Public Class Informe Dim m_Numero As Long 'Constructor de la clase Public Sub New(ByVal Numero As Integer) m_Numero = Numero End Sub 'Propiedad de la clase Public Property Numero() As Integer Get Return m_Numero End Get Set(ByVal value As Integer) m_Numero = value End Set End Property 'Mtodos de la clase Public Function Factorial() As Integer Dim X, F As Integer If Numero > 11 Then MessageBox.Show("Ingrese Valores entre 0 y 11", "Por Favor") Exit Function End If F=1 For X = 1 To m_Numero F=F*X Next

Semestre 2012 - I

126

127

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Return F End Function Public Function Primo() As String Dim X As Integer Dim Sw As Boolean = False If m_Numero < 3 Then Sw = False For X = 2 To m_Numero - 1 If m_Numero Mod X = 0 Then Sw = True End If Next If Sw = True Then Return "No" Else Return "Si" End If End Function End Class EN EL FORMULARIO Public Class Form1 Private Sub BtnVer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnVer.Click If TxtNumero.Text = String.Empty Then MessageBox.Show("Ingrese Nmero", "Por Favor") TxtNumero.Focus() Exit Sub End If Dim Numero As Integer 'Almacena el numero ingresado Numero = Integer.Parse(TxtNumero.Text) 'Crea una instancia de la clase Informe Dim Num As New Informe(Numero) 'Muestra los resultados LblFactorial.Text = Num.Factorial.ToString LblPrimo.Text = Num.Primo End Sub End Class

Semestre 2012 - I

127

128

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

LABORATORIO - 005
Elaborar una aplicacin que usando una clase nos permita obtener en el primer formulario el Total vendido a un cliente, y en el formulario dos el total vendido al cliente con descuentos asi como el total a pagar.

Creando la Clase General:(Total Compra) Public Class TotalCompra Dim m_PrecioCompra As Double Dim m_Cantidad As Integer 'Constructor de la clase Public Sub New(ByVal Pc As Double, ByVal Cant As Integer) m_PrecioCompra = Pc m_Cantidad = Cant End Sub 'Propiedades de la clase Public Property PCompra() As Double Get Return m_PrecioCompra End Get Set(ByVal value As Double) m_PrecioCompra = value End Set End Property Public Property Cantidad() As Integer Get Return m_Cantidad End Get Set(ByVal value As Integer)

Semestre 2012 - I

128

129

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


m_Cantidad = value End Set End Property 'Metodo de la clase Public Function Total() As Double Dim Utilidad, PrecioVenta As Double Select Case m_Cantidad Case 1 To 10 Utilidad = 50 Case 11 To 20 Utilidad = 35.8 Case 20 To 40 Utilidad = 10 Case Is > 40 Utilidad = 5.5 End Select PrecioVenta = m_PrecioCompra * (1 + Utilidad / 100) Return PrecioVenta * m_Cantidad End Function End Class Public Class TotalPago Inherits TotalCompra Dim m_Descuento As Double 'Constructor de la clase Sub New(ByVal Pc As Double, ByVal Cant As Integer, ByVal Des As Double) MyBase.New(Pc, Cant) m_Descuento = Des End Sub Public Property Descuento() As Double Get Return m_Descuento End Get Set(ByVal value As Double) m_Descuento = value End Set End Property Public Function Pagos() As Double Dim DSoles, Pago As Double DSoles = MyBase.Total * m_Descuento / 100 Pago = MyBase.Total - DSoles

Semestre 2012 - I

129

130

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Return Pago End Function End Class En el Formulario1 Public Class Form1 Private Sub BtnCalcular_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCalcular.Click Dim Precio As Double Dim Cantidad As Integer Precio = Double.Parse(TxtPrecio.Text) Cantidad = Integer.Parse(TxtCantidad.Text) Dim R As New TotalCompra(Precio, Cantidad) LblTotal.Text = R.Total.ToString("#,##0.00") End Sub End Class En el Formulario2 Public Class Form2 Private Sub BtnCalcular_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCalcular.Click Dim Precio, Utilidad As Double Dim Cantidad As Integer Precio = Double.Parse(TxtPrecio.Text) Cantidad = Integer.Parse(TxtCantidad.Text) Utilidad = Integer.Parse(TxtUtilidad.Text) Dim R As New TotalPago(Precio, Cantidad, Utilidad) LblTotal.Text = R.Total.ToString("#,##0.00") LblPago.Text = R.Pagos.ToString("#,##0.00") End Sub End Class

Semestre 2012 - I

130

131

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

LABORATORIO - 006
Elaborar una aplicacin que use una clase para validar las notas al ingresar y que permita obtener el promedio la Condicion (Aprobado o Desaprobado) la cualidad (Excelente o Bueno) de un determinado alumno.

Semestre 2012 - I

131

132

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

SESIN VII BASE DE DATOS

CONTENIDO

Base de Datos Relacional LENGUAJE SQL

PRACTICA DE REFORZAMIENTO

Semestre 2012 - I

132

133

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


BASE DE DATOS RELACIONAL
Concepto Una base de datos relacional es bidimensionales. Ejemplo La siguiente tabla relacional contiene datos de los empleados. percibida por el usuario como una coleccin de relaciones o tablas

NUM -EM P 100 320 210 405 378

APELL SM ITH ADAM S BROWN GOM EZ JOHNSON

NOM JOHN JANE JIM JOSE LUCY

NUM -DPTO 10 15 10 12 25

tabla (relacin) fila (tupla) columna (atributo)


ORIGEN DE LA TEORA RELACIONAL El origen de la teora relacional viene de la teora de conjuntos. Una tabla debe ser vista como un conjunto y para satisfacer un requerimiento de informacin se aplican operadores de conjunto como unin, interseccin, producto cartesiano, join, proyeccin, select, etc. Ejemplo Para seleccionar a todos los empleados que trabajan en el Departamento 10, use la siguiente instruccin SQL.

SQL 2 3

SELECT num_emp, apellido, nombre, num-dpto FROM empleado WHERE num_dpto = 10;

Semestre 2012 - I

133

134

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

NUM-EMP ------100 210

APELLIDO NOMBRE NUM-DPTO ------ ----- -------SMITH JOHN 10 BROWN JIM 10

SQL (Structured Query Language) se usa para manipular bases de datos relacionales. Discusin El ANSI (American National Standards Institute) ha establecido a SQL como el lenguaje estndar para operar sobre bases de datos relacionales. Una base de datos relacional puede soportar un completo conjunto de operaciones relacionales. Las operaciones relacionales manipulan conjuntos de valores de datos. Las tablas pueden ser operadas para crear otras tablas. Las operaciones relacionales pueden ser anidadas. CLAVE PRIMARIA Una Clave Primaria (PK) es una columna o conjunto de columnas que nicamente identifica cada fila en una tabla. Cada tabla debe tener una clave primaria y una clave primaria debe ser nica. Ejemplo

La clave primaria para la tabla EMPLEADOS consiste en la columna NUM_EMP. Cada fila en la tabla es nicamente identificada por su valor NUM_EMP.

Clave Primaria

NUM-EMP 100 310 210 405 378

APELL SMITH ADAMS BROWN GOMEZ

NOM JOHN JANE JIM JOSE

NUM-DPTO 10 15 10

Tabla EMPLEADOS

JOHNSON LUCY

05

Semestre 2012 - I

134

135

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Discusin No se permiten los duplicados en una Clave Primaria. La clave primaria debe ser nica. Las claves primarias generalmente no pueden ser cambiadas. El UID de una entidad se mapear a una Clave Primaria en su correspondiente tabla.

CLAVES PRIMARIAS COMPUESTAS Una Clave Primaria que se conforma de mltiples columnas se llama Clave Primaria Compuesta. Ejemplo La clave primaria compuesta para la tabla CUENTA consiste en la combinacin de las columnas NUM_BANCO y NUM_CUENTA. Cada fila es nicamente identificada por sus valores de NUM_BANCO y NUM_CUENTA.

Clave Primaria

NUM-BANCO 104 104 105 103 105

NUM-CUENTA 75760 77956 89570 55890 76954

SALDO 12,000.50 100.10 55,775.00 15,001.85 5.00

FECHA-APER 21-OCT-89 15-ENE-85 10-MAR-71 25-SEP-91

Tabla CUENTA

Discusin Las columnas de una clave primaria compuesta debe ser nica en la combinacin. Las columnas individuales pueden tener duplicados, pero en la combinacin, no se permiten duplicados.

CLAVES PRIMARIAS NO NULAS Ninguna parte de una clave primaria puede ser NULL (nula). Ejemplo NUM_EMP es la clave primaria de la tabla EMPLEADOS. Por lo tanto NUM_EMP debe ser definido como NOT NULL.

Semestre 2012 - I

135

136

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Clave Primaria

NUM-EMP 100 310 210 405 378

APELL SMITH ADAMS BROWN GOMEZ

NOM JOHN JANE JIM JOSE

NUM-DPTO 10 15 10

Tabla EMPLEADOS

JOHNSON LUCY

05

Ejemplo Cmo viola la tabla CUENTA las reglas de las Claves Primarias?

Clave Primaria

NUM-BANCO 104 104 103 105

NUM-CUENTA 75760 77956 89570 55890

SALDO 12,000.50 100.10 55,775.00 15,001.85 5.00

FECHA-APER 21-OCT-89 15-ENE-85 10-MAR-71 25-SEP-91

Tabla CUENTA

Dos de las filas contienen valores NULL en parte de la clave primaria compuesta. Tanto NUM_BANCO como NUM_CUENTA deben ser definidos como NOT NULLS. CLAVES CANDIDATAS Y CLAVES ALTERNAS Una tabla puede tener ms de una columna o combinacin de columnas que pueden servir como la clave primaria de la tabla. Cada una de ellas se llama Clave Candidata. Ejemplo Cules son las claves candidatas para la tabla EMPLEADOS?

Semestre 2012 - I

136

137

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

NUM-EMP 100 310 210 405 378

APELL SMITH ADAMS BROWN GOMEZ JOHNSON

NOM JOHN JANE JIM JOSE LUCY

NUM-DPTO 10 15 10 05

ID-PLASUELD

Tabla
9710 8730 1157 3394 4477

EMPLEADOS

NUM_EMP e ID_PLASUELD son claves candidatas. Seleccione una clave candidata para ser la Clave Primaria para la tabla. Las otras candidatas se convierten en Claves Alternas. Ejemplo

Clave Primaria

Clave Alterna

NUM-EMP 100 310 210 405 378

APELL SMITH ADAMS BROWN GOMEZ JOHNSON

NOM JOHN JANE JIM JOSE LUCY

NUM-DPTO 10 15 10 05

ID-PLASUELD 9710 8730 1157 3394 4477

Tabla EMPLEADOS

Discusin Todas las Claves Candidatas deben ser nicas y NOT NULL. Los UIDs secundarios se mapean a claves alternas.

CLAVES FORNEAS
Una Clave Fornea (FK) es una columna o combinacin de columnas en una tabla que es clave primaria en la misma u otra tabla. Ejemplo NUM_DEPT es una FK en la Tabla EMPLEADOS y se refiere a los valores en la columna NUM_DEPT en la Tabla DEPARTAMENTO.

Semestre 2012 - I

137

138

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Clav e Primaria

Clav e Fornea

NUM-EMP 100 310 210 405 378

APELL SMITH ADAMS BROWN GOMEZ

NOM JOHN JANE JIM JOSE

NUM-DPTO 10 15 10 05

ID-PLASUELD 9710 8730 1157 3394 4477

Tabla EMPLEADOS

JOHNSON LUCY

Clav e Primaria

NUM-DPTO 10 15 12 25

NOM-DPTO FINANZAS OPERACIONES MANUFACTURAS VENTAS

Tabla DEPARTAMENTO

Discusin Las claves forneas son la implementacin de las relaciones de un modelo de datos conceptual. Las claves forneas se basan en los valores de los datos y son puramente lgicas.

Semestre 2012 - I

138

139

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Una clave fornea siempre debe parearse con el valor de una clave primaria (o de lo contrario ser NULL). Ejemplo La FK NUM_DEPT en la tabla EMPLEADOS se refiere a los valores de la PK NUM_DEPT en la tabla DEPARTAMENTO.

Clav e Primaria

Clav e Fornea

Clav e Primaria

NUM-EMP 100 310 210 405

APELL SMITH ADAMS BROWN GOMEZ

NUM-DPTO 10 15 10

NUM-DPTO 10 15 20 25

NOM- DPTO FINANZAS OPERACIONES MANUFACTURAS VENTAS

Tabla EMPLEADOS

Tabla DEPARTAMENTO

Si una Clave Fornea es parte de una Clave Primaria, esa FK no puede ser NULL. Ejemplo En la tabla CUENTA, la FK NUM_BANCO debe ser NOT NULL porque es parte de la PK.

Clav e Primaria

Clav e Fornea

Clav e Primaria

NUM-BANCO 104 150 103 105

NOM-BANCO FIRST UNITED CAPITOL FEDERAL WORLD SAVINGS

NUM-BANCO 104 104 150 103 105

NUM-CUENTA 75760 77956 89570 33347 76954

SALDO 12,000.50 100.10 55,775.00 15,001.85 5.00

Tabla BANCO

Tabla CUENTA

Semestre 2012 - I

139

140

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


LENGUAJE SQL
SQL (Structured Query Language) es el lenguaje que se utiliza para comunicarse con la base de datos Procedimiento de comunicacin con la base de datos.

Orden SQL

Base de Datos Resultado

Lenguaje SQL SELECT Sintaxis: SELECT expresin FROM tabla [WHERE condicin] [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] ,...] [LIMIT [offset,] row_count | row_count OFFSET offset] Ejemplo: SELECT * from noticias WHERE fecha=CURDATE() LIMIT 10 ORDER BY fecha DESC Obtiene las noticias del da con un tope mximo de 10, ordenadas de la ms reciente a la ms antigua Operadores Lgicos Operador AND Uso Es el "y" lgico. Evalua dos condiciones y devuelve un valor de verdad slo si ambas son ciertas. Es el "o" lgico. Evala dos condiciones y devuelve un valor de verdad si alguna de las dos es cierta. Negacin lgica. Devuelve el valor contrario de la expresin.

OR NOT

Semestre 2012 - I

140

141

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Operadores de Comparacin Operador
< > <> <= >= = BETWEEN LIKE In Menor que Mayor que Distinto de Menor Igual que Mayor Igual que Igual que Utilizado para especificar un intervalo de valores. Utilizado en la comparacin de un modelo Utilizado para especificar registros de una base de datos

Uso

COMANDOS DML (DATA MANIPULATION LANGUAGE)


Permite crear y definir nuevas base de datos, campos e ndices.

COMANDO

DESCRIPCION

CREATE

Utilizados para crear nuevas tablas, campos e ndices DROP. empleado para eliminar tablas o ndices

DROP

Empleado para eliminar tablas e ndices

ALTER

Utilizado para modificar las tablas agregando campos o cambiando la definicin de los campos

Semestre 2012 - I

141

142

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


COMANDOS DLL(DATA LINK LANGUAGE)

COMANDO SELECT INSERT UPDATE DELETE

DESCRIPCION Usado para consultar registros en la sede datos Usados para cargar lotes de datos Usado para modificar los valores de campos y registros Utilizados para eliminar los registros de una tabla de una base de datos.

Permite generar consultas para ordenar, filtrar y extraer datos de la base de datos. Clusulas Las clusulas son condiciones de modificacin utilizadas para definir los datos que desea seleccionar o manipular. CLAUSULA FROM WHERE DESCRIPCION Utilizada para especificar la tabla de la cual se van a seleccionar los registros. Utilizadas para especificar las condiciones que deben reunir los registros que se van a seleccionar. GROUP BY HAVING ORDER BY Utilizadas para separar los registros seleccionados en grupos especficos. Utilizada para expresar la condicin que debe satisfacer cada grupo Utilizada para ordenar los registros seleccionados de acuerdo con un orden especifico.

Semestre 2012 - I

142

143

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

AGRUPACION DE DATOS
Funciones de Agregado Las funciones de agregado se usan dentro de una clusula SELECT en grupos de registros para devolver un nico valor que se aplica a un grupo de registros. Funcin AVG COUNT SUM MAX MIN Descripcin Utilizada para calcular el promedio de los valores de un campo determinado Utilizada para devolver el nmero de registros de la seleccin Utilizada para devolver la suma de todos los valores de un campo determinado Utilizada para devolver el valor ms alto de un campo especificado Utilizada para devolver el valor ms bajo de un campo especificado

GROUP

BY

Combina los registros con valores idnticos, en la lista de campos especificados, en un nico registro. Para cada registro se crea un valor sumario si se incluye una funcin SQL agregada, como por ejemplo Sum o Count, en la instruccin SELECT. Su sintaxis es: SELECT campos FROM tabla WHERE criterio GROUP BY campos del grupo GROUP BY es opcional. Los valores de resumen se omiten si no existe una funcin SQL agregada en la instruccin SELECT. Los valores Null en los campos GROUP BY se agrupan y no se omiten. No obstante, los valores Null no se evalan en ninguna de las funciones registros una SQL vez agregadas. agrupados. Se utiliza la clusula WHERE para excluir aquellas filas que no desea agrupar, y la clusula HAVING para filtrar los A menos que contenga un dato Memo u Objeto OLE , un campo de la lista de campos GROUP BY puede referirse a cualquier campo de las tablas que aparecen en la clusula FROM, incluso si el campo no est incluido en la instruccin SELECT, siempre y cuando la instruccin SELECT incluya al menos una funcin SQL agregada. Todos los campos de la lista de campos de SELECT deben o bien incluirse en la clusula GROUP BY o como argumentos SELECT GROUP utilizando SELECT Id_Familia, BY GROUP que BY, de una Sum(Stock) satisfaga HAVING Sum(Stock) las determina FROM FROM funcin Productos de de ellos SQL GROUP la se BY clusula van BY a agregada. Id_Familia; HAVING. mostrar. Id_Familia

Una vez que GROUP BY ha combinado los registros, HAVING muestra cualquier registro agrupado por la clusula condiciones cules HAVING es similar a WHERE, determina qu registros se seleccionan. Una vez que los registros se han agrupado Id_Familia Productos GROUP

HAVING Sum(Stock) > 100 AND NombreProducto Like BOS*; AVG Calcula la media aritmtica de un conjunto de valores contenidos en un campo especificado de una consulta. Su

Semestre 2012 - I

143

144

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


sintaxis Avg(expr) En donde expr representa el campo que contiene los datos numricos para los que se desea calcular la media o una expresin que realiza un clculo utilizando los datos de dicho campo. La media calculada por Avg es la media aritmtica (la suma de los valores dividido por el nmero de valores). La funcin Avg no incluye ningn campo Null SELECT Count Calcula el nmero de registros devueltos por una consulta. Su sintaxis es la siguiente Count(expr) En donde expr contiene el nombre del campo que desea contar. Los operandos de expresin pueden incluir el nombre de un campo de una tabla, una constante o una funcin (la cual puede ser intrnseca o definida por el usuario pero no otras de las funciones agregadas de SQL). Puede contar cualquier tipo de datos incluso texto. Aunque expr puede realizar un clculo sobre un campo, Count simplemente cuenta el nmero de registros sin tener en cuenta qu valores se almacenan en los registros. La funcin Count no cuenta los registros que tienen campos null a menos que expr sea el carcter comodn asterisco (*). Si utiliza un asterisco, Count calcula el nmero total de registros, incluyendo aquellos que contienen campos null. Count(*) es considerablemente ms rpida que Count(Campo). SELECT No se debe poner AS el asterisco Total entre dobles FROM comillas ('*'). Pedidos; Count(*) Avg(Gastos) AS en Promedio FROM el Pedidos WHERE Gastos > clculo. 100; es la siguiente

Si expr identifica a mltiples campos, la funcin Count cuenta un registro slo si al menos uno de los campos no es Null. Si todos los campos especificados son Null, no se cuenta el registro. Hay que separar los nombres de los campos SELECT Max, Su Min(expr) sintaxis Count(FechaEnvo con & Transporte) ampersand AS Total FROM (&). Pedidos; Min es:

Devuelven el mnimo o el mximo de un conjunto de valores contenidos en un campo especifico de una consulta.

Max(expr) En donde expr es el campo sobre el que se desea realizar el clculo. Expr pueden incluir el nombre de un campo de una tabla, una constante o una funcin (la cual puede ser intrnseca o definida por el usuario pero no otras de las SELECT SELECT StDev, muestra StDev(expr) StDevP(expr) de la poblacin representada (muestra aleatoria) . Su sintaxis funciones Min(Gastos) Max(Gastos) AS AS ElMin ElMax agregadas FROM FROM Pedidos Pedidos WHERE WHERE de Pais Pais = = SQL). 'Espaa'; 'Espaa'; StDevP es:

Devuelve estimaciones de la desviacin estndar para la poblacin (el total de los registros de la tabla) o una

Semestre 2012 - I

144

145

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

En donde expr representa el nombre del campo que contiene los datos que desean evaluarse o una expresin que realiza un clculo utilizando los datos de dichos campos. Los operandos de expr pueden incluir el nombre de un campo de una tabla, una constante o una funcin (la cual puede ser intrnseca o definida por el usuario pero no otras de las funciones agregadas de SQL) StDevP evala una poblacin, y StDev evala una muestra de la poblacin. Si la consulta contiene menos de dos registros (o ningn registro para StDevP), estas funciones devuelven un valor Null (el cual indica que la desviacin SELECT SELECT Sum Devuelve la suma del conjunto de valores contenido en un campo especifico de una consulta. Su sintaxis es: Sum(expr) En donde expr respresenta el nombre del campo que contiene los datos que desean sumarse o una expresin que realiza un clculo utilizando los datos de dichos campos. Los operandos de expr pueden incluir el nombre de un campo de una tabla, una constante o una funcin (la cual puede ser intrnseca o definida por el usuario pero no SELECT Var, poblacin Var(expr) VarP(expr) VarP evala una poblacin, y Var evala una muestra de la poblacin. Expr el nombre del campo que contiene los datos que desean evaluarse o una expresin que realiza un clculo utilizando los datos de dichos campos. Los operandos de expr pueden incluir el nombre de un campo de una tabla, una constante o una funcin (la cual puede ser intrnseca o definida por el usuario pero no otras de las funciones agregadas de SQL) Si la consulta contiene menos de dos registros, Var y VarP devuelven Null (esto indica que la varianza no puede calcularse). Puede utilizar Var y VarP en una expresin de consulta o en una Instruccin SQL. SELECT Var(Gastos) AS Varianza FROM Pedidos WHERE Pais = 'Espaa'; SELECT VarP(Gastos) AS Varianza FROM Pedidos WHERE Pais = 'Espaa'. (muestra aleatoria de registros) sobre los valores de un campo. Su sintaxis otras de las * funciones Cantidad) AS agregadas Total FROM de SQL). VarP es: Sum(PrecioUnidad DetallePedido; StDev(Gastos) StDevP(Gastos) estndar AS AS Desviacion Desviacion no FROM FROM Pedidos Pedidos puede WHERE WHERE Pais = Pais= calcularse). 'Espaa'; 'Espaa';

Devuelve una estimacin de la varianza de una poblacin (sobre el total de los registros) o una muestra de la

Semestre 2012 - I

145

146

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


COMANDOS DML
COMANDO CREATE TABLE El comando CREATE TABLE se usa para especificar una nueva relacin por medio de un nombre y especificando cada uno de sus atributos. A cada atributo se le da un nombre, un tipo de datos (para especificar su dominio) y algunas constraints sobre el atributo. La sintaxis del comando es: CREATE TABLE nombre_de_tabla (definicion_de_columna [,definicion_de_columna ] ...)

donde la definicin de columna es de la forma : nombre_de_columna tipo_de_dato [ NOT NULL ] Claves Primarias Tambin se puede definir una clave primaria sobre una columna, usando la palabra clave KEY o PRIMARY KEY. Solo puede existir una clave primaria en cada tabla, y la columna sobre la que se define una clave primaria no puede tener valores NULL, Si esto no se especifica explcita, SQL lo har de forma automtica. Por ejemplo, si queremos crear un ndice en la columna nombre de la tabla alumno crearemos la tabla de la siguiente manera. Ejemplo: create table alumno(idalumno char(4) primary key not null, nomalum varchar(20) not null, diralum varchar(40) not null, disalum varchar(40) not null); COMANDO DROP TABLE El comando DROP TABLE se usa para eliminar una relacin y su definicin de atributos como tambin borra del catlogo la tupla relacionada a esta. La sintaxis de la Instruccin es : DROP TABLE nombre_de_tabla; Ejemplo : drop table alumno; de forma

Semestre 2012 - I

146

147

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

COMANDO ALTER TABLE

ALTER TABLE: Permite modificar la estructura de una tabla existente. Por ejemplo, se pueden aadir o eliminar columnas, crear y destruir ndices, cambiar el tipo de una columna existente o renombrar columnas o la propia tabla. Tambin es posible modificar el comentario y el tipo de la tabla ALTER TABLE nombre_de_tabla ADD Ejemplo: alter table alumno add telefono varchar(10); Query OK, 2 rows affected (0.20 sec) Records: 2 Duplicates: 0 Warnings: 0 Ejemplo create table editorial(codeditorial INT AUTO_INCREMENT PRIMARY KEY, nomeditorial char(25) NOT NULL, direditorial varchar(25) NOT NULL, telef varchar(9) NOT NULL) nombre_de_columna tipo_de_dato;

COMANDOS DLL
INSERT Sintaxis: INSERT [INTO] nombre_tabla [(nombre_columna,...)] VALUES ((expresin | DEFAULT),...), (...),... INSERT [INTO] nombre_tabla SET nombre_columna=(expresin | DEFAULT), ... Ejemplo: INSERT INTO noticias (id, titulo, texto, categoria, fecha) VALUES (37, Nueva promocin en Nervin, 145 viviendas de lujo en urbanizacin ajardinada situadas en un entorno privilegiado, promociones, CURDATE())

Semestre 2012 - I

147

148

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Inserta una noticia con los valores indicados SELECT Sintaxis: SELECT expresin FROM tabla [WHERE condicin] [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] ,...] [LIMIT [offset,] row_count | row_count OFFSET offset] Ejemplo: SELECT * from noticias WHERE fecha=CURDATE() LIMIT 10 ORDER BY fecha DESC Obtiene las noticias del da con un tope mximo de 10, ordenadas de la ms reciente a la ms antigua UPDATE Sintaxis: UPDATE nombre_tabla SET nombre_columna1=expr1 [, nombre_columna2=expr2 ...] [WHERE condicin] [ORDER BY ...] [LIMIT row_count] Ejemplo: UPDATE noticias SET categoria = ofertas WHERE id=37 Modifica la categora de la noticia con id=37 de la tabla DELETE Sintaxis: DELETE FROM nombre_tabla [WHERE condicin] [ORDER BY ...] [LIMIT row_count] Ejemplo: DELETE FROM noticias WHERE fecha < CURDATE()-10 Borra las noticias con ms de 10 das de antigedad

Semestre 2012 - I

148

149

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

SESIN VII ADO .NET


CONTENIDO

ADO NET Objeto de acceso a datos Acceso a Datos PRCTICA DE REFORZAMIENTO

Semestre 2012 - I

149

150

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


ADO NET ACTIVE DATA OBJECT
Es un nuevo modelo de administracin y manejo de datos de MICROSOFT es ADO NET, este modelo descansa en una serie de objetos especializados que facilitan el procesamiento de una base de datos.

Fuente: microsoft.net
El problema es comunicar un programa o aplicacin aspx con una base de datos y mas que comunicar se pretende que el programa o aplicacin realice una serie de procesos u operaciones con la base de datos o mejor aun con el conjunto de tablas que contiene una base de datos. La primera nota a recordar es que una base de datos puede estar fsicamente en el servidor y en algn folder o directorio del disco duro de dicha maquina servidora, por ejemplo, c:\DATOS\mibase.mbd, como se observa la base que se construyo en MICROSOFT access (mibase.mbd) se almaceno en el disco c en el folder DATOS. Sin embargo tambin es necesario conocer que as como existen servidores de pginas ( web server ), servidores de correo ( mail server ), servidores de ftp ( ftp server ), etc, tambin existen servidores de bases de datos ( database server ), los ms comunes son el sqlserver de microsoft, oracle, mysql, etc, estos servidores tambin pueden crear, administrar y procesar una base de datos, por supuesto que el procedimiento que se dio para crearla en access en el tema anterior no se puede usar para crear y cargar una base de datos en un servidor de bases de datos.(esperar libros de bases de datos en programacin fcil en un prximo futuro). El modo de comunicarse entre nuestro programa o aplicacin y la base de datos (ya sea fsica o un dbserver), implica que ambos manejen un lenguaje de programacin comn, es decir no se puede mandar una instruccin en csharp, o en basic o pascal a la base de datos y adems esperar que esta ultima la entienda ( para entender esto, una razon muy sencilla es que la base de datos tendra que conocer o comprender todos los lenguajes de programacin), para resolver este problema de comunicacin es que se usa un lenguaje comn de bases de datos que tanto los lenguajes de programacin existentes como las bases de datos entienden, este lenguaje

Semestre 2012 - I

150

151

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


comn de bases de datos es el SQL (structured query languaje) o lenguaje estructurado de consultas. La pregunta es ahora como mandamos las instrucciones sql a la base de datos, la respuesta son los OBJETOS ADO NET que estamos analizando en orden y propsito de uso, los estaremos explicando. OBJETO CONNECTION:- OBJETO QUE SE UTILIZA PARA ESTABLECER UNA CONECCION O ENLACE A LA BASE DE DATOS. Este objeto primero se tendr que crear en el programa y luego se tendr que cargar con dos parmetros (ver ejemplo ms abajo), el primer parmetro es el proveedor o la fuente que proporcionara los datos, los proveedores o fuentes de datos que existen son: SQLSERVER NET DATA PROVIDER.- QUE SE ESPECIALIZA EN COMUNICARSE Y PROCESAR BASES DE DATOS CONSTRUIDAS CON MICROSOF SQL SERVER V7.0 OLEDB.NET DATA PROVIDER.- QUE SE ESPECIALIZA EN COMUNICARSE Y PROCESAR BASES DE DATOS QUE A LA FECHA DEL PRESENTE MANUAL UTILIZEN ALGUNOS DE LOS SIGUIENTES DRIVERS, SQ EDB (VERSIONES ANTERIORES DE SQL SERVER DE MICROSOFT), MSDAORA

(ORACLE), MICROSOFT.JET ( ACCESS Y ALGUNOS OTROS DBMS DE MICROSOFT) NOTA: Este es el que se usa en los ejemplos siguientes, observar que aunque VISUAL BASIC 2008 trae por default los controles SQL, en este capitulo se usaran los objetos OLEDB, lo malo es que se tendrn que crear, cargar y codificar a mano y no olvidar incluir en la parte de arriba del programa la instruccin using System.Data.OleDb; ODBC NET .- BASES DE DATOS QUE USAN ODBC COMO MEDIO DE COMUNICACION CON OTRAS BASES DE DATOS Y APLICACIONES COMO NOTA A CONSIDERAR ODBC NET NO ESTA INCLUIDA POR DEFAULT EN MICROSOFT NET, SE TIENE QUE BAJAR DE MICROSOFT, AUNQUE SI SE INSTALO CORRECTAMENTE EL COMPULDARO VISUAL BASIC 2008 YA ESTARA INCLUIDA El segundo parmetro es la propia base de datos con la cual se comunicara el programa o aplicacin. Ejemplo del objeto CONNECTION DIM connection AS OLEDBCONNECTION connection = NEW OLEDBCONNECTION(Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=c:\progfacil\lauro\mibase.mdb) Es una sola string y los dos parmetros mencionados van separados por el punto y coma. ATENCION es DATA SOURCE= no usar DATASOURCE= estn advertidos. ejemplos de los otros proveedores o fuentes mencionados: //Provider=MSDAORA; Data Source=ORACLE8i7; User ID=OLEDB; Password=OLEDB

Semestre 2012 - I

151

152

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


//Provider=Microsoft.Jet.OLEDB.4.0; Source=c:\bin\LocalAccess40.mdb; //Provider=SQLOLEDB;Data Source=MySQLServer;Integrated Security=SSPI; Data

OBJETO DE ACCESO A DATOS


SQLCONNECTION
Este objeto es el encargado de la conexin a una base datos SQL Server .Este objeto est diseado y

optimizado para conectarse a base de datos SQL Server en las versiones indicadas.

SQLDATAADAPTER
Este objeto es el encargado de llevar la conexin establecida en el Objeto Connection, el comando con los requerimientos deseado y depositar los resultados obtenido en otro objeto llamado DataSet(Conjunto de Datos) para poder utilizarlos y/o manipularlos en una aplicacin. Los requerimientos pueden ser el contenido de una tabla de una base de datos o parte de ella,as como la actualizacin, adicin o eliminacin de la informacin.

SQLCOMMAND
Este objeto se utiliza para almacenar el comando con el requerimiento para la conexin establecida. El comando consiste en una instruccin SQL que depende del requerimiento deseado y puede ser Select, Update, Insert Delete.

DATASET
Este objeto se encarga de recibir el conjunto de datos que devuelve la conexin a travs de objeto DataAdapter,segn el comando establecido por el objeto Command. Procedimiento,1)Agregar el objeto SQLCONNECTION en la barra de herramientas ,clic derecho ,elegir elementos ,seleccin SQLCONNECTION,aceptar

Semestre 2012 - I

152

153

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Ubicar el objeto SQLCONNECTION en el formulario, clic derecho propiedades, clic en la propiedad:

Connectionstring(elija conexin nueva) 2) ubicar el objeto SQLCOMMAND en el formulario,clic derecho en propiedades, clic en:

Propiedad Connecction String Command Text

Valor SqlConecction1

Semestre 2012 - I

153

154

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


Select * from products ,clic en aceptar

3) Ubicar el objeto SQLDATAADAPTER en el formulario, clic derecho en propiedades

. Clic en la ficha Cancelar, asigne las siguientes propiedades

Propiedad Connecction String SelectCommand

Valor SqlConecction1 SqlCommand1

4) Ubicar el objeto DATASET en el formulario de la siguiente forma:

Semestre 2012 - I

154

155

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Clic

en

Conjunto

de

datos sin tipo, clic en Aceptar

Semestre 2012 - I

155

156

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


5) Ubicar el control TabControl

TabControl1 TabPage1 TabPage2


6) Agregar el control DataGrid en la ficha de control1

Text Text

Lista de Productos Lista de Categoras

Semestre 2012 - I

156

157

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

En el DataGrid se presentan los datos provenientes del conjunto de datos (DataSet) asignando en la propiedad DataSoirce lo siguiente:

Propiedad Datasource En el evento load del Formulario llenar el siguiente Cdigo Dataset1.clear() SQLADAPTER1.fill(Dataset1)

Valor Dataset1

7)Ahora resuelva usted las siguientes fichas deben mostrar lo siguiente: Ficha1 Ficha2 Ficha3 Ficha4 Ficha5 Ficha6 Ficha7 Ficha8 Ficha9 Ficha10 Lista Lista Lista Lista Lista Lista Lista Lista Lista Lista de de de de de de de de de de Productos Categoras los Nombres de categora y Nombres de Producto Nombres de Producto y Cantidad Solicitada Nombre de Producto e Importe Nombre de Producto y Cuantos por Producto Nombre de Producto y Suma de Importes por Producto Nombre de Categora y Cuantos por Categoria Nombre de Clientes(Customers) Nombre de Cliente y el Importe por cada cliente

Para las siguientes fichas agregar los objetos Ejemplo(sqladapter2,sqlcommand2,dataset2,datagrid2)

Semestre 2012 - I

157

158

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

VISUAL NET
(Acceso a Datos)

Imports System.Data Imports System.Data.SqlClient Public Class Form28 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Try Dim cn As New SqlConnection("Data Source=(local);Initial Catalog=Northwind;uid=sa;pwd=") Dim sql As String, nivel As Integer sql = "select * from usuario where iduser='" & TextBox1.Text & "' and " & " pwd='" & TextBox2.Text & "'" TextBox3.Text = sql Dim cmd As New SqlCommand(sql, cn) Dim dato As SqlDataReader, acceso As Boolean cn.Open() dato = cmd.ExecuteReader dato.Read() Dim usuario, contrasea As String usuario = dato(0) contrasea = dato(2)

Semestre 2012 - I

158

159

HERRAMIENTAS DE DESARROLLO DE SOFTWARE


nivel = Val(dato(3)) MessageBox.Show("El usuario es :" & usuario, "Prueba") MessageBox.Show("La Contrasea es1 :" & contrasea, "Prueba") MessageBox.Show("El Nivel es " & nivel, "Prueba") MsgBox("hay conexion") Form29.Show() If nivel = 1 Then Form29.Button1.Enabled = True Form29.Button3.Enabled = True Form29.Button4.Enabled = True Form29.Button5.Enabled = True Else If nivel = 2 Then Form29.Button1.Enabled = False Form29.Button3.Enabled = True Form29.Button4.Enabled = True Form29.Button5.Enabled = True Else Form29.Button1.Enabled = False Form29.Button3.Enabled = False Form29.Button4.Enabled = False Form29.Button5.Enabled = True End If End If cn.Close() Catch ex As SqlException MsgBox("no hay conexion") End Try End Sub End Class

Semestre 2012 - I

159

Das könnte Ihnen auch gefallen