Sie sind auf Seite 1von 169

Visual Basic.

net 2008 Express

Programacin Digital I

OBJETIVOS ESPECIFICOS Describir el lenguaje de programacin orientada a objetos. Construir expresiones para escribir instrucciones en un programa

CONTENIDO 1. Descripcin del entorno 2. Caja de herramientas. 3. Ventana de propiedades. 4. Ventana del Explorador de proyectos. 5. Terminologa. 6. Clase, objeto. 7. Propiedad, Evento, mtodo. 8. Formulario, control. 9. Algoritmos secuenciales. 10. Desarrollo de aplicaciones que implementen u algoritmo secuencial. 11. Etiquetas, cuadros de texto y botones de comando. 12. La funcin VAL. 13. Operadores aritmticos, concatenacin.

Escuela Superior Privada de Tecnologa SENATI

Programacin Digital I
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 2005 .................................................. 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 ARREGLOS TIPO TABLA ........................................................................ 86 ARREGLOS CON PARAMETROS............................................................... 87 ARREGLOS DE CONTROLES................................................................. .87

Laboratorios...88

Escuela Superior Privada de Tecnologa SENATI

Programacin Digital I
SESION VI : EXCEPCIONES Y MENUES

Control de Excepciones ................................................................................... 97 Mens en Visual Basic NET y 2005 ...................................................................... 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

Escuela Superior Privada de Tecnologa SENATI

Programacin Digital I

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 mas importantes del lenguaje, el

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

Escuela Superior Privada de Tecnologa SENATI

Programacin Digital I

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 2005
PRCTICA DE REFORZAMIENTO

Escuela Superior Privada de Tecnologa SENATI

Programacin Digital I

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 Lnguage) 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.

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 multi-lenguaje 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.

Escuela Superior Privada de Tecnologa SENATI

Programacin Digital I

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

Escuela Superior Privada de Tecnologa SENATI

Programacin Digital I
Windows Forms est constituido por multitud de clases especializadas que ofrecen 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. funcionalidades para el trabajo con ventanas, botones, rejillas, campos de texto y todo este tipo de controles habituales en las

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 2005), 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.

Escuela Superior Privada de Tecnologa SENATI

Programacin Digital I

VISUAL BASIC .NET 2008 Cuando se Iniciar el Visual Basic Net conocer el Entorno de Desarrollo Integrado (IDE) del Visual Basic 2005 Express 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

Escuela Superior Privada de Tecnologa SENATI

10

Programacin Digital I
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.

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.

Escuela Superior Privada de Tecnologa SENATI

11

Programacin Digital I

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 o haga clic en el botn Aceptar.

Escuela Superior Privada de Tecnologa SENATI

12

Programacin Digital I

ELEMENTOS DEL ENTORNO DE VISUAL STUDIO 2005 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

Escuela Superior Privada de Tecnologa SENATI

13

Programacin Digital I

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.

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

Escuela Superior Privada de Tecnologa SENATI

14

Programacin Digital I
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 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.

Escuela Superior Privada de Tecnologa SENATI

15

Programacin Digital I
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 frmejemplo 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.

Escuela Superior Privada de Tecnologa SENATI

16

Programacin Digital I

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

Escuela Superior Privada de Tecnologa SENATI

17

Programacin Digital I

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.

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

Escuela Superior Privada de Tecnologa SENATI

18

Programacin Digital I

Explorador de soluciones

Ventana de Diseo

Como en las versiones anteriores de Visual Basic, tambin se puede ingresar a la ventan de cdigo de un objeto pulsando la tecla F7 y para regresar a la ventan 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

Escuela Superior Privada de Tecnologa SENATI

19

Programacin Digital I
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:

Escuela Superior Privada de Tecnologa SENATI

20

Programacin Digital I

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

Escuela Superior Privada de Tecnologa SENATI

21

Programacin Digital I

Elija Objeto inicial: Form1 Clic en el icono Ejecutar

Cdigo Diseador Explorador de Soluciones Ventana de Propiedades Cuadro de Herramientas Examinador de Objetos Ejecutar Application

F7 Shift + f7 CTRL + R, CTRL +ALT +L F4 CTRL+ALT+X F2 F5

Escuela Superior Privada de Tecnologa SENATI

22

Programacin Digital I

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

Escuela Superior Privada de Tecnologa SENATI

23

Programacin Digital I

Nuestra primera aplicacin.


Crear una aplicacion que muestre el siguiente formulario y luego de hacer clic en el boton 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 para usar el control etiqueta

