Beruflich Dokumente
Kultur Dokumente
JMBS
Instituto Sagrado Corazn de Jess
08/05/2012
TEMTICA DE DESARROLLO
SESIN I: EL IDE DEL VISUAL BASIC .NET
Conceptos Generales ......................................................................................... 6 MICROSOFT NET FRAMEWORK ........................................................................... 6 Entorno NET FRAMEWORK ................................................................................ 7 Visual Studio NET .............................................................................................. 9 Elementos del Entorno de VISUAL STUDIO 2008 .................................................. 12
ComboBox ........................................................................................................ 56 ListBox.............................................................................................................. 61 CheckBox .......................................................................................................... 64 Radio Button .................................................................................................... 67 Tab Page .......................................................................................................... 72 Laboratorios...74
For/Next ........................................................................................................... 70 For Each .......................................................................................................... 71 While/End While ............................................................................................... 71 Do/Loop ........................................................................................................... 72 Estructuras ....................................................................................................... 73 Laboratorio..74
Semestre 2012 - I
ARREGLOS TIPO TABLA ........................................................................ 86 ARREGLOS CON PARAMETROS.............................................................. 87 ARREGLOS DE CONTROLES................................................................. .87
Laboratorios...88
Control de Excepciones ................................................................................... 97 Mens en Visual Basic NET y 2008 ...................................................................... 101 Laboratorios...110
Base de Datos Relacional .................................................................................... 112 LENGUAJE SQL ................................................................................................. 116 Laboratorios...119
ADO NET ......................................................................................................... 135 Objeto de acceso a datos .................................................................................. 155 Acceso a Datos...................................................................................................160
Semestre 2012 - 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 ms importantes del lenguaje, el
FRAMEWORK que lo soporta y los distintos tipos de aplicaciones que podemos lograr con l.
Semestre 2012 - I
Conceptos Generales MICROSOFT NET FRAMEWORK Entorno NET FRAMEWORK Visual Studio NET Elementos del Entorno de VISUAL STUDIO 2008
PRCTICA DE REFORZAMIENTO
Semestre 2012 - 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 Languaje) y SOAP (Simple Object Access Protocol). Las aplicaciones creadas en la plataforma .NET podrn ser usadas por un gran nmero de clientes, tales como PC, PC de bolsillo (Palm PC), celulares digitales, PC de juegos (PC Games), PC de auto (Auto PC), PC Televisor (Ultimate TV), etc. La plataforma .NET de Microsoft es un componente de software que puede ser aadido al sistema operativo Windows. Provee un extenso conjunto de soluciones predefinidas para necesidades generales de la programacin de aplicaciones, y administra la ejecucin de los programas escritos especficamente con la plataforma. Esta solucin es el producto principal en la oferta de Microsoft, y pretende ser utilizada por la mayora de las aplicaciones creadas para la plataforma Windows.
es un entorno para construir, instalar y ejecutar servicios Web y otras aplicaciones. Se compone de tres partes principales: El conjunto de lenguajes de programacin, La Biblioteca de Clases Base o BCL y El Entorno Comn de Ejecucin para Lenguajes o CLR por sus siglas en ingls.
Semestre 2012 - I
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.
Semestre 2012 - I
Con Visual Basic .NET puedes crear bsicamente estos dos tipos de ejecutables: de consola, no grfico, al estilo del viejo MS-DOS, y grficos, como los que normalmente estamos acostumbrados a ver en Windows. Existen otros tipos de aplicaciones que se pueden crear con Visual Basic .NET: aplicaciones ASP.NET, las cuales sern tratadas en otra gua. Visual Basic .NET (VB.NET): Es un lenguaje de programacin orientado a objetos que se puede considerar una evolucin de Visual Basic implementada sobre el framework .NET. Su introduccin result muy controvertida, ya que debido a cambios significativos en el lenguaje VB.NET no es compatible hacia atrs con Visual Basic, cosa que caus gran divisin en la comunidad de desarrolladores de Visual Basic. La gran mayora de programadores de VB.NET utilizan el entorno de programacin Microsoft Visual Studio .Net en alguna de sus versiones (Visual Studio .NET, Visual Studio .NET 2003 o Visual Studio .NET 2008), aunque existen otras alternativas, como SharpDevelop (que adems es libre). Como pasa con todos los lenguajes de programacin basados en .NET, los programas escritos en VB.NET requieren el Framework .NET para ejecutarse.
Semestre 2012 - I
Al ingresar por primera vez al Visual Basic Net observara la siguiente pantalla En esta pantalla se muestra principalmente la pgina de inicio con los proyectos reciente y as opciones para abrir o crear un nuevo proyecto. Tambin se muestra las opciones para Abrir o Crear un nuevo proyecto. Tambin se muestra el cuadro de herramientas y el explorador de soluciones pero vacos porque no hay ningn proyecto activo.
Semestre 2012 - I
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:
Semestre 2012 - I
10
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.
Semestre 2012 - I
10
11
Ventana Propiedades
Semestre 2012 - I
11
12
Barra de Ttulo
Contiene el nombre del proyecto y su estado. Cuando estamos en estado de diseo, es decir dibujando los controles o escribiendo las instrucciones, la barra slo muestra el nombre del proyecto.
Cuando ejecuta la aplicacin se muestra la palabra ejecutando en la barra de titulo. Durante este estado la aplicacin solo ejecutara las instrucciones indicadas y no se podr modificar las ni alterar el diseo de la aplicacin. Los siguientes botones que s encuentran en la barra estndar permiten iniciar, interrumpir, detener o depurar una aplicacin.
Semestre 2012 - I
12
13
La Barra de Men
La barra de mens contienen todas las opciones que permiten
El Cuadro de Herramientas
Como su nombre lo indica, este cuadro contiene todas las herramientas que se necesita para desarrollar las aplicaciones. Al pasar el puntero del Mouse por este cuadro se visualizan todas las herramientas. Si desea que el cuadro de herramientas est permanente en su pantalla, debe hacer clic en el botn Ocultar Automticamente.
El Formulario
El formulario es el objeto principal de cada aplicacin porque aqu se construye la interfaz del usuario, es decir, la comunicacin del usuario con la aplicacin que se desarrolla. El desarrollo de una aplicacin consiste en agregar los formularios necesarios y asignarles sus propiedades luego
Semestre 2012 - I
13
14
Otra forma de agregar formularios a una aplicacin es haciendo clic en el nombre del proyecto del explorador de soluciones y eligiendo la opcin Agregar Windows Forms. En la ventana que se visualiza selecciones Windows Forma y luego clic en el botn Agregar, si desea, antes de hacer clic en el botn Agregar puede asignarle un nombre diferente al predeterminado del nuevo formulario. En el siguiente ejemplo se est agregando un nuevo formulario con el nombre frm ejemplo por Form2.vb
Para eliminar un formulario haga clic derecho en su nombre en el explorador de soluciones y del men contextual que se visualiza elija la opcin Eliminar. Del mensaje que se visualiza, haga clic en el botn Aceptar para confirmar la eliminacin. Cuando se ejecuta el proyecto, se visualiza el primer formulario. Para indicar el formulario inicial seleccione el nombre de la aplicacin luego clic derecho, propiedades. Luego seleccione el nombre del formulario inicial.
Semestre 2012 - I
14
15
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
Semestre 2012 - I
15
16
Estos botones permiten: Mostrar las propiedades del archivo seleccionado Mostrar todos los archivos del proyecto Actualizar el explorador de soluciones Ingresar a la ventana de cdigo del objeto seleccionado Ver la ventana de diseo Ver diagrama de clase
Ventana de Cdigo
Semestre 2012 - I
16
17
Ventana de Diseo
Como en las versiones anteriores de Visual Basic, tambin se puede ingresar a la ventana de cdigo de un objeto pulsando la tecla F7 y para regresar a la ventana de diseo Shift+f7
CONFIGURAR EL VISUAL BASIC NET Si desea configurar el Visual Basic Net como por ejemplo cambiar el tipo, tamao, color de la letra de las instrucciones que escriba o el color del texto de cada comentario, etc. debe elegir la opcin Herramientas Opciones. Se visualiza una ventana con 2 opciones. 1.-Crear una Carpeta de trabajo en la unidad d:\Mis Proyectos 2,-Clic en herramientas, Opciones, Proyectos y soluciones Escoger la ruta de la carpeta de trabajo en; D:\mis proyectos
Semestre 2012 - I
17
18
Observe lo siguiente:
Semestre 2012 - I
18
19
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
Ejecutar las aplicaciones Clic en Proyecto, Propiedades de WindowsApplication1 Se observa Elija Objeto inicial: Form1 Clic en el icono Ejecutar
Semestre 2012 - I
19
20
PROCESO
Cdigo Diseador Explorador de Soluciones Ventana de Propiedades Cuadro de Herramientas Examinador de Objetos Ejecutar Application F7 Shift + f7
Tecla Rpida
Semestre 2012 - I
20
21
SESIN II
INSTRUCCIONES CONDICIONALES
CONTENIDO
Semestre 2012 - I
21
22
Figura 1
Figura 2
Procedimiento
a)primero Realizamos el diseo del formulario b)Pulsar alt + ctrl + x para usar el control etiqueta
Este control permite escribir ttulos Y usar el control botn de comando para generar el botn de comando
Semestre 2012 - I
22
23
Objeto Label1
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:
Objeto
propiedad
La propiedad Text permite asignar el texto al Objeto La propiedad ForeColor permite asignar el color al Objeto
Semestre 2012 - I
23
24
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Me.Close() End Sub En este caso el formulario se identifica con Me y se le asigna el METODO close()
Segunda Aplicacin
Otra aplicacin ser un simple formulario con algunos elementos de escritorio comunes para ir familiarizando con el entorno. Abra el entorno de desarrollo visual studio y cree un nuevo proyecto (ctrl+n).
Semestre 2012 - I
24
25
En el cuadro de dialogo Name escriba alumnos y pinche el botn OK. El IDE inmediatamente creara el proyecto y nos mostrar una esto:
En la cual se mostrar como pgina principal una pestaa que contendr el diseador visual con un formulario el cual el sistema habr llamado Form1. En la ventana de propiedades cambie el nombre a form_alumnos
Semestre 2012 - I
25
26
Adems cambie la propiedad text a Registro de Alumnos y el tamao (size) a 800,600.Lo que acabamos de hacer es ajustar las propiedades del objeto form mediante el diseador. Agregando controles a nuestro formulario. Desde la ventana de herramientas o toolbox podemos agregar distintos controles a nuestro formulario, esto lo podemos hacer pinchando el control que deseamos y arrastrndolo al formulario. Ingrese los siguientes controles a su formulario: 9 Etiquietas (Label) 6 cuadros de texto (TextBox) 1 cuadro de lista desplegable (combo box) 1 Calendario (DateTimePicker) Cambie la propiedad de cada Label con los siguientes nombres: RUN Nombre Ap. Paterno Ap.Materno Direccin Telfono Email Carrera Fecha de Ingreso Cambie la propiedad name de los text_box de la siguiente forma: Text_run
Semestre 2012 - I
26
27
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:
para ejecutar la aplicacin y ver cmo quedar nuestro formulario, debera ver algo similar
Semestre 2012 - I
27
28
Hasta el momento no hemos utilizado absolutamente nada de cdigo, bueno, dependiendo de la ptica del programador, esto es una ventaja ya que el IDE nos permite crear en forma rpida una aplicacin. Hagamos algo ms interesante, agreguemos dos botones al formulario para utilizarlo como disparador de un eventos, para ello iremos nuevamente al toolbox y busquemos el control Button, ubiquemos uno debajo del combobox de carrera y cambiemos su nombre a btn_grabar y la propiedad text a Grabar, el otro botn ubiqumoslo al costado derecho del botn Grabar y cambie su propiedad nombre a btn_Salir y su text a Salir. Como comentario aparte, Se han fijado que para dar el nombre a los controles hemos utilizado una nomenclatura comn?, por ejemplo Textbox1 lo llamamos Text_run, Combobox1 lo llamamos cmb_carrera, bueno, utilizar nomenclaturas comunes que identifiquen claramente el tipo de control y el campo o dato con el cual se est trabajando es una buena idea ya que nos permitir fcilmente identificar estos cuando estemos trabajando con cdigo. Sigamos con nuestra aplicacin, hasta ahora no hemos utilizado nada de cdigo, as que ya es hora de utilizar nuestras neuronas . Haga doble clic en el botn btn_salir. Qu ha pasado?, se ha activado la pestaa de cdigo y auto-mgicamente el cursor se ha ubicado entre estas lneas:
Private
Sub
Button1_Click(ByVal
sender
As
System.Object,
ByVal
As
Semestre 2012 - I
28
29
Agreguemos algo de estilo a nuestro formulario. Para ello pondremos una imagen en el top de formulario con el Titulo de la aplicacin. Primero debemos hacer espacio para nuestra imagen, seleccione todos los controles y muvalos hacia abajo. Para ello mantenga presionado el botn derecho del mouse y seleccione los controles de formulario. Agregamos un Label a nuestro Formulario, y le agregamos las siguientes propiedades (en tiempo diseo): Dock = Top Autosize = False En la propiedad Image, importamos una nueva imagen, yo ocup el logo de Ceduc , ustedes elijan el que gusten.
Semestre 2012 - I
29
30
Semestre 2012 - I
30
31
Ahora agregamos un nuevo formulario (Windows Form), frmLogin.vb. Y le agregamos los siguientes controles: En el formulario frmLogin.cs, cambiamos la propiedad del control btnAceptar:
DialogResult = Ok
Y en el control txtPassword: UseSystemPasswordChar = Trae PasswordChar = * Y en el propio formulario cambiamos las siguientes propiedades: AcceptButton = btnAceptar CancelButton = btnCancelar
Ahora debemos hacer que nuestro formulario de autentificacin sea el principal en nuestro proyecto, para ello vamos nuevamente a la ventana del explorador de soluciones y seleccionamos nuestro proyecto haciendo doble clic en el. En este instante se abrir el cuadro de propiedades de la aplicacin. En el cuadro de opciones startup form selecionaremos el formulario frmLogin:
Semestre 2012 - I
31
32
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.
Semestre 2012 - I
32
33
Integer Long Short Byte Double Single Decimal Boolean Char String DateTime Object Numero entero 32 bits Nmero entero 64 bits Nmero Entero 16 bits Binarios o caracteres ASCII en numrico Decimales 64 bits Decimales de coma flotante 32 bits Decimales con coma como enteros 128 bits True o False nmeros de 16 bits Un carcter numero de 16 bits sin signo Alfanumricos Fechas y horas como entero de 64 bits Datos de cualquier tipo Declaracin de Variables Indicar su presencia a un programa. Sintaxis:
Semestre 2012 - I
33
34
Tambien se pueden declarar por medio de caracteres de tipo identificador. Dim StrVar$
Decimal String
Nomenclatura de variables
@ $
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
Declaracin e Inicializacin
Semestre 2012 - I
34
35
Disociar una variable de su tipo de dato: Nothing Nothing disocia una variable de su tipo de dato correspondiente. pOr ejemplo si se asinga Nothing a una variable de tipo Integer la variable pierde su valor y adopta el valor predeterminado de su tipo de datos. Ejemplo Dim Ctr Integer = 10 Ctr = Nothing Adopta 10 Adopta 0
Declaraciones implcitas y explicitas Se puede declarar variables implcita explcitamente. Ejemplo: cpvroman@hotmail.com NumVar= 2*5 10 3 que permiten utilizar variables sin declararlas y
Se recomienda declarar explcitamente una variable. La instruccin Option Explicit garantiza que las variables se declaren antes de utilizarlas. Sintaxis Option Explicit On Off Por defecto es On
Semestre 2012 - I
35
36
NumVar As Integer Public Dim NumVar As Integer Public NumVar as Integer Conversin de Tipos Se dispone de dos tipos de conversiones:
Por ejemplo, de Integer a Short A su vez pueden ser conversiones explicitas (On) e implcitas (Off). Option Strict [On Off] On comprueba los tipos de datos antes de la conversin. Off puede generar conversiones implcitas. El valor por defecto es On Nota: Cuando se define la instruccin Option Strict On, es necesario declarar las variables explcitamente. Constante Una variable cuyo valor no cambia durante la ejecucin de un programa. Const MaxPuntos As Integer = 100 Const MaxPuntos = 100
Semestre 2012 - I
36
37
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
Semestre 2012 - I
37
38
Operador =
Ejemplo Num1 = 12
+=
Asignacin de suma
-=
Asignacin de resta
Variable -= Expresion
*=
Asignacin de
Variable *=
\=
&=
Asignacin de concatenacin
^=
Asignacin de potencia
Numero ^= Exponente
Numero1 ^=3
Semestre 2012 - I
38
39
PRAMAR .NET
Visual
Rango de Valores
Boolean Date
Verdadero o Falso 0:00:00 del 1 de enero de 0001 a 11:59:59 PM del 31 de diciembre de 9999 Hasta 29 dgitos significativos, con valores de hasta 7,9228 x 10 (con signo)
Decimal
16 bytes
Double
8 bytes
Integer
4 bytes
Single
4 bytes
String
Variant
Semestre 2012 - I
39
40
Semestre 2012 - I
40
41
Semestre 2012 - I
41
42
Vista Diseo del Formulario Principal Objeto Form1 Propiedad (Name) BackColor BackgroundImage BackgroundImageLayout Font Label1 (Name) Text Font ForeColor Button1 (Name) BackColor BackgroundImage BackgroundImageLayout Font Label1 Ejercicios de Visual Basic Net Valor Form1
Semestre 2012 - I
42
43
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Form2.ShowDialog() End Sub
Declaracin de Variables
Se Requiere lo siguiente: El Ingreso del cdigo solo numrico El ingreso de apellidos y nombres y el curso solo letras Las notas deben ser valor numrico Obtener el Promedio
Semestre 2012 - I
43
44
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.
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
Private Sub TextBox1_KeyPress1(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress If (Asc(e.KeyChar) < 48 Or Asc(e.KeyChar) > 57) And Asc(e.KeyChar) <> 8 Then e.Handled = True End If
2012 - I
44
45
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
Semestre 2012 - I
45
46
Sub evaluar() if Val(TextBox1.Text) < 0 Or Val(TextBox1.Text) > 20 Then MsgBox("La nota debe estar entre 0 y 20", MsgBoxStyle.Exclamation, "verifique") TextBox1.Clear() TextBox1.Focus() Else TextBox2.Focus() INSTRUCCION SELECT CASE End ocasiones If Tambin existen o programas donde se exige evaluar muchas condiciones a la vez, en estos casos o se
usa una condicin compuesta muy grande o se debe intentar convertir el problema a uno que se pueda resolver usando la instruccin SELECT CASE. Esta instruccin es una instruccin de decisin mltiple donde el compilador prueba o busca el valor contenido en una variable ENTERA, CHARACTER, STRING contra una lista de constantes apropiadas, es decir enteras, carcter o astringes, cuando el computador encuentra el valor de igualdad entre variable y constante entonces ejecuta el grupo de instrucciones asociados a dicha constante, si no encuentra el valor de igualdad entre variable y constante, entonces ejecuta un grupo de instrucciones asociados a un default, aunque este ltimo es opcional. El formato en visual BASIC net de esta instruccin es el siguiente; capturar o asignar variable de condicin Select Case variableopcion case const1 instruccion(es) case const2 instruccion(es) case const3 Instruccion(es) Case Else instruccion(es) End Select
End Sub
Public Class Form4 Dim EDAD As Integer Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click EDAD = Val(TextBox1.Text) Select Case EDAD Case 0 To 9 Label2.Text = "INFANCIA" Case 10 To 13 Label2.Text = "NIEZ" Case 15, 16, 17
Semestre 2012 - I
46
47
Semestre 2012 - I
47
48
LABORATORIOS
LABORATORIO - 001
1.
Elaborar una aplicacin que permita ingresar el nombre de un usuario y que luego permita saludarlo en un Label.
Public Class Form1 Private Sub BtnSaludo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSaludo.Click 'Define la variable nombre y le asigna el valor ingresado Dim Nombre As String = TxtNombre.Text 'Alinea el texto del saludo al centro de la etiqueta LblSaludo.TextAlign = ContentAlignment.MiddleCenter 'Muestra el saludo LblSaludo.Text = "Hola: " & Chr(10) & Chr(13) & Nombre & Chr(10) & Chr(13) & Chr(10) _ & Chr(13) & "Bienvenido a Visual Basic 2008" End Sub Private Sub BtnCerrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCerrar.Click Close() End Sub End Class
Semestre 2012 - I
48
49
Public Class Form1 Private Sub BtnCalcular_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim Nota1, Nota2, Nota3, Puntos, Promedio As Single Nota1 = Single.Parse(TxtNota1.Text) Nota2 = Single.Parse(TxtNota2.Text) Nota3 = Single.Parse(TxtNota3.Text) Puntos = Nota1 + Nota2 + Nota3 Promedio = Puntos / 3 LblPuntos.Text = Puntos.ToString LblPromedio.Text = Promedio.ToString If Promedio >= 10.5 Then LblPromedio.ForeColor = Color.Blue Else LblPromedio.ForeColor = Color.Red End If End Sub Private Sub BtnNuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) TxtNombre.Text = "" TxtNota1.Text = "" TxtNota2.Text = "" TxtNota3.Text = "" LblPuntos.Text = "" LblPromedio.Text = "" TxtNombre.Focus() End Sub End Class
Semestre 2012 - I
49
50
LABORATORIO - 003
Elaborar una aplicacin que permita mostrar el promedio de dos notas, este promedio se mostrara en un cuadro de mensaje, de la siguiente manera:
Public Class Form4 Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim kb As Integer = 0 Dim seg As Integer = 0 Dim velocidad As Integer = 0 kb = 55 velocidad = kb / seg MsgBox(CStr(velocidad) & " kb por seg") End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim aNumber As Integer = CInt(TextBox1.Text) Dim bNumber As Integer = CInt(TextBox2.Text) MsgBox(calculopromedio(aNumber, bNumber)) End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click TextBox1.Text = "" TextBox1.Text = "" habilitabotones() End Sub Sub deshabilitabotones() TextBox1.Enabled = False TextBox2.Enabled = False End Sub Sub habilitabotones() TextBox1.Enabled = True
Semestre 2012 - I
50
51
LABORATORIO - 004
2. Elaborar una aplicacion que permita ingresar el nombre de un cliente asi como el monto consumido, luego al hacer click debera mostrar el importe del mismo acompaado del igv, mostrandose en los labels respectivos.
Public Class Form1 Private Sub BtnCalcular_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim Monto, Importe, Igv As Double Monto = Double.Parse(TxtMonto.Text) Importe = Monto / 1.19 Igv = Monto - Importe LblImporte.Text = Importe.ToString("###,##0.00") LblIgv.Text = Igv.ToString("###,##0.00") End Sub Private Sub BtnNuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) TxtCliente.Text = "" TxtMonto.Text = "" LblImporte.Text = "" LblIgv.Text = "" TxtCliente.Focus() End Sub Private Sub BtnCerrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Close() End Sub End Class
Semestre 2012 - I
51
52
Semestre 2012 - I
52
53
Public Class Form7 Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged Select Case ComboBox1.SelectedIndex Case 0 TextBox1.Text = 1000 Case 1 TextBox1.Text = 2000 Case 2 TextBox1.Text = 3000 End Select End Sub Private Sub Form7_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load ComboBox1.Items.Add("DIGITADOR") ComboBox1.Items.Add("PROGRAMADOR") ComboBox1.Items.Add("ANALISTA") End Sub End Class El control ComboBox de Visual Basic 6.0 se ha reemplazado por el control ComboBox de Windows Forms en Visual Basic 2008. Los nombres de algunas propiedades, mtodos, eventos y constantes son diferentes y, en
Semestre 2012 - I
53
54
Cuando se modifica la seccin de entrada de texto Cuando se selecciona un elemento de la lista Cuando se modifica un elemento de la lista mediante programacin Cuando se llama al mtodo AddItem
ItemData (Propiedad) En Visual Basic 6.0 la propiedad ItemData de un control ComboBox se puede establecer en tiempo de diseo en la ventana Propiedades para asociar un valor Integer con un elemento ComboBox. En Visual Basic 2008, la propiedad ItemData ya no existe. La biblioteca Microsoft. VisualBasic. Compatibility contiene una funcin SetItemData que se puede utilizar para asociar un valor Integer con un elemento; la funcin GetItemData se puede utilizar para recuperar el elemento. Locked (Propiedad) En Visual Basic 6.0, la propiedad Locked de un control ComboBox determina si se puede editar la seccin del cuadro de texto del control. En Visual Basic 2008, la propiedad Locked impide que un control se mueva en tiempo de diseo. No existe un equivalente directo para la propiedad Locked de Visual Basic 6.0; sin embargo, puede conseguir el mismo efecto si establece la propiedad DropDownStyle del control ComboBox en DropDownList. Nota En Visual Basic 6.0, si se establece la propiedad Locked en True, tambin se impedir que se modifique la seleccin. Para duplicar este comportamiento, puede cancelar la seleccin en el evento MouseDown. NewIndex (Propiedad) En Visual Basic 6.0, la propiedad NewIndex se usaba para recuperar el ndice del ltimo elemento agregado a un control ComboBox. En Visual Basic 2008, la propiedad NewIndex ya no existe. Puede utilizar el valor devuelto desde el mtodo Item.Add para recuperar el ndice de un elemento cuando ste se agrega.
Semestre 2012 - I
54
55
Semestre 2012 - I
55
56
Semestre 2012 - I
56
57
Control ListBox El control ListBox permite aadir elementos en forma de lista y tambin poder seleccionar elementos de la misma para trabajar los datos. Este control permite seleccionar un elemento solo o varios de ellos, utilizando la propiedad Multiselect. La imagen de la izquierda muestra un ListBox en el que se selecciona un solo elemento y a la derecha se seleccionan varios: Algunas de sus propiedades. ListBox.Items.Add: Sirve para agregar informacin al control ListBox.SelectedIndex: Indica los elementos que han sido seleccionado en el control, (ojo) esta propiedad es una de las ms funcionales que tiene este control, ya que, no da una perspectiva completa de la informacin que tenemos almacenada en el mismo. ListBox.Items.RemoveAt: Remueve o elimina la informacin seleccionada en el mismo. ListBox.Sorted: Esta propiedad es de tipo Boolean (Verdadero o Falso), nos sirve para ordenar alfabticamente (A hasta Z) la informacin contenida en el control.
Public Class Form8 Private Sub Form8_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ListBox1.Items.Add("DIGITADOR") ListBox1.Items.Add("PROGRANADOR") ListBox1.Items.Add("ANALISTA")
Semestre 2012 - I
57
58
Ejercicio 2
Semestre 2012 - I
58
59
Semestre 2012 - I
59
60
Semestre 2012 - I
60
61
PROPIEDADES BackColor Checked Obtiene o establece el color de fondo del control. Obtiene o establece un valor que indica si el estado de la casilla de verificacin es el de activada. Obtiene o establece un valor que indica si el control puede responder a la interaccin del usuario. Obtiene o establece la fuente del texto que muestra el control. Obtiene o establece el color de primer plano del control. Obtiene o establece el texto asociado al control.
Enabled
Se utiliza un control CheckBox para dar al usuario una opcin del tipo verdadero/falso o s/no. El control de la casilla de verificacin puede mostrar una imagen o texto o ambos. Se utiliza la propiedad Checked para obtener o establecer el valor de un control de casilla de verificacin de dos estados.
MTODOS
Focus
Hide Refresh
Oculta el control al usuario. Obliga al control a invalidar su rea cliente y, acto seguido, obliga a que vuelva a dibujarse el control y sus controles secundarios. Muestra el control al usuario.
Show
Semestre 2012 - I
61
62
Public Class Form5 Dim sueldo, bon, descuento, neto As Single Private Sub Opcion1ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Form2.Show() End Sub Private Sub Opcion2ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Form4.Show() End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged If CheckBox1.Checked = True Then sueldo = 1500 TextBox1.Text = sueldo Else sueldo = 0 TextBox1.Text = sueldo End If End Sub
Semestre 2012 - I
62
63
Semestre 2012 - I
63
64
Control Radiobutton
Ofrece opciones que el usuario puede activar o desactivar, pero solamente una opcin si existe un grupo de RadioButton. El control RadioButton puede mostrar texto, Imagen o ambos. Cuando el usuario selecciona un botn de opcin en un grupo, los dems se desactivan automticamente. Se utiliza la propiedad Checked para obtener o establecer el estado de un RadioButton. Ofrece opciones que el usuario puede activar o desactivar, pero solamente una opcin si existe un grupo de RadioButton. El control RadioButton puede mostrar texto, Imagen o ambos. Cuando el usuario selecciona un botn de opcin en un grupo, los dems se desactivan automticamente. Se utiliza la propiedad Checked para obtener o establecer el estado de un RadioButton.
Semestre 2012 - I
64
65
Checked Enabled
MTODOS
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.
Semestre 2012 - I
65
66
Public Class Form6 Dim SUELDO As Single Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged If RadioButton1.Enabled = True Then SUELDO = 960 TextBox1.Text = SUELDO End If End Sub Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged If RadioButton2.Enabled = True Then SUELDO = 2500 TextBox1.Text = SUELDO End If End Sub Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged If RadioButton3.Enabled = True Then SUELDO = 3500
Semestre 2012 - I
66
67
TAB PAGE
Este control permite visualizar las fichas de un control.
Public Class Form9 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Call visibilidad() TabPage1.BackColor = Color.BlanchedAlmond Label6.Text = "DATOS REGISTRADOS" Label7.Text = TextBox1.Text Label8.Text = TextBox2.Text Label9.Text = TextBox3.Text Label10.Text = TextBox4.Text Label11.Text = ComboBox1.Text End Sub
Semestre 2012 - I
67
68
Semestre 2012 - I
68
69
Semestre 2012 - I
69
70
LABORATORIOS
LABORATORIO - 001
Se desea elaborar una aplicacin que me permita mostrar el Neto a Pagar en el sueldo de un empleado para ello debemos tomar en cuenta lo siguiente: Si hacemos click en el Check de Bon Mov, se debera tomar en cuenta: El basico va a Depender del Cargo: Cargo Analista Programador Operador Digitador Secretaria Bon Mov es el 2% del Basico Si es Bon Ref es el 1% del Basico El Sueldo Bruto es la Suma del Basico mas las Bonificaciones esta se mostrara en el Label14. El Adelanto es el 3% del Basico, la AFP es el 13% del Basico, Otros es el 7% del Basico, por lo tanto el total de Descuentos es : Adelanto + AFP + Otros esto se mostrara en el Label15. El Neto es Bruto TotalDescuentos. El diseo de la ventana tendra el siguiente aspecto: Basico 2800 2000 1600 1250 1000
Semestre 2012 - I
70
71
LABORATORIO - 002
Elaborar una aplicacin que permita ingresar el Nombre, Edad y Estado Civil asi como su Turno, cuando presionemos Agregar este se visualizara en las Listas respectivas. Luego si deseamos eliminar a uno de los elementos de la lista, debemos seleccionarla y luego hacer clic en el botn Quitar. Del mismo modo cuando se haga clic en Limpiar todos los controles se borraran.
Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAgregar.Click Dim Nombre, Casado, Turno As String Dim Edad As Byte If TxtNombre.Text.Trim = "" Then MessageBox.Show("Ingrese el Nombre", "Por Favor") TxtNombre.Focus() Exit Sub End If If RbMaana.Checked = False And RbTarde.Checked = False And RbNoche.Checked = False Then MessageBox.Show("Seleccione el Turno", "Por Favor") Exit Sub End If 'Cambia el nombre a maysculas Nombre = TxtNombre.Text.ToUpper() Edad = UpEdad3.Value If CkCasado.Checked = True Then Casado = "Si" Else
Semestre 2012 - I
71
72
Semestre 2012 - I
72
73
Semestre 2012 - I
73
74
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.
Semestre 2012 - I
74
75
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
Ciclo I , II y III IV, V ,VI I , II y III IV, V ,VI I , II y III IV, V ,VI
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)
Semestre 2012 - I
75
76
Semestre 2012 - I
76
77
Semestre 2012 - I
77
78
Console.WriteLine(s) Next Console.ReadLine() Este bucle recorre cada uno de los caracteres de una cadena, en este caso recorrer cada carcter de la cadena s (Hola Mundo). Comenzando por la H y de ah la o y as hasta la ltima o de la palabra Mundo. Las estructuras repetitivas o llamados tambin bucles, se utilizan para repetir el o los cdigos, hasta que la expresin evaluada de un valor de Falso. While / End While Se repite mientras se cumpla la expresin lgica que se indicar despus de While Sintaxis: While <expresin> Lo que haya que hacer mientras se cumpla la expresin End While Ejemplo: While i < 10 Console.WriteLine(i) i=i+1 End While
Semestre 2012 - I
78
79
Instruccin Loop Segunda Forma: Este bucle evala al final, mejor dicho realizara el cdigo o las instrucciones n veces. Do Instruccin Loop While <expresin> Tercera Forma: Este bucle evala al principio, a diferencia que el primero realizara el cdigo siempre y cuando la expresin sea falsa, mejor dicho realizara el cdigo o las instrucciones n veces. Do Until <expresin>
Instruccin Loop Cuarta Forma: Este bucle evala al final, a diferencia que el segundo realizara el cdigo siempre y cuando la expresin sea falsa, mejor dicho realizara el cdigo o las instrucciones n 1 veces Do Instruccin
Semestre 2012 - I
79
80
Public Class Form10 Dim I As Integer Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click I=0 While (I <= 20) I=I+1 ListBox1.Items.Add(I) End While End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click I=0
Semestre 2012 - I
80
81
Semestre 2012 - I
81
82
Ejemplo de estructura definida por el usuario: Public Structure Empleado Public Nombre As String Public Apellido As String Public FechaContrato As Date Public Cargo As String Private Salario As Decimal End Structure Crear una estructura para almacenar informacin sobre coches Declare una estructura pblica con el nombre CarInfo en la seccin de declaraciones de Form1. Incluya los miembros que se muestran en la siguiente tabla. Public Structure CarInfo Public Marca As String Public Modelo As String Public PrecioCompra As Single Public FechaCompra As Date Declare una variable de tipo CarInfo y asgnele valores 1. En el evento Button1_Click, declarar una variable con el nombre miCoche de tipo de estructura CarInfo. El cdigo debera ser parecido a: Dim miCoche As CarInfo 2. Asignar valores a los miembros de la estructura. Podemos utilizar los siguientes valores o escoger otros. miCoche.Marca = "Jeep" miCoche.Modelo = "Cherokee" miCoche.PrecioCompra = 27999 miCoche.FechaCompra = #06/23/2000#
Semestre 2012 - I
82
83
Semestre 2012 - I
83
84
LABORATORIOS
LABORATORIO - 001
Elaborar una aplicacin que permita ingresar : Nombre de una Persona Seleccionar una Zona (Norte y Sur) Al ingresar El Monto de la Venta y se presiona ENTER se calcula : La Movilidad sera : o o Norte 20 soles Sur 15 soles 3% del Monto 2% del Monto
La Comision sera de : o o
Al mismo tiempo se ingresara automaticamente la informacion que se solicita en las listas. Cuando se presione el Boton RESUMEN se mostrara los Totales que se solicitan.
Semestre 2012 - I
84
85
LABORATORIO - 002
Crear una aplicacin que permita agregar los datos de sus amigos en las listas que se muestran en el diseo, para ello debera tomar en cta lo siguiente: El codigo debera estar creado de la siguiente manera: (Primer carcter del Apellido Paterno + Primer carcter del Apellido Materno + Ao + Mes del Nacimineto). Se debe agregar en la Lista Apellido Los Apellidos y Nombres. Asi como en la Lista signo debe mostrar el signo de la Persona de acuerdo a su fecha de nacimiento.
Semestre 2012 - I
85
86
LABORATORIO - 003
Crear una aplicacin que me permita adicionar a un grupo de datos que son ingresados desde ciertos controles, estos controles estan distribuidos de la siguiente manera :
Semestre 2012 - I
86
87
ARREGLOS TIPO LISTA ARREGLOS TIPO TABLA ARREGLOS CON PARAMETROS ARREGLOS DE CONTROLES
PRCTICA DE REFORZAMIENTO
Semestre 2012 - I
87
88
Semestre 2012 - I
88
89
Semestre 2012 - I
89
90
Semestre 2012 - I
90
91
Rosa > nombres(2) Jose > nombres(3) Sin embargo sus problemas son similares a los de variables normales es decir hay que declararlos, capturarlos, hacer operaciones con ellos, desplegarlos, compararlos, etc. En programacin tradicional siempre se manejan dos tipos de arreglos los arreglos tipo listas, vectores o unidimensionales y los arreglos tipo tablas, cuadros, concentrados, matrices o bidimensionales en ambos casos son variables que permiten almacenar un conjunto de datos del mismo tipo a la vez, su diferencia es en la cantidad de columnas que cada uno de estos tipos contiene, como en los siguientes ejemplos: a) LISTAS DE EDADES
18 34 22 15
Semestre 2012 - I
91
92
Como se observa la diferencia principal entre un arreglo tipo lista y un arreglo tipo tabla son las cantidades de columnas que contienen.
Semestre 2012 - I
92
93
Public Class Form1 Shared EDADARR(4) As Integer ' DECLARANDO RENG COMO GLOBAL
Semestre 2012 - I
93
94
Semestre 2012 - I
94
95
If RENG <= 5 Then EDADARR(RENG) = Val(EDAD.Text) RENG = RENG + 1 EDAD.Text = "" End If If RENG >= 5 Then EDAD.Visible = False RENG = 0 End If End Sub End Class
Notas:
Observar que en el programa el arreglo edad y la variable rengln se declararon de tipo GLOBAL porque los dos mtodos el de captura y el de operacin-despliegue, las estn compartiendo. Adems observar que se declararon antes de los eventos clickButton, para crearlos como objetos globales. Para el caso de operaciones y comparaciones con todos los elementos de la lista a la vez se deber usar un ciclo for con una variable entera llamada rengln, misma que tambin se usa como ndice de la lista. Recordar que todos los datos internos de la lista estarn almacenados en la memoria ram del computador, para despliegues se usa un componente visual que permite manipular un conjunto de datos a la vez, el ListBox con sus mtodos apropiados pero se tiene que usar un ciclo for para ir aadiendo o agregando elemento por elemento como se observa en el problema ejemplo que se ha venido desarrollando, en este caso se quiere desplegar las cinco edades convertidas a meses. La ultima instruccin y muy importante es poner en cero las variables de control de ciclos o ndice de arreglos, esto es porque el servidor mantiene el programa ejecutndose continuamente en memoria y si se vuelve a pedir la ejecucin del programa, en cuento se intente capturar un nuevo dato va a marcar el error arreglo fuera delimite o arrayofbound, estn avisados. Para inicializar una lista se debe usar el siguiente formato: shared dim nomlista() as tipodato={lista de valores separados por comas} ej;
Semestre 2012 - I
95
96
Semestre 2012 - I
96
97
Public Class Form2 ' DECLARANDO LISTA GLOBAL ' RECORDAR QUE SON 3 RENG Y 4 COLUMNAS Shared CALIFICACION(2, 3) As Integer ' DECLARANDO RENG Y COL COMO GLOBAL Dim R, C As Integer Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' EN ESTE MODULO SOLO SE TRABAJA CON EL ARREGLO ' EN MEMORIA CALIFICACION(R, C) = CALIF.Text C=C+1 CALIF.Text = "" If C = 4 Then R=R+1 C=0 End If If R = 3 Then CALIF.Visible = False End If End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim TEMP As String ' PROCESANDO Y REGALANDO 5 PUNTOS A TODOS For R = 0 To 2 For C = 0 To 3 CALIFICACION(R, C) = CALIFICACION(R, C) + 5 Next C Next R
Semestre 2012 - I
97
98
Semestre 2012 - I
98
99
TOTRENG(R) = TOTRENG(R) + TABLA(R,C) NEXT C PROMRENG(R) = TOTRENG(R)/3 NEXT R 'PARA TOTALES Y PROMEDIOS POR COLUMNA FOR C = 0 TO 2 FOR R = 0 TO 3 TOTCOL(C)=TOTCOL(C) + TABLA(R,C) NEXT R PROMCOL(C) = TOTCOL(C) / 4 NEXT C
ARREGLOS CON LISTBOX ListBox uno de los nuevos Controls, es un componente DINAMICO(es decir no tiene tamao definido) que permite procesar visualmente un conjunto de elementos de tipo string. La propiedad Rows que se usa al crearlo, es solo para indicarle cuantos renglones desplegara en pantalla, es decir si se usa rows=5, en listbox se podr capturar todos los elementos o datos que se quiera pero solo desplegara los ltimos cinco elementos. Sin embargo existen ciertas propiedades del listbox que permiten conocer cuntos elementos estn cargados en el listbox. Otra importante aspecto a recordar cuando se procese o programe, es que el primer ndice de la lista, es el ndice numero 0(cero). Este componente, contiene muchas propiedades y mtodos que facilitan el trabajo con datos la ms importante es su propiedad ITEMS, que a su vez tiene: PROPIEDAD ACCION O SIGNIFICADO Items.Add(dato): Inserta un elemento al final del listbox. Items.Clear(): Elimina todos los elementos de la lista. Items.Count(): Regresa la cantidad de elementos en lista. Items.Sorted = true; Ordena los elementos de la lista usada solo al tiempo de diseo.
Semestre 2012 - I
99
100
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click LISTA.Items.Add(DATO.Text) DATO.Text = "" End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim r, cant, meses As Integer cant = LISTA.Items.Count
Semestre 2012 - I
100
101
TAREAS PROGRAMACION VISUAL BASIC 2008 1.- CAPTURAR EN UNA LISTA LOS SUELDOS DE 6 EMPLEADOS Y DESPLEGARLOS EN UNA SEGUNDA LISTA AUMENTADOS EN UN 30%. 2.- CAPTURAR EN UNA LISTA LOS PESOS EN KILOGRAMOS DE 6 PERSONAS DESPLEGARLOS EN UNA SEGUNDA LISTA CONVERTIDOS A LIBRAS Y ADEMAS SOLO LOS MAYORES DE 100 LIBRAS. 3.- CAPTURAR EN SUS 4 LISTAS RESPECTIVAS MATRICULA, NOMBRE Y DOS CALIFICACIONES DE 5 ALUMNOS, DESPUES CALCULAR UNA LISTA DE PROMEDIOS DE CALIFICACIONES.
Semestre 2012 - I
101
102
NOMEMPLEADO, DIAS TRABAJADOS Y SUELDO DIARIO DE 5 EMPLEADOS, DESPLEGAR EN OTRA PANTALLA O PANEL LA NOMINA PERO SOLO DE AQUELLOS EMPLEADOS QUE GANAN MAS DE $300.00 A LA SEMANA ARREGLOS COMO PARAMETROS Para pasar un arreglo completo como parmetro a un procedimiento o a una funcin solo se manda el nombre del arreglo sin corchetes e ndices, en el procedimiento o funcin que recibe solo se declara un arreglo del mismo tipo y se puede usar el mismo o diferente nombre del arreglo sin corchetes e ndices. Sin embargo es conveniente aclarar, que a diferencia de variables escalares normales visual basic 2008 no genera una nueva variable en memoria ni tampoco copia los datos al arreglo que recibe, en su lugar visual basic sigue usando los datos que estn en el arreglo original, es por esta razn que cambios que se le hagan a los datos del arreglo que recibe realmente se est haciendo al arreglo original como lo muestra el siguiente ejemplo:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' creando y cargando una lista local con 5 elementos Dim lista1() As Integer = {1, 2, 3, 4, 5} ' pasandola a un procedimiento ' observar que se pasa sin parentesis Call PROC1(lista1) ' desplegando lista original y observar el resultado Dim r As Integer For r = 0 To 4
Semestre 2012 - I
102
103
Parmetro
ARRAYS DE CONTROLES
Visual Basic cuenta con el concepto de array de controles, en el que varios controles comparten el mismo conjunto de procedimientos de suceso, incluso aunque cada uno de los elementos individuales en el array pueda tener asignados diferentes valores para sus propiedades. Slo podr crear un array de control en tiempo de diseo y, como mnimo, al menos un control debe pertenecer al array. Podr crear un array de controles utilizando cualquiera de los siguientes mtodos: 1. 2. Crear un control y, posteriormente, asihnar un valor numrico (no negativo) a su propiedad Index; de esta forma habr creado un array de control con un nico elemento. Crear dos controles de la misma clase y asignarles el mismo valor a su propiedad Name. Visual Basic muestra un cuadro de dilogo avisndole que ya existe un control con el mismo nombre y le preguntara si desea crear un array de controles. 3. Seleccionar un control del formulario, pulsar Crtl + C para copiarlo en el portapapeles y, posteriormente, pulsar Ctrl + V para pegar una nueva instancia del control con la misma propiedad Name que el objeto inicial. Visual Basic muestra el mensaje de aviso mencionando en el punto anterior. Los array de controles son una de las caractersticas ms interesantes del entorno Visual Basic y aade una gran flexibilidad a sus programas:
Los controles que pertenecen al mismo array comparten el mismo conjunto de procedimientos de suceso; de esta forma podr reducir drsticamente la cantidad de cdigo que tendr que escribir en respuesta a una accin del usuario.
Podr aadir dinmicamente nuevos elementos al array de controles en tiempo de ejecucin; en otras palabras, podr crear nuevos controles que no existan en tiempo de diseo. Los elementos de los array de controles consumen pocos recursos en comparacin con los controles
Semestre 2012 - I
103
104
Dim T(7) As TextBox Dim Lb(7) As Label Dim Titu() As String = {"Nombre:", "Domicilio:", "Localidad:", "Partido:", "Telfono:", "Pas:", "Cdigo Postal:"}
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim I As Integer, Y As Integer For i = 0 To 6 T(i) = New TextBox() Lb(I) = New Label() Lb(I).Text = Titu(I) Next
Semestre 2012 - I
104
105
For i = 0 To 6 Me.Controls.Add(T(i)) Me.Controls.Add(Lb(I)) Lb(I).Top = Y + 3 T(I).Top = Y Y = Y + 30 T(I).Text = Rnd() * 200 T(I).Left = 80 Next End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click T(0).text = "hola" End Sub End Class
Semestre 2012 - I
105
106
LABORATORIOS
Elaborar una aplicacion que me permita llamar a dos cuadros de dialogo (Fuente y Color) los cuales al ser activado van alterar el contenido de la caja de texto donde se ingreso la informacion.
Public Class Form1 Private Sub BtnFuente_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnFuente.Click 'Para establecer tambien el color de la letra FontD.ShowColor = True 'Activa el cuadro de dilogo FontD.ShowDialog() 'Asigna al texto escrito el Tipo,Tamao y estilo de letra seleccionado TxtTexto.Font = FontD.Font 'Asigna al texto escrito el color de letra seleccionado TxtTexto.ForeColor = FontD.Color End Sub Private Sub BtnColor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnColor.Click 'Activa el Cuadro de Dilogo ColorD.ShowDialog() 'Asigna el color seleccionado al fondo del texto TxtTexto.BackColor = ColorD.Color End Sub Private Sub TxtTexto_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtTexto.TextChanged BtnFuente.Enabled = TxtTexto.Text.Trim <> String.Empty BtnColor.Enabled = TxtTexto.Text.Trim <> String.Empty End Sub End Class
Semestre 2012 - I
106
107
SESIN VI
CONTROL DE EXCEPCIONES Y MENUES
Semestre 2012 - I
107
108
Cuando ocurre una excepcin dentro de un programa y no se controla la ejecucin del programa, se deetiene y se visualiza una ventana similar a la siguiente, dependeiendo del tipo de excepcin: Si hace clic en Ver detalle, se visualiza el detalle de la excepcin:
Try Catch
Esta instruccin permite controlar las excepciones o errores inesperados que pueden ocurrir en Visual Basic .NET. Su sintaxis es la siguiente: Try Bloque de Instrucciones N 01 Catch Variable As Exception Bloque de Instrucciones N 02 Finally Bloque de Instrucciones N 03 End Try
Semestre 2012 - I
108
109
Semestre 2012 - I
109
110
Semestre 2012 - I
110
111
Semestre 2012 - I
111
112
MenuStrip
El men principal es el que aparece en las aplicaciones abajo de la barra de la ventana (o sea, la tirita que dice "Archivo, Edicin, etc."). Para crear uno, se tiene que arrastrar el objeto MenuStrip a la ventana. El ambiente de diseo cambia un poco: el "control" aparece en la parte inferior, fuera de la ventana y en la parte superior de la ventana (o forma) que ests creando, aparece una cajita que dice "Escriba aqu". La pantalla se ve algo as:
Al darle clic sobre ese mensaje, te permite escribir un texto (el letrero del primer men) y aparecen "huecos" para escribir ms opciones. Las siguientes imgenes muestran el efecto que tiene ir tecleando opciones del men.
Semestre 2012 - I
112
113
Para mostrar un mensaje por cada opcin escriba el siguiente codigo: Public Class Form7 Private Sub ClientesToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ClientesToolStripMenuItem.Click MessageBox.Show("Esta es la opcion Mantenimiento de Clientes", "Menues") End Sub Private Sub ProductosToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ProductosToolStripMenuItem.Click
Semestre 2012 - I
113
114
Men contextual
Arrastre el icono del Men Contextual y se puede escribir los nombres de las opciones.
Si le das click afuera de la ventana del men contextual que aparece, desaparece
Para activar estas opciones se debe insertar un objeto y programar un evento para el men contextual.
Semestre 2012 - I
114
115
Public Class Form8 Private Sub Label1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label1.MouseDown If e.Button = Windows.Forms.MouseButtons.Right Then ContextMenuStrip1.Show(Label1, New Point(e.X, e.Y)) End If End Sub Ejecute la aplicacin y cuando se haga click sobre la etiqueta observe que aparece el menu contextual
Semestre 2012 - I
115
116
LABORATORIOS
LABORATORIO - 001
Elaborar una aplicacion que permita registrar los datos de los Empleados de una Empresa, estas seran mostradas en un ListView llamado LvPersonal, esta lista estara controlada por un Combo llamado CboModo el cual mostrara los estados del ListView (Iconos Grandes,Detalle,Lista,Iconos Pequeos,Ttulos), tambien podran ser mostraos algunos graficos agregados en un ImageList1.
Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Asigna el formato inicial al control ListView LvPersonal.View = View.Details LvPersonal.GridLines = True LvPersonal.FullRowSelect = True LvPersonal.Columns.Add("Codigo", 50, HorizontalAlignment.Center) LvPersonal.Columns.Add("Nombre", 200, HorizontalAlignment.Left) LvPersonal.Columns.Add("Sueldo", 100, HorizontalAlignment.Right) 'Llena el Personal Dim Personal As ListViewItem Personal = New ListViewItem("001", 0) Personal.SubItems.Add("Julio Dvila") Personal.SubItems.Add("2,500.00") LvPersonal.Items.Add(Personal) Personal = New ListViewItem("002", 0)
Semestre 2012 - I
116
117
Semestre 2012 - I
117
118
Semestre 2012 - I
118
119
LABORATORIO - 002
Elaborar una aplicacion que permita mostrar la Zona, Departamentos, Provincias en un TreeView(TvElementos) y que al seleccionar uno de ellos se mostrara sus datos en los labels respectivos.
Public Class Form1 Private Sub BtnVer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnVer.Click TvElementos.Nodes.Clear() Dim Padre As TreeNode Dim Hijo As TreeNode '**** ZONA NORTE **** Padre = New TreeNode("Norte") TvElementos.Nodes.Add(Padre) 'Elementos del Norte Hijo = Padre.Nodes.Add("Lima") Hijo.Nodes.Add("Lima") Hijo.Nodes.Add("Huaral") Hijo.Nodes.Add("Huacho") Hijo = Padre.Nodes.Add("Chiclayo") Hijo.Nodes.Add("Motupe") Hijo.Nodes.Add("Monsefu") '**** ZONA SUR **** Padre = New TreeNode("Sur") TvElementos.Nodes.Add(Padre) 'Elementos de la Zona Sur Hijo = Padre.Nodes.Add("Chincha") Hijo.Nodes.Add("GrosoPrado") Hijo.Nodes.Add("ChinchaBaja")
Semestre 2012 - I
119
120
Semestre 2012 - I
120
121
LABORATORIO - 003
Elaborar una aplicacion que permita registrar los datos de los Empleados de una Empresa, estas seran mostradas en un ListView llamado LvPersonal, esta lista estara controlada por un Combo llamado CboModo el cual mostrara los estados del ListView (Iconos Grandes,Detalle,Lista,Iconos Pequeos,Ttulos), tambien podran ser mostraos algunos graficos agregados en un ImageList1.
Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Asigna el formato inicial al control ListView LvPersonal.View = View.Details LvPersonal.GridLines = True LvPersonal.FullRowSelect = True LvPersonal.Columns.Add("Codigo", 50, HorizontalAlignment.Center) LvPersonal.Columns.Add("Nombre", 200, HorizontalAlignment.Left) LvPersonal.Columns.Add("Sueldo", 100, HorizontalAlignment.Right) 'Llena el Personal Dim Personal As ListViewItem Personal = New ListViewItem("001", 0) Personal.SubItems.Add("Julio Dvila") Personal.SubItems.Add("2,500.00") LvPersonal.Items.Add(Personal) Personal = New ListViewItem("002", 0) Personal.SubItems.Add("Oscar Ruiz")
Semestre 2012 - I
121
122
Semestre 2012 - I
122
123
Semestre 2012 - I
123
124
LABORATORIO - 003
Elaborar una aplicacion que permita mostrar la Zona, Departamentos, Provincias en un TreeView(TvElementos) y que al seleccionar uno de ellos se mostrara sus datos en los labels respectivos.
Public Class Form1 Private Sub BtnVer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnVer.Click TvElementos.Nodes.Clear() Dim Padre As TreeNode Dim Hijo As TreeNode '**** ZONA NORTE **** Padre = New TreeNode("Norte") TvElementos.Nodes.Add(Padre) 'Elementos del Norte Hijo = Padre.Nodes.Add("Lima") Hijo.Nodes.Add("Lima") Hijo.Nodes.Add("Huaral") Hijo.Nodes.Add("Huacho") Hijo = Padre.Nodes.Add("Chiclayo") Hijo.Nodes.Add("Motupe") Hijo.Nodes.Add("Monsefu") '**** ZONA SUR **** Padre = New TreeNode("Sur") TvElementos.Nodes.Add(Padre) 'Elementos de la Zona Sur Hijo = Padre.Nodes.Add("Chincha") Hijo.Nodes.Add("GrosoPrado") Hijo.Nodes.Add("ChinchaBaja")
Semestre 2012 - I
124
125
Semestre 2012 - I
125
126
LABORATORIO - 004
Elaborar una aplicacin que permita obtener el factorial y si es un numero primo de un numero atravez de la creacion de una clase, donde la clase debera validar el ingreso de los numeros y debera calcular el factorial y si el numero es primo.
CLASE INFORME Public Class Informe Dim m_Numero As Long 'Constructor de la clase Public Sub New(ByVal Numero As Integer) m_Numero = Numero End Sub 'Propiedad de la clase Public Property Numero() As Integer Get Return m_Numero End Get Set(ByVal value As Integer) m_Numero = value End Set End Property 'Mtodos de la clase Public Function Factorial() As Integer Dim X, F As Integer If Numero > 11 Then MessageBox.Show("Ingrese Valores entre 0 y 11", "Por Favor") Exit Function End If F=1 For X = 1 To m_Numero F=F*X Next
Semestre 2012 - I
126
127
Semestre 2012 - I
127
128
LABORATORIO - 005
Elaborar una aplicacin que usando una clase nos permita obtener en el primer formulario el Total vendido a un cliente, y en el formulario dos el total vendido al cliente con descuentos asi como el total a pagar.
Creando la Clase General:(Total Compra) Public Class TotalCompra Dim m_PrecioCompra As Double Dim m_Cantidad As Integer 'Constructor de la clase Public Sub New(ByVal Pc As Double, ByVal Cant As Integer) m_PrecioCompra = Pc m_Cantidad = Cant End Sub 'Propiedades de la clase Public Property PCompra() As Double Get Return m_PrecioCompra End Get Set(ByVal value As Double) m_PrecioCompra = value End Set End Property Public Property Cantidad() As Integer Get Return m_Cantidad End Get Set(ByVal value As Integer)
Semestre 2012 - I
128
129
Semestre 2012 - I
129
130
Semestre 2012 - I
130
131
LABORATORIO - 006
Elaborar una aplicacin que use una clase para validar las notas al ingresar y que permita obtener el promedio la Condicion (Aprobado o Desaprobado) la cualidad (Excelente o Bueno) de un determinado alumno.
Semestre 2012 - I
131
132
CONTENIDO
PRACTICA DE REFORZAMIENTO
Semestre 2012 - I
132
133
NUM -DPTO 10 15 10 12 25
SQL 2 3
SELECT num_emp, apellido, nombre, num-dpto FROM empleado WHERE num_dpto = 10;
Semestre 2012 - I
133
134
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-DPTO 10 15 10
Tabla EMPLEADOS
JOHNSON LUCY
05
Semestre 2012 - I
134
135
CLAVES PRIMARIAS COMPUESTAS Una Clave Primaria que se conforma de mltiples columnas se llama Clave Primaria Compuesta. Ejemplo La clave primaria compuesta para la tabla CUENTA consiste en la combinacin de las columnas NUM_BANCO y NUM_CUENTA. Cada fila es nicamente identificada por sus valores de NUM_BANCO y NUM_CUENTA.
Clave Primaria
Tabla CUENTA
Discusin Las columnas de una clave primaria compuesta debe ser nica en la combinacin. Las columnas individuales pueden tener duplicados, pero en la combinacin, no se permiten duplicados.
CLAVES PRIMARIAS NO NULAS Ninguna parte de una clave primaria puede ser NULL (nula). Ejemplo NUM_EMP es la clave primaria de la tabla EMPLEADOS. Por lo tanto NUM_EMP debe ser definido como NOT NULL.
Semestre 2012 - I
135
136
NUM-DPTO 10 15 10
Tabla EMPLEADOS
JOHNSON LUCY
05
Ejemplo Cmo viola la tabla CUENTA las reglas de las Claves Primarias?
Clave Primaria
Tabla CUENTA
Dos de las filas contienen valores NULL en parte de la clave primaria compuesta. Tanto NUM_BANCO como NUM_CUENTA deben ser definidos como NOT NULLS. CLAVES CANDIDATAS Y CLAVES ALTERNAS Una tabla puede tener ms de una columna o combinacin de columnas que pueden servir como la clave primaria de la tabla. Cada una de ellas se llama Clave Candidata. Ejemplo Cules son las claves candidatas para la tabla EMPLEADOS?
Semestre 2012 - I
136
137
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-DPTO 10 15 10 05
Tabla EMPLEADOS
Discusin Todas las Claves Candidatas deben ser nicas y NOT NULL. Los UIDs secundarios se mapean a claves alternas.
CLAVES FORNEAS
Una Clave Fornea (FK) es una columna o combinacin de columnas en una tabla que es clave primaria en la misma u otra tabla. Ejemplo NUM_DEPT es una FK en la Tabla EMPLEADOS y se refiere a los valores en la columna NUM_DEPT en la Tabla DEPARTAMENTO.
Semestre 2012 - I
137
138
Clav e Primaria
Clav e Fornea
NUM-DPTO 10 15 10 05
Tabla EMPLEADOS
JOHNSON LUCY
Clav e Primaria
NUM-DPTO 10 15 12 25
Tabla DEPARTAMENTO
Discusin Las claves forneas son la implementacin de las relaciones de un modelo de datos conceptual. Las claves forneas se basan en los valores de los datos y son puramente lgicas.
Semestre 2012 - I
138
139
Clav e Primaria
Clav e Fornea
Clav e Primaria
NUM-DPTO 10 15 10
NUM-DPTO 10 15 20 25
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
Tabla BANCO
Tabla CUENTA
Semestre 2012 - I
139
140
Orden SQL
Lenguaje SQL SELECT Sintaxis: SELECT expresin FROM tabla [WHERE condicin] [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] ,...] [LIMIT [offset,] row_count | row_count OFFSET offset] Ejemplo: SELECT * from noticias WHERE fecha=CURDATE() LIMIT 10 ORDER BY fecha DESC Obtiene las noticias del da con un tope mximo de 10, ordenadas de la ms reciente a la ms antigua Operadores Lgicos Operador AND Uso Es el "y" lgico. Evalua dos condiciones y devuelve un valor de verdad slo si ambas son ciertas. Es el "o" lgico. Evala dos condiciones y devuelve un valor de verdad si alguna de las dos es cierta. Negacin lgica. Devuelve el valor contrario de la expresin.
OR NOT
Semestre 2012 - I
140
141
Uso
COMANDO
DESCRIPCION
CREATE
Utilizados para crear nuevas tablas, campos e ndices DROP. empleado para eliminar tablas o ndices
DROP
ALTER
Utilizado para modificar las tablas agregando campos o cambiando la definicin de los campos
Semestre 2012 - I
141
142
DESCRIPCION Usado para consultar registros en la sede datos Usados para cargar lotes de datos Usado para modificar los valores de campos y registros Utilizados para eliminar los registros de una tabla de una base de datos.
Permite generar consultas para ordenar, filtrar y extraer datos de la base de datos. Clusulas Las clusulas son condiciones de modificacin utilizadas para definir los datos que desea seleccionar o manipular. CLAUSULA FROM WHERE DESCRIPCION Utilizada para especificar la tabla de la cual se van a seleccionar los registros. Utilizadas para especificar las condiciones que deben reunir los registros que se van a seleccionar. GROUP BY HAVING ORDER BY Utilizadas para separar los registros seleccionados en grupos especficos. Utilizada para expresar la condicin que debe satisfacer cada grupo Utilizada para ordenar los registros seleccionados de acuerdo con un orden especifico.
Semestre 2012 - I
142
143
AGRUPACION DE DATOS
Funciones de Agregado Las funciones de agregado se usan dentro de una clusula SELECT en grupos de registros para devolver un nico valor que se aplica a un grupo de registros. Funcin AVG COUNT SUM MAX MIN Descripcin Utilizada para calcular el promedio de los valores de un campo determinado Utilizada para devolver el nmero de registros de la seleccin Utilizada para devolver la suma de todos los valores de un campo determinado Utilizada para devolver el valor ms alto de un campo especificado Utilizada para devolver el valor ms bajo de un campo especificado
GROUP
BY
Combina los registros con valores idnticos, en la lista de campos especificados, en un nico registro. Para cada registro se crea un valor sumario si se incluye una funcin SQL agregada, como por ejemplo Sum o Count, en la instruccin SELECT. Su sintaxis es: SELECT campos FROM tabla WHERE criterio GROUP BY campos del grupo GROUP BY es opcional. Los valores de resumen se omiten si no existe una funcin SQL agregada en la instruccin SELECT. Los valores Null en los campos GROUP BY se agrupan y no se omiten. No obstante, los valores Null no se evalan en ninguna de las funciones registros una SQL vez agregadas. agrupados. Se utiliza la clusula WHERE para excluir aquellas filas que no desea agrupar, y la clusula HAVING para filtrar los A menos que contenga un dato Memo u Objeto OLE , un campo de la lista de campos GROUP BY puede referirse a cualquier campo de las tablas que aparecen en la clusula FROM, incluso si el campo no est incluido en la instruccin SELECT, siempre y cuando la instruccin SELECT incluya al menos una funcin SQL agregada. Todos los campos de la lista de campos de SELECT deben o bien incluirse en la clusula GROUP BY o como argumentos SELECT GROUP utilizando SELECT Id_Familia, BY GROUP que BY, de una Sum(Stock) satisfaga HAVING Sum(Stock) las determina FROM FROM funcin Productos de de ellos SQL GROUP la se BY clusula van BY a agregada. Id_Familia; HAVING. mostrar. Id_Familia
Una vez que GROUP BY ha combinado los registros, HAVING muestra cualquier registro agrupado por la clusula condiciones cules HAVING es similar a WHERE, determina qu registros se seleccionan. Una vez que los registros se han agrupado Id_Familia Productos GROUP
HAVING Sum(Stock) > 100 AND NombreProducto Like BOS*; AVG Calcula la media aritmtica de un conjunto de valores contenidos en un campo especificado de una consulta. Su
Semestre 2012 - I
143
144
Si expr identifica a mltiples campos, la funcin Count cuenta un registro slo si al menos uno de los campos no es Null. Si todos los campos especificados son Null, no se cuenta el registro. Hay que separar los nombres de los campos SELECT Max, Su Min(expr) sintaxis Count(FechaEnvo con & Transporte) ampersand AS Total FROM (&). Pedidos; Min es:
Devuelven el mnimo o el mximo de un conjunto de valores contenidos en un campo especifico de una consulta.
Max(expr) En donde expr es el campo sobre el que se desea realizar el clculo. Expr pueden incluir el nombre de un campo de una tabla, una constante o una funcin (la cual puede ser intrnseca o definida por el usuario pero no otras de las SELECT SELECT StDev, muestra StDev(expr) StDevP(expr) de la poblacin representada (muestra aleatoria) . Su sintaxis funciones Min(Gastos) Max(Gastos) AS AS ElMin ElMax agregadas FROM FROM Pedidos Pedidos WHERE WHERE de Pais Pais = = SQL). 'Espaa'; 'Espaa'; StDevP es:
Devuelve estimaciones de la desviacin estndar para la poblacin (el total de los registros de la tabla) o una
Semestre 2012 - I
144
145
En donde expr representa el nombre del campo que contiene los datos que desean evaluarse o una expresin que realiza un clculo utilizando los datos de dichos campos. Los operandos de expr pueden incluir el nombre de un campo de una tabla, una constante o una funcin (la cual puede ser intrnseca o definida por el usuario pero no otras de las funciones agregadas de SQL) StDevP evala una poblacin, y StDev evala una muestra de la poblacin. Si la consulta contiene menos de dos registros (o ningn registro para StDevP), estas funciones devuelven un valor Null (el cual indica que la desviacin SELECT SELECT Sum Devuelve la suma del conjunto de valores contenido en un campo especifico de una consulta. Su sintaxis es: Sum(expr) En donde expr respresenta el nombre del campo que contiene los datos que desean sumarse o una expresin que realiza un clculo utilizando los datos de dichos campos. Los operandos de expr pueden incluir el nombre de un campo de una tabla, una constante o una funcin (la cual puede ser intrnseca o definida por el usuario pero no SELECT Var, poblacin Var(expr) VarP(expr) VarP evala una poblacin, y Var evala una muestra de la poblacin. Expr el nombre del campo que contiene los datos que desean evaluarse o una expresin que realiza un clculo utilizando los datos de dichos campos. Los operandos de expr pueden incluir el nombre de un campo de una tabla, una constante o una funcin (la cual puede ser intrnseca o definida por el usuario pero no otras de las funciones agregadas de SQL) Si la consulta contiene menos de dos registros, Var y VarP devuelven Null (esto indica que la varianza no puede calcularse). Puede utilizar Var y VarP en una expresin de consulta o en una Instruccin SQL. SELECT Var(Gastos) AS Varianza FROM Pedidos WHERE Pais = 'Espaa'; SELECT VarP(Gastos) AS Varianza FROM Pedidos WHERE Pais = 'Espaa'. (muestra aleatoria de registros) sobre los valores de un campo. Su sintaxis otras de las * funciones Cantidad) AS agregadas Total FROM de SQL). VarP es: Sum(PrecioUnidad DetallePedido; StDev(Gastos) StDevP(Gastos) estndar AS AS Desviacion Desviacion no FROM FROM Pedidos Pedidos puede WHERE WHERE Pais = Pais= calcularse). 'Espaa'; 'Espaa';
Devuelve una estimacin de la varianza de una poblacin (sobre el total de los registros) o una muestra de la
Semestre 2012 - I
145
146
donde la definicin de columna es de la forma : nombre_de_columna tipo_de_dato [ NOT NULL ] Claves Primarias Tambin se puede definir una clave primaria sobre una columna, usando la palabra clave KEY o PRIMARY KEY. Solo puede existir una clave primaria en cada tabla, y la columna sobre la que se define una clave primaria no puede tener valores NULL, Si esto no se especifica explcita, SQL lo har de forma automtica. Por ejemplo, si queremos crear un ndice en la columna nombre de la tabla alumno crearemos la tabla de la siguiente manera. Ejemplo: create table alumno(idalumno char(4) primary key not null, nomalum varchar(20) not null, diralum varchar(40) not null, disalum varchar(40) not null); COMANDO DROP TABLE El comando DROP TABLE se usa para eliminar una relacin y su definicin de atributos como tambin borra del catlogo la tupla relacionada a esta. La sintaxis de la Instruccin es : DROP TABLE nombre_de_tabla; Ejemplo : drop table alumno; de forma
Semestre 2012 - I
146
147
ALTER TABLE: Permite modificar la estructura de una tabla existente. Por ejemplo, se pueden aadir o eliminar columnas, crear y destruir ndices, cambiar el tipo de una columna existente o renombrar columnas o la propia tabla. Tambin es posible modificar el comentario y el tipo de la tabla ALTER TABLE nombre_de_tabla ADD Ejemplo: alter table alumno add telefono varchar(10); Query OK, 2 rows affected (0.20 sec) Records: 2 Duplicates: 0 Warnings: 0 Ejemplo create table editorial(codeditorial INT AUTO_INCREMENT PRIMARY KEY, nomeditorial char(25) NOT NULL, direditorial varchar(25) NOT NULL, telef varchar(9) NOT NULL) nombre_de_columna tipo_de_dato;
COMANDOS DLL
INSERT Sintaxis: INSERT [INTO] nombre_tabla [(nombre_columna,...)] VALUES ((expresin | DEFAULT),...), (...),... INSERT [INTO] nombre_tabla SET nombre_columna=(expresin | DEFAULT), ... Ejemplo: INSERT INTO noticias (id, titulo, texto, categoria, fecha) VALUES (37, Nueva promocin en Nervin, 145 viviendas de lujo en urbanizacin ajardinada situadas en un entorno privilegiado, promociones, CURDATE())
Semestre 2012 - I
147
148
Semestre 2012 - I
148
149
Semestre 2012 - I
149
150
Fuente: microsoft.net
El problema es comunicar un programa o aplicacin aspx con una base de datos y mas que comunicar se pretende que el programa o aplicacin realice una serie de procesos u operaciones con la base de datos o mejor aun con el conjunto de tablas que contiene una base de datos. La primera nota a recordar es que una base de datos puede estar fsicamente en el servidor y en algn folder o directorio del disco duro de dicha maquina servidora, por ejemplo, c:\DATOS\mibase.mbd, como se observa la base que se construyo en MICROSOFT access (mibase.mbd) se almaceno en el disco c en el folder DATOS. Sin embargo tambin es necesario conocer que as como existen servidores de pginas ( web server ), servidores de correo ( mail server ), servidores de ftp ( ftp server ), etc, tambin existen servidores de bases de datos ( database server ), los ms comunes son el sqlserver de microsoft, oracle, mysql, etc, estos servidores tambin pueden crear, administrar y procesar una base de datos, por supuesto que el procedimiento que se dio para crearla en access en el tema anterior no se puede usar para crear y cargar una base de datos en un servidor de bases de datos.(esperar libros de bases de datos en programacin fcil en un prximo futuro). El modo de comunicarse entre nuestro programa o aplicacin y la base de datos (ya sea fsica o un dbserver), implica que ambos manejen un lenguaje de programacin comn, es decir no se puede mandar una instruccin en csharp, o en basic o pascal a la base de datos y adems esperar que esta ultima la entienda ( para entender esto, una razon muy sencilla es que la base de datos tendra que conocer o comprender todos los lenguajes de programacin), para resolver este problema de comunicacin es que se usa un lenguaje comn de bases de datos que tanto los lenguajes de programacin existentes como las bases de datos entienden, este lenguaje
Semestre 2012 - I
150
151
(ORACLE), MICROSOFT.JET ( ACCESS Y ALGUNOS OTROS DBMS DE MICROSOFT) NOTA: Este es el que se usa en los ejemplos siguientes, observar que aunque VISUAL BASIC 2008 trae por default los controles SQL, en este capitulo se usaran los objetos OLEDB, lo malo es que se tendrn que crear, cargar y codificar a mano y no olvidar incluir en la parte de arriba del programa la instruccin using System.Data.OleDb; ODBC NET .- BASES DE DATOS QUE USAN ODBC COMO MEDIO DE COMUNICACION CON OTRAS BASES DE DATOS Y APLICACIONES COMO NOTA A CONSIDERAR ODBC NET NO ESTA INCLUIDA POR DEFAULT EN MICROSOFT NET, SE TIENE QUE BAJAR DE MICROSOFT, AUNQUE SI SE INSTALO CORRECTAMENTE EL COMPULDARO VISUAL BASIC 2008 YA ESTARA INCLUIDA El segundo parmetro es la propia base de datos con la cual se comunicara el programa o aplicacin. Ejemplo del objeto CONNECTION DIM connection AS OLEDBCONNECTION connection = NEW OLEDBCONNECTION(Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=c:\progfacil\lauro\mibase.mdb) Es una sola string y los dos parmetros mencionados van separados por el punto y coma. ATENCION es DATA SOURCE= no usar DATASOURCE= estn advertidos. ejemplos de los otros proveedores o fuentes mencionados: //Provider=MSDAORA; Data Source=ORACLE8i7; User ID=OLEDB; Password=OLEDB
Semestre 2012 - I
151
152
optimizado para conectarse a base de datos SQL Server en las versiones indicadas.
SQLDATAADAPTER
Este objeto es el encargado de llevar la conexin establecida en el Objeto Connection, el comando con los requerimientos deseado y depositar los resultados obtenido en otro objeto llamado DataSet(Conjunto de Datos) para poder utilizarlos y/o manipularlos en una aplicacin. Los requerimientos pueden ser el contenido de una tabla de una base de datos o parte de ella,as como la actualizacin, adicin o eliminacin de la informacin.
SQLCOMMAND
Este objeto se utiliza para almacenar el comando con el requerimiento para la conexin establecida. El comando consiste en una instruccin SQL que depende del requerimiento deseado y puede ser Select, Update, Insert Delete.
DATASET
Este objeto se encarga de recibir el conjunto de datos que devuelve la conexin a travs de objeto DataAdapter,segn el comando establecido por el objeto Command. Procedimiento,1)Agregar el objeto SQLCONNECTION en la barra de herramientas ,clic derecho ,elegir elementos ,seleccin SQLCONNECTION,aceptar
Semestre 2012 - I
152
153
Connectionstring(elija conexin nueva) 2) ubicar el objeto SQLCOMMAND en el formulario,clic derecho en propiedades, clic en:
Valor SqlConecction1
Semestre 2012 - I
153
154
Semestre 2012 - I
154
155
Clic
en
Conjunto
de
Semestre 2012 - I
155
156
Text Text
Semestre 2012 - I
156
157
En el DataGrid se presentan los datos provenientes del conjunto de datos (DataSet) asignando en la propiedad DataSoirce lo siguiente:
Propiedad Datasource En el evento load del Formulario llenar el siguiente Cdigo Dataset1.clear() SQLADAPTER1.fill(Dataset1)
Valor Dataset1
7)Ahora resuelva usted las siguientes fichas deben mostrar lo siguiente: Ficha1 Ficha2 Ficha3 Ficha4 Ficha5 Ficha6 Ficha7 Ficha8 Ficha9 Ficha10 Lista Lista Lista Lista Lista Lista Lista Lista Lista Lista de de de de de de de de de de Productos Categoras los Nombres de categora y Nombres de Producto Nombres de Producto y Cantidad Solicitada Nombre de Producto e Importe Nombre de Producto y Cuantos por Producto Nombre de Producto y Suma de Importes por Producto Nombre de Categora y Cuantos por Categoria Nombre de Clientes(Customers) Nombre de Cliente y el Importe por cada cliente
Semestre 2012 - I
157
158
VISUAL NET
(Acceso a Datos)
Imports System.Data Imports System.Data.SqlClient Public Class Form28 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Try Dim cn As New SqlConnection("Data Source=(local);Initial Catalog=Northwind;uid=sa;pwd=") Dim sql As String, nivel As Integer sql = "select * from usuario where iduser='" & TextBox1.Text & "' and " & " pwd='" & TextBox2.Text & "'" TextBox3.Text = sql Dim cmd As New SqlCommand(sql, cn) Dim dato As SqlDataReader, acceso As Boolean cn.Open() dato = cmd.ExecuteReader dato.Read() Dim usuario, contrasea As String usuario = dato(0) contrasea = dato(2)
Semestre 2012 - I
158
159
Semestre 2012 - I
159