Este control permite escribir titulos

Escuela Superior Privada de Tecnologa SENATI

24

Programacin Digital I
Y usar el control boton de comando para generar el boton de comando

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 25

Escuela Superior Privada de Tecnologa SENATI

Programacin Digital I

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

Agregue el siguiente botn SALIR ya gregue el codigo 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).

Escuela Superior Privada de Tecnologa SENATI

26

Programacin Digital I

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:

Escuela Superior Privada de Tecnologa SENATI

27

Programacin Digital I

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

Escuela Superior Privada de Tecnologa SENATI

28

Programacin Digital I
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 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

Escuela Superior Privada de Tecnologa SENATI

29

Programacin Digital I

Presione el botn esto:

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

Escuela Superior Privada de Tecnologa SENATI

30

Programacin Digital I
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 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 nomeclatura comn?, por ejemplo Textbox1 lo llamamos Text_run, Combobox1 lo llamamos cmb_carrera, bueno, utilizar nomeclaturas 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 apliacion, hasta ahora no hemos utilizado nada de cdigo, asi que ya es hora de utilizar nuestras neuronas . Haga doble click en el botn btn_salir. Qu ha pasado?, se ha activado la pestaa de cdigo y auto-magicamente 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 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):

Escuela Superior Privada de Tecnologa SENATI

31

Programacin Digital I
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] TextAlign = MiddleRight Font = Microsoft Sans Serif, 18pt, style=Bold BackColor = Window Modifiers = Public

Nuestro formulario debera quedar ms o menos as:

Escuela Superior Privada de Tecnologa SENATI

32

Programacin Digital I

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 click con el botn derecho sobre el icono de nuestro proyecto, aparecer un men emergente, desde la opcin add seleccionemos Windows

form.

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:

Escuela Superior Privada de Tecnologa SENATI

33

Programacin Digital I 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 click 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:

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()

Escuela Superior Privada de Tecnologa SENATI

34

Programacin Digital I

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 Numero entero 64 bits Numero 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

Escuela Superior Privada de Tecnologa SENATI

35

Programacin Digital I

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

Escuela Superior Privada de Tecnologa SENATI

36

Programacin Digital I

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 que permiten utilizar variables sin declararlas y explcitamente. Ejemplorcy Vilche cpvroman@hotmail.com NumVar= 2*5 10 3

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

Escuela Superior Privada de Tecnologa SENATI

37

Programacin Digital I

Ambito 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

Escuela Superior Privada de Tecnologa SENATI

38

Programacin Digital I

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

Escuela Superior Privada de Tecnologa SENATI

39

Programacin Digital I

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 &= Mundo = 2 Numero1

Numero1 ^=3

Escuela Superior Privada de Tecnologa SENATI

40

Programacin Digital I

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) -4,94065645841246544E-324 a +1,79769313486231570E+308 (con signo -2.147.483.648 a +2.147.483.647 (con signo

Decimal

16 bytes

Double

8 bytes

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

Escuela Superior Privada de Tecnologa SENATI

41

Programacin Digital I

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 a es mayo 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)>

Escuela Superior Privada de Tecnologa SENATI

42

Programacin Digital I
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

Escuela Superior Privada de Tecnologa SENATI

43

Programacin Digital I

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

Escuela Superior Privada de Tecnologa SENATI

44

Programacin Digital I

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.

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Form2.ShowDialog() End Sub
Las siguientes instrucciones muestran el formulario form2 en modo Modal.

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

Escuela Superior Privada de Tecnologa SENATI

45

Programacin Digital I

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
Escuela Superior Privada de Tecnologa SENATI

End If

46

End Sub

Programacin Digital I

Escuela Superior Privada de Tecnologa SENATI

47

Programacin Digital I

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

Escuela Superior Privada de Tecnologa SENATI

48

Programacin Digital I
En este caso se crea un procedimiento llamado evaluar

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() End If End Sub

Escuela Superior Privada de Tecnologa SENATI

49

Programacin Digital I

INSTRUCCION SELECT CASE


Tambin existen ocasiones 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

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 Label2.Text = "ADOLESCENCIAZ" Case 18 To 59 Label2.Text = "ADULTEZ" Case Is >= 60 Label2.Text = "ANCIANO" Case Else
Escuela Superior Privada de Tecnologa SENATI

50

Programacin Digital I

Label2.Text = "NO EXISTE" End Select End Sub End Class

Escuela Superior Privada de Tecnologa SENATI

51

Programacin Digital I

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 2005" End Sub Private Sub BtnCerrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCerrar.Click Close() End Sub End Class

Escuela Superior Privada de Tecnologa SENATI

52

Programacin Digital I

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()

Escuela Superior Privada de Tecnologa SENATI

53

Programacin Digital I
End Sub End Class

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()

Escuela Superior Privada de Tecnologa SENATI

54

Programacin Digital I
TextBox1.Enabled = True 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

Escuela Superior Privada de Tecnologa SENATI

55

Programacin Digital I

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

Escuela Superior Privada de Tecnologa SENATI

56

Programacin Digital I

SESIN III TRABAJANDO CON CONTROLES


CONTENIDO

ComboBox ListBox CheckBox RadioButton TabPage PRCTICA DE REFORZAMIENTO

Escuela Superior Privada de Tecnologa SENATI

57

Programacin Digital I

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

Escuela Superior Privada de Tecnologa SENATI

58

Programacin Digital I

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 2005. Los nombres de algunas propiedades, mtodos, eventos y constantes son diferentes y, en 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 2005, 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 2005, 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 2005, 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.

Escuela Superior Privada de Tecnologa SENATI

59

Programacin Digital I
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 2005, 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. 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 2005, 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 2005 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 2005. 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

Escuela Superior Privada de Tecnologa SENATI

60

Programacin Digital I
' Visual Basic 2005 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 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 2005 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 2005 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)

Escuela Superior Privada de Tecnologa SENATI

61

Programacin Digital I
End Sub 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

Escuela Superior Privada de Tecnologa SENATI

62

Programacin Digital I

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 mas 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") End Sub Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged Select Case ListBox1.SelectedIndex
Escuela Superior Privada de Tecnologa SENATI

63

Programacin Digital I

Case 0 TextBox1.Text = 1200 Case 1 TextBox1.Text = 2500 Case 2 TextBox1.Text = 4500 End Select End Sub End Class
Ejercicio 2

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 esta en blanco", "Datos en blanco") Me.txtNombre.Focus() Exit Sub
Escuela Superior Privada de Tecnologa SENATI

64

Programacin Digital I

Else If Me.txtDireccion.Text = "" Then MessageBox.Show("La Direccion esta en blanco", "Datos en blanco") Me.txtDireccion.Focus() Exit Sub Else If Me.txtTelefono.Text = "" Then MessageBox.Show("El Telefono esta 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 Else MessageBox.Show("Debe seleccionar para poder borrar", "Seleccione el dato") End If End Sub

Escuela Superior Privada de Tecnologa SENATI

65

Programacin Digital I

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

Escuela Superior Privada de Tecnologa SENATI

66

Programacin Digital I

BackColor

Obtiene o establece el color de fondo del control.

Checked

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.

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.

Escuela Superior Privada de Tecnologa SENATI

67

Programacin Digital I

Show

Muestra el control al usuario.

Escuela Superior Privada de Tecnologa SENATI

68

Programacin Digital I

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

Escuela Superior Privada de Tecnologa SENATI

69

Programacin Digital I

End Sub

Escuela Superior Privada de Tecnologa SENATI

70

Programacin Digital I

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

Escuela Superior Privada de Tecnologa SENATI

71

Programacin Digital I

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

Escuela Superior Privada de Tecnologa SENATI

72

Programacin Digital I

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.

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

Escuela Superior Privada de Tecnologa SENATI

73

Programacin Digital I

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.

MTODOS

Select Show Update

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

Escuela Superior Privada de Tecnologa SENATI

74

Programacin Digital I

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 TextBox1.Text = SUELDO End If End Sub End Class

Escuela Superior Privada de Tecnologa SENATI

75

Programacin Digital I

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 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Me.Close() End Sub

Escuela Superior Privada de Tecnologa SENATI

76

Programacin Digital I

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 Label10.Visible = True Label11.Visible = True End Sub

Escuela Superior Privada de Tecnologa SENATI

77

Programacin Digital I

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. Basico 2800 2000 1600 1250 1000

El diseo de la ventana tendra el siguiente aspecto:

Escuela Superior Privada de Tecnologa SENATI

78

Programacin Digital I

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 boton 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 Casado = "No"

Escuela Superior Privada de Tecnologa SENATI

79

Programacin Digital I
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 e As 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 un elemento", "Para Quitar", MessageBoxButtons.OK, MessageBoxIcon.Information) Else Quitar(LbNombre.SelectedIndex)

Escuela Superior Privada de Tecnologa SENATI

80

Programacin Digital I
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

Escuela Superior Privada de Tecnologa SENATI

81

Programacin Digital I

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

Escuela Superior Privada de Tecnologa SENATI

82

Programacin Digital I

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

Escuela Superior Privada de Tecnologa SENATI

83

Programacin Digital I

SESIN IV PROCESOS REPETITIVOS


CONTENIDO

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

Escuela Superior Privada de Tecnologa SENATI

84

Programacin Digital I

PROCESOS REPETITIVOS
Los procesos repetitivos o llamados bucles, se utilizan para repetir el o los cdigos, un numero determinado de veces, para esto usaremos el For, que nos permitir repetir un numero 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 mas 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

Escuela Superior Privada de Tecnologa SENATI

85

Programacin Digital I

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 ultima 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 repete 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

Escuela Superior Privada de Tecnologa SENATI

86

Programacin Digital I
Este cdigo escribira el valor de i hasta que el valor de i tome el valor de 10 Do / Loop Este tipo de bucle es muy parecido al anterior. Si se utiliza slo 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 Until 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> 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 evalua 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

Escuela Superior Privada de Tecnologa SENATI

87

Programacin Digital I
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

Escuela Superior Privada de Tecnologa SENATI

88

Programacin Digital I

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

Escuela Superior Privada de Tecnologa SENATI

89

Programacin Digital I

ESTRUCTURA S
Es una combinacin de tipos de datos 1. Se utilizan para crear tipos de valores definidos por el usuario 2. 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#

Escuela Superior Privada de Tecnologa SENATI

90

Programacin Digital I

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

Escuela Superior Privada de Tecnologa SENATI

91

Programacin Digital I

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.

Escuela Superior Privada de Tecnologa SENATI

92

Programacin Digital I

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.

Escuela Superior Privada de Tecnologa SENATI

93

Programacin Digital I

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 :

Escuela Superior Privada de Tecnologa SENATI

94

Programacin Digital I

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

Escuela Superior Privada de Tecnologa SENATI

95

Programacin Digital I

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 devuelven un 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

Escuela Superior Privada de Tecnologa SENATI

96

Programacin Digital I

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)

Escuela Superior Privada de Tecnologa SENATI

97

Programacin Digital I

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

Escuela Superior Privada de Tecnologa SENATI

98

Programacin Digital I

ARREGLOS
Uno de los problemas mas comunes en los diversos sistemas de informacion 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 metodo tradicional se ocuparan 30 variables y solo es nombre y edad de 15 personas, agreguen mas datos y mas 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, operacion, despliegue ) usando el nombre del arreglo respectivo y un subindice indicando la posicion relativa del elemento con respecto a los demas elementos del arreglo, solo recordar que en VISUAL BASIC 2005 la primera posicion, elemento o renglon 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 programacion 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
B) TABLAS DE SUCURSALES

15

Escuela Superior Privada de Tecnologa SENATI

99

Programacin Digital I
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 renglon o elemento 0, que en total darian 5 ciudade. 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. 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.

Escuela Superior Privada de Tecnologa SENATI

100

Programacin Digital I
GetLength Gets the number of elements in the specified dimension of the Array

Escuela Superior Privada de Tecnologa SENATI

101

Programacin Digital I
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 2005 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 Dim RENG As Integer Private Sub Form1_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated EDAD.Focus()

Escuela Superior Privada de Tecnologa SENATI

102

Programacin Digital I

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() LISTA1.Items.Add(EDAD.Text) Label2.Text = RENG

If RENG <= 5 Then

Escuela Superior Privada de Tecnologa SENATI

103

Programacin Digital I

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 indice 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 anadiendo 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, estan avisados.

Para inicializar una lista se debe usar el siguiente formato: shared dim nomlista() as tipodato={lista de valores separados por comas} ej; 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 2005 1.- Capturar y desplegar 5 precios de productos cualesquiera usando dos panel uno para capturar y uno para desplegar

Escuela Superior Privada de Tecnologa SENATI

104

Programacin Digital I
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 numeros 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 mas columnas y uno o mas renglones. Para procesar ( recordar solo operaciones y comparaciones) internamente todos los elementos de la tabla se ocupan dos ciclos for uno externo para controlar renglon y uno interno para controlar columna. Los elementos de la tabla se deberan simbolizar con el nombre de la tabla y 2 subindices, el primer subindice referencia al renglon y el siguiente subindice referencia la columna los dos dentro del mismo corchete. La declaracion de una tabla sera 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 boton de captura, solo tener cuidado o mucho control sobre los indices rEN y col como lo muestra el ejemplo. Para efectuar otros procesos tales como operaciones, despliegues con todos los elementos de la tabla se deberan usar 2 ciclos un for externo para controlar renglon y un for interno para controlar columna.

Escuela Superior Privada de Tecnologa SENATI

105

Programacin Digital I

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

Escuela Superior Privada de Tecnologa SENATI

106

Programacin Digital I

For C = 0 To 3 CALIFICACION(R, C) = CALIFICACION(R, C) + 5 Next C Next R ' 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 declaracion y como se controlan los indices 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 mas adelante se usara un objeto mas apropiado. Corrida: Para inicializar tablas, se usa el siguiente formato: Dim nomarreglo() As tipodato = {lista valores} Dim ciudades() as String = {tijuana', tecate, ensenada}

Escuela Superior Privada de Tecnologa SENATI

107

Programacin Digital I
Recordar que no se pueden inicializar arreglos de tamano fijo, para inicializar tablas aqui esta el ejemplo: Dim alfa(,) As Integer = {{1, 2}, {3, 4} {5,6} } TAREAS PROGRAMACION VISUAL BASIC 2005 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 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

Escuela Superior Privada de Tecnologa SENATI

108

Programacin Digital I
ARREGLOS CON LISTBOX ListBox uno de los nuevos Controls, es un componente DINAMICO(es decir no tiene tamano 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 podra capturar todos los elementos o datos que se quiera pero solo desplegara los ultimos cinco elementos. Sin embargo existen ciertas propiedades del listbox que permiten conocer cuantos elementos estan cargados en el listbox. Otra importante aspecto a recordar cuando se procese o programe, es que el primer indice de la lista, es el indice numero 0(cero). Este componente, contiene muchas propiedades y metodos que facilitan el trabajo con datos la mas 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 diseno. Items.Contains(dato): Regresa true o false, si el dato se encuentra o no se encuentra en la lista. Items.IndexOf(dato): Regresa el indice 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 esta en la posicion indicada. Items[indice]: get or set el dato en la posicion 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 esta usando get, si se dice text5.text=500; se esta usando set. Otro ejemplo alfa=listbox2.Items(2); se esta usando (get) listbox2.Items(4)=mama; se esta 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 esta usando get, pero si se codifica listbox8.background=amarillol; se esta 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

Escuela Superior Privada de Tecnologa SENATI

109

Programacin Digital I
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 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 2005 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.

Escuela Superior Privada de Tecnologa SENATI

110

Programacin Digital I
3.- CAPTURAR EN SUS 4 LISTAS RESPECTIVAS MATRICULA, NOMBRE Y DOS CALIFICACIONES DE 5 ALUMNOS, DESPUES CALCULAR UNA LISTA DE PROMEDIOS DE CALIFICACIONES. 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 parametro a un procedimiento o a una funcion solo se manda el nombre del arreglo sin corchetes e indices, en el procedimiento o funcion que recibe solo se declara un arreglo del mismo tipo y se puede usar el mismo o diferente nombre del arreglo sin corchetes e indices. Sin embargo es conveniente aclarar, que a diferencia de variables escalares normales visual basic 2005 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 estan en el arreglo original, es por esta razon que cambios que se le hagan a los datos del arreglo que recibe realmente se esta 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

Escuela Superior Privada de Tecnologa SENATI

111

Programacin Digital I

For r = 0 To 4 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 ARRAYS DE CONTROLES
Visual Basic cuenta con el concepto de array de controles, en elque 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 existeun control con el mismo nombre y le preguntara sidesea crear un array de controles. 3. Seleccionar un control del formulario, pulsar Crtl + C para copiarlo en el portapapales y, posteriormente, pulsar Ctrl + V para pegar una nueva isntancia 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 caracteristicas ms interesantesdel entorno Visual Basic y aade una gran flexibilidad a sus programas:

Parametro

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

Podr aadir dinamicamente nuevos elementos al array de controles en tiempo de ejecucin; en otras palabras, podr crear nuevos controles que no existan en tiempo de diseo.

Escuela Superior Privada de Tecnologa SENATI

112

Programacin Digital I
Los elementos de los array de controles consumen pocos recursos en comparacin con los controles 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 le 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

Escuela Superior Privada de Tecnologa SENATI

113

Programacin Digital I

T(i) = New TextBox() Lb(I) = New Label() Lb(I).Text = Titu(I) Next

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

Escuela Superior Privada de Tecnologa SENATI

114

Programacin Digital I

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

Escuela Superior Privada de Tecnologa SENATI

115

Programacin Digital I
End Class

Escuela Superior Privada de Tecnologa SENATI

116

Programacin Digital I

SESIN VI
CONTROL DE EXCEPCIONES Y MENUES

CONTENIDO Control de Excepciones Menues Principal y Contextual PRCTICA DE REFORZAMIENTO

Escuela Superior Privada de Tecnologa SENATI

117

Programacin Digital I

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 aplicacion es muy importante ,porque permite brindar informacin adecuada al usuario de la aplicacin sobre el problema detectatdo,sin necesidad que s einterrumpa su ejecucin y permitiendo que se corrija el problema. En Visual Basic .NET existe la clase Exception 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 derfine 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 progrma 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 detallae, se visualiza el detalle de la excepcin:

Try Catch
Esta instruccin permite controlar las excepciones o errores inesperados que pueden ocurrir en Visula 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

Escuela Superior Privada de Tecnologa SENATI

118

Programacin Digital I
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 metodo Open,porque puede ocurrir un error al abrir la conexin a SQL Server,porque no existe elservidor,el nombre del usuario o su contraea 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 excepcion 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 depues de la palbra Catch, se debe definir una avriable de tipo Excepcin, la cual almacenara en sus propiedades la informacin de la excepcin producida.La variable tambien 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 ejecutat 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.

Escuela Superior Privada de Tecnologa SENATI

119

Programacin Digital I

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

Escuela Superior Privada de Tecnologa SENATI

120

Programacin Digital I
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

Escuela Superior Privada de Tecnologa SENATI

121

Programacin Digital I

Menus en Visual Basic .net y 2005


Hay dos tipos de menus 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 click 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.

Escuela Superior Privada de Tecnologa SENATI

122

Programacin Digital I

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 MessageBox.Show("Esta es la opcion Mantenimiento de Productos", "Menues")

Escuela Superior Privada de Tecnologa SENATI

123

Programacin Digital I

End Sub End Class

Menu contextual
Arrastre el icono del Menu 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 menu contextual.

Public Class Form8

Escuela Superior Privada de Tecnologa SENATI

124

Programacin Digital I

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

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

Escuela Superior Privada de Tecnologa SENATI

125

Programacin Digital I
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") 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

Escuela Superior Privada de Tecnologa SENATI

126

Programacin Digital I
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 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

Escuela Superior Privada de Tecnologa SENATI

127

Programacin Digital I
End Sub End Class

Escuela Superior Privada de Tecnologa SENATI

128

Programacin Digital I

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") Hijo.Nodes.Add("ChinchaAlta")

Escuela Superior Privada de Tecnologa SENATI

129

Programacin Digital I
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

Escuela Superior Privada de Tecnologa SENATI

130

Programacin Digital I

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")

Escuela Superior Privada de Tecnologa SENATI

131

Programacin Digital I
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 Dim Codigo, Nombre, Sueldo As String

Escuela Superior Privada de Tecnologa SENATI

132

Programacin Digital I
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

Escuela Superior Privada de Tecnologa SENATI

133

Programacin Digital I

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")

Escuela Superior Privada de Tecnologa SENATI

134

Programacin Digital I
Hijo.Nodes.Add("ChinchaBaja") 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

Escuela Superior Privada de Tecnologa SENATI

135

Programacin Digital I

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 Return F

Escuela Superior Privada de Tecnologa SENATI

136

Programacin Digital I
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

Escuela Superior Privada de Tecnologa SENATI

137

Programacin Digital I

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) m_Cantidad = value

Escuela Superior Privada de Tecnologa SENATI

138

Programacin Digital I
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 Return Pago End Function

Escuela Superior Privada de Tecnologa SENATI

139

Programacin Digital I
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

Escuela Superior Privada de Tecnologa SENATI

140

Programacin Digital I

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.

Escuela Superior Privada de Tecnologa SENATI

141

Programacin Digital I

SESIN VII BASE DE DATOS

CONTENIDO

Base de Datos Relacional LENGUAJE SQL

PRACTICA DE REFORZAMIENTO

Escuela Superior Privada de Tecnologa SENATI

142

Programacin Digital I

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;

Escuela Superior Privada de Tecnologa SENATI

143

Programacin Digital I

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

Escuela Superior Privada de Tecnologa SENATI

144

Programacin Digital I

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 unicamente 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 un 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.

Escuela Superior Privada de Tecnologa SENATI

145

Programacin Digital I

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?

Escuela Superior Privada de Tecnologa SENATI

146

Programacin Digital I

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.

Escuela Superior Privada de Tecnologa SENATI

147

Programacin Digital I
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.

Escuela Superior Privada de Tecnologa SENATI

148

Programacin Digital I
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

Escuela Superior Privada de Tecnologa SENATI

149

Programacin Digital I

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

Escuela Superior Privada de Tecnologa SENATI

150

Programacin Digital I

Operadores de Comparacin

Operador < > <> <= >= = BETWEEN LIKE In Menor que Mayor que Distinto de Menor Igual que Mayor Igual que Igual que

Uso

Utilizado para especificar un intervalo de valores. Utilizado en la comparacin de un modelo Utilizado para especificar registros de una base de datos

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

Escuela Superior Privada de Tecnologa SENATI

151

Programacin Digital I

Escuela Superior Privada de Tecnologa SENATI

152

Programacin Digital I

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

DESCRIPCION Utilizada para especificar la tabla de la cual se van a seleccionar los registros.

WHERE

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 sleccionados de acuerdo con un orden especifico.

Escuela Superior Privada de Tecnologa SENATI

153

Programacin Digital I

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 Descripcin Utilizada para calcular el promedio de los valores de un campo determinado

COUNT Utilizada para devolver el nmero de registros de la seleccin SUM MAX MIN 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 SQL agregadas. Se utiliza la clusula WHERE para excluir aquellas filas que no desea agrupar, y la clusula HAVING para filtrar los registros una vez agrupados. 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 esta 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 de una funcin SQL agregada. SELECT Id_Familia, Sum(Stock) FROM Productos GROUP BY Id_Familia; Una vez que GROUP BY ha combinado los registros, HAVING muestra cualquier registro agrupado por la clusula GROUP BY que satisfaga las condiciones de la clusula HAVING. HAVING es similar a WHERE, determina qu registros se seleccionan. Una vez que los registros se han agrupado utilizando GROUP BY, HAVING determina cuales de ellos se van a mostrar.

Escuela Superior Privada de Tecnologa SENATI

154

Programacin Digital I
SELECT Id_Familia Sum(Stock) FROM Productos GROUP BY Id_Familia 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 sintaxis es la siguiente 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 en el clculo. SELECT Avg(Gastos) AS Promedio FROM Pedidos WHERE Gastos > 100; 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 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). 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). No se debe poner el asterisco entre dobles comillas ('*'). SELECT Count(*) AS Total FROM Pedidos; 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 con ampersand (&). SELECT Count(FechaEnvo & Transporte) AS Total FROM Pedidos; Max, Min Devuelven el mnimo o el mximo de un conjunto de valores contenidos en un campo especifico de una consulta. Su sintaxis es: Min(expr) 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 funciones agregadas de SQL). SELECT Min(Gastos) AS ElMin FROM Pedidos WHERE Pais = 'Espaa'; SELECT Max(Gastos) AS ElMax FROM Pedidos WHERE Pais = 'Espaa'; StDev, StDevP Devuelve estimaciones de la desviacin estndar para la poblacin (el total de los registros de la tabla) o una muestra de la poblacin representada (muestra aleatoria) . Su sintaxis es: StDev(expr)

Escuela Superior Privada de Tecnologa SENATI

155

Programacin Digital I
StDevP(expr) 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 estndar no puede calcularse). SELECT StDev(Gastos) AS Desviacion FROM Pedidos WHERE Pais = 'Espaa'; SELECT StDevP(Gastos) AS Desviacion FROM Pedidos WHERE Pais= 'Espaa'; 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 otras de las funciones agregadas de SQL). SELECT Sum(PrecioUnidad * Cantidad) AS Total FROM DetallePedido; Var, VarP Devuelve una estimacin de la varianza de una poblacin (sobre el total de los registros) o una muestra de la poblacin (muestra aleatoria de registros) sobre los valores de un campo. Su sintaxis es: 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'

Escuela Superior Privada de Tecnologa SENATI

156

Programacin Digital I

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 explicita, SQL lo har de foma automtica. Por ejemplo, si queremos crear un ndice en la columna nombre de la tabla alumno crearemos la tabla de la siguiente manera; Ejemplo: de forma

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;

Escuela Superior Privada de Tecnologa SENATI

157

Programacin Digital I
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 nombre_de_columna tipo_de_dato; 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)

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())

Escuela Superior Privada de Tecnologa SENATI

158

Programacin Digital I
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

Escuela Superior Privada de Tecnologa SENATI

159

Programacin Digital I

SESIN VII ADO .NET


CONTENIDO

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

Escuela Superior Privada de Tecnologa SENATI

160

Programacin Digital I

ADO NET ACTIVE DATA OBJECT


Es un nuevo modeo de administracion y manejo de datos de MICROSOFT es ADO NET, este modeo 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 aplicacion aspx con una base de datos y mas que comunicar se pretende que el programa o aplicacion realize 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 fisicamente en el servidor y en algun 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 tambien es necesario conocer que asi como existen servidores de paginas ( web server ), servidores de correo ( mail server ), servidores de ftp ( ftp server ), etc, tambien existen servidores de bases de datos ( database server ), los mas comunes son el sqlserver de microsoft, oracle, mysql, etc, estos servidores tambien 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 programacionfacil en un proximo futuro). El modo de comunicarse entre nuestro programa o aplicacion y la base de datos (ya sea fisica o un dbserver), implica que ambos manejen un lenguaje de programacion comun, es decir no se puede mandar una instruccion en csharp, o en basic o pascal a la base de datos y ademas esperar que esta ultima la entienda ( para entender esto, una razon muy sencilla es que la base de datos tendria que conocer o comprender todos los lenguajes de programacion), para resolver este problema de comunicacion es que se usa un lenguaje comun de bases de

Escuela Superior Privada de Tecnologa SENATI

161

Programacin Digital I
datos que tanto los lenguajes de programacion existentes como las bases de datos entienden, este lenguaje comun 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 proposito 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 tendra que crear en el programa y luego se tendra que cargar con dos parametros(ver ejemplo mas abajo), el primer parametro es el provedor o la fuente que proporcionara los datos, los provedores 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 2005 trae por default los controles SQL, en este capitulo se usaran los objetos OLEDB, lo malo es que se tendran que crear, cargar y codificar a mano y no olvidar incluir en la parte de arriba del programa la instruccion 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 2005 YA ESTARA INCLUIDA El segundo parametro es la propia base de datos con la cual se comunicara el programa o aplicacion. Ejemplo del objeto CONNECTION DIM coneccion AS OLEDBCONNECTION coneccion = NEW OLEDBCONNECTION(Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=c:\progfacil\lauro\mibase.mdb) Es una sola string y los dos parametros mencionados van separados por el punto y coma. ATENCION es DATA SOURCE= no usar DATASOURCE= estan adevertidos. ejemplos de los otros poveedores o fuentes mencionados: //Provider=MSDAORA; Data Source=ORACLE8i7; User ID=OLEDB; Password=OLEDB //Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\bin\LocalAccess40.mdb;

Escuela Superior Privada de Tecnologa SENATI

162

Programacin Digital I
//Provider=SQLOLEDB;Data Source=MySQLServer;Integrated Security=SSPI;

OBJETO DE ACCESO A DATOS


SQLCONNECTION
Este objeto es el encargado de la conexin a una base datos SQL Server .Este objeto esta 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 obtenidoe 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 actualizacion,adicin o eliminacin de la infrmacin.

SQLCOMMAND
Este objeto se utiliza para almacenar el comando con el requerimiento para la conexin establecida. El comando consisten 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

Escuela Superior Privada de Tecnologa SENATI

163

Programacin Digital I
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

Select * from products ,clic en aceptar

Escuela Superior Privada de Tecnologa SENATI

164

Programacin Digital I

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:

Clic en Conjunto de datos sin tipo, clic en Aceptar

Escuela Superior Privada de Tecnologa SENATI

165

Programacin Digital I

5) Ubicar TabControl

el

control

6)Agregar el control DataGrid en la ficha de control1

TabControl1 TabPage1 TabPage2

Text Text

Lista de Productos Lista de Categoras

Escuela Superior Privada de Tecnologa SENATI

166

Programacin Digital I
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 de Productos Lista de Categoras Lista de los Nombres de categora y Nombres de Producto Lista de Nombres de Producto y Cantidad Solicitada Lista de Nombre de Producto e Importe Lista de Nombre de Producto y Cuantos por Producto Lista de Nombre de Producto y Suma de Importes por Producto Lista de Nombre de Categora y Cuantos por Categoria Lista de Nombre de Clientes(Customers) Lista de Nombre de Cliente y el Importe por cada cliente

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

Escuela Superior Privada de Tecnologa SENATI

167

Programacin Digital I

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


Escuela Superior Privada de Tecnologa SENATI

168

Programacin Digital I

dato.Read() Dim usuario, contrasea As String usuario = dato(0) contrasea = dato(2) 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

Escuela Superior Privada de Tecnologa SENATI

169