guia prog visual omar

40
UNIVERSIDAD TECNOLÓGICA DE LA SELVA Organismo Descentralizado de la Administración Pública del Estado de Chiapas PROGRAMACIÓN VISUAL VISUAL BASIC .NET 2003

Upload: omar-guillen-gonzalez

Post on 12-Mar-2015

97 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Guia Prog Visual Omar

UNIVERSIDAD TECNOLÓGICA DE LA SELVAOrganismo Descentralizado de la Administración Pública del Estado de Chiapas

PROGRAMACIÓN VISUAL

VISUAL BASIC .NET 2003

ELABORÓ: L.S.C.A. OMA GUILLÉN GONZÁLEZ

Page 2: Guia Prog Visual Omar

MANUAL DE EJERCICIOS PARA LA MATERIA DE PROGRAMACIÓN VISUAL

TEMA 1 ESTRUCTURAS DE CONTROL

EJERCICIO 1.- EL SIGUIENTE EJERCICIO SACA EL PROMEDIO DE N NUMEROS POR MEDIO DE UN CICLO FOR, SE UTILIZA UN INPUTBOX PARA LA INSERCIÓN DE CADA UNO DE LOS DATOS QUE SE INSERTE POR CADA VUELTA DEL CICLO.

ESTA ES LA INTERFAZ QUE UTILIZAMOS PARA ESTE PROGRAMA.

Page 3: Guia Prog Visual Omar

A CONTINUACIÓN SE ESCRIBE EL CÓDIGO NECESARIO PARA REALIZAR ESTA OPERACIÓN, EL CÓDIGO VA EN EL BOTON CALCULAR.

Try

Dim i, cont As Integer Dim sum As Double Dim prom As Double Dim numero As Double Dim valor As String cont = Convert.ToInt32(TextBox1.Text) sum = 0.0 valor = "" For i = 1 To cont numero = Convert.ToDouble(InputBox("Dame la calificación:", "Calificaciones", valor, 45, 120)) sum = sum + numero Next prom = sum / cont TextBox3.Text = prom Catch ex As Exception MessageBox.Show("EXCEPCION: " + ex.ToString()) End Try

EL SIGUIETE CÓDIGO LO PONEMOS EN EL FORMULARIO PARA QUE AL MOMENTO DE LA EJECUCIÓN SALGA EL SIGUIENTE MENSAJE.

MessageBox.Show("Menciona cuantas calificaciones deseas promediar..")

Page 4: Guia Prog Visual Omar

EJERCICIO 2.- EL SIGUIENTE EJERCICIO SE ELABORÓ CON UN CICLO DO WHILE Y LO QUE HACE ES QUE EN UN LIST VIEW ESCRIBA UNA LISTA DE 10 NOMBRES REPETITIVOS.

ESTA ES LA INTERFAZ QUE UTILIZAMOS PARA ESTE PROGRAMA.

Page 5: Guia Prog Visual Omar

A CONTINUACIÓN SE ESCRIBE EL CÓDIGO NECESARIO PARA REALIZAR ESTA OPERACIÓN, EL CÓDIGO VA EN EL BOTON GENERAR LISTA.

Dim X As Integer Dim nombre As String X = 1 nombre = "omar" Lista.Items.Clear() Do While X <= 10

Lista.Items.Add(X & nombre)

X = X + 1

Loop

EJERCICIO 3.- EL SIGUIENTE EJERCICIO SE TRABAJA CON EL CICLO FOR Y LO QUE HACES ES PEDIR 10 NUMEROS, DETERMINA CUANTOS NUMEROS ESTAN POR ARRIBA DE LA MEDIA Y CUANTOS POR DEBAJO DE ELLA, OBVIAMENTE TAMBIEN CALCULA LA MEDIA.

ESTA ES LA INTERFAZ QUE UTILIZAMOS PARA ESTE PROGRAMA.

Page 6: Guia Prog Visual Omar

A CONTINUACIÓN SE ESCRIBE EL CÓDIGO NECESARIO PARA REALIZAR ESTA OPERACIÓN, EL CÓDIGO VA EN EL BOTON CALCULAR.

Dim arriba As Double Dim abajo As Double Dim arreglo(10) As Double Dim cali As Double Dim i As Integer Dim sum As Double Dim media As Double i = 1 sum = 0 For i = 1 To 10 cali = Convert.ToDouble(InputBox("dame calificacion", "calificaciones")) arreglo(i - 1) = cali sum = sum + cali Next media = sum / 10 i = 1 TextBox1.Text = media For i = 1 To 10 If (arreglo(i - 1) < media) Then abajo = abajo + 1 Else arriba = arriba + 1

End If Next TextBox2.Text = arriba TextBox3.Text = abajo

CÓDIGO PARA EL BOTÓN LIMPIAR

TextBox1.Text = ""TextBox2.Text = ""TextBox3.Text = ""

Page 7: Guia Prog Visual Omar

EJERCICIO 4.- EL SIGUIENTE EJERCICIO REALIZA LA PRESENTACIÓN DE UNA TABLA DE MULTIPLICAR SOBRE UN LIST VIEW POR MEDIO DE UN CICLO FOR.

ESTA ES LA INTERFAZ QUE UTILIZAMOS PARA ESTE PROGRAMA.

Page 8: Guia Prog Visual Omar

A CONTINUACIÓN SE ESCRIBE EL CÓDIGO NECESARIO PARA REALIZAR ESTA OPERACIÓN, EL CÓDIGO VA EN EL BOTON OBTENER TABLA.

Dim cont, res, tabla As Integer tabla = Convert.ToInt32(TextBox1.Text) Try For cont = 1 To 10

res = tabla * cont ListView1.Items.Add(tabla & "x" & cont & "=" & res) Next Catch ex As Exception MessageBox.Show(ex.ToString) End Try

TEMA 2 MANEJO DE ERRORES (EXCEPCIONES)

EJERCICIO 1.- EL SIGUIENTE EJERCICIO REALIZA UNA SUMA DE DOS NUMEROS ENTEROS, SI SE TRATA DE SUMAR UN NUMERO DECIMAL MANDARA UN MENSAJE DE ERROR DONDE INDIQUE QUE INSERTO UN NUMERO QUE NO ES ENTERO.

ESTA ES LA INTERFAZ QUE UTILIZAMOS PARA ESTE PROGRAMA.

Page 9: Guia Prog Visual Omar

A CONTINUACIÓN SE ESCRIBE EL CÓDIGO NECESARIO PARA REALIZAR ESTA OPERACIÓN, EL CÓDIGO VA EN EL BOTON QUE TIENE EL SIMBOLO DE LA SUMA.

Try Dim num1, num2, res As Integer num1 = Convert.ToInt32(TextBox1.Text) num2 = Convert.ToInt32(TextBox2.Text) res = num1 + num2 TextBox3.Text = res Catch ex As Exception MessageBox.Show("Inserto un número no entero") TextBox1.Text = "" TextBox2.Text = ""

End Try

EJERCICIO 2.- EL SIGUIENTE EJERCICIO MANEJA EL CONTRO DE ERRORES DE UN NOMBRE DE USUARIO Y UNA CONTRASEÑA CONECTADO A UNA BASE DE DATOS CON ACCESS. LOS CAMPOS QUE SE MANEJAN EN LA BASE DE DATOS ES “usuario” y “contra”, SI EL USUARIO ESTA REGISTRADO ENTONCES NOS MANDA A UN FORMULARIO NUEVO, EN ESTE CASO AL FORMULARIO 2.

ESTA ES LA INTERFAZ QUE UTILIZAMOS PARA ESTE PROGRAMA.

Page 10: Guia Prog Visual Omar

A CONTINUACIÓN SE ESCRIBE EL CÓDIGO NECESARIO PARA REALIZAR ESTA OPERACIÓN, EL CÓDIGO VA EN EL BOTON ACCESAR.

bandera = 0 Dim x, sum As Integer x = 0 Try OleDbDataAdapter1.SelectCommand.Parameters("usuario").Value = TextBox1.Text OleDbDataAdapter1.SelectCommand.Parameters("contra").Value = TextBox2.Text

bandera = OleDbDataAdapter1.Fill(Valor1) If (bandera = 1) Then MessageBox.Show("Bienvenido") Dim Form2 As Form2 Form2 = New Form2() Me.Hide() Form2.Show() Else sum = x / bandera End If

Catch ex As Exception When bandera = 0 MessageBox.Show("Usuario o Contraseña Incorrecta", "Vuelva a intentarlo", MessageBoxButtons.OK, MessageBoxIcon.Error) Finally Beep() End Try

EN ESTE MENSAJE SE EMPIEZAN A MANEJAR LOS MENSAJES PERSONALIZADOS, INCLUYENDO APARTE DEL MENSAJE UN ICONO DE INFORMACION Y UN BOTON. ASI COMO UN SONIDO DEL SISTEMA (BEEP)

Page 11: Guia Prog Visual Omar

EJERCICIO 3.- EL SIGUIENTE EJERCICIO ABRE UN CUADRO DE DIALOGO PARA CARGAR UNA IMAGEN, SI EL FORMATO ES DIFERENTE DE UN ARCHIVO BMP O UN JPG SALDRÁ UN MENSAJE DE ERROR EN DONDE INDIQUE QUE EL FORMATO NO ES EL CORRECTO, EN LA CAJA DE TEXTO ESCRIBIMOS UN NOMBRE PARA LA IMAGEN, EL BOTON IR A PRINCIPAL NOS ENVIA A OTRO FORMULARIO CON LOS DOS VALORES TANTO DEL PICTUREBOX COMO DE LA CAJA DE TEXTO.

ESTA ES LA INTERFAZ QUE UTILIZAMOS PARA ESTE PROGRAMA.

Page 12: Guia Prog Visual Omar

A CONTINUACIÓN SE ESCRIBE EL CÓDIGO NECESARIO PARA REALIZAR ESTA OPERACIÓN, EL CÓDIGO VA EN EL BOTON CARGAR IMAGEN.

Dim image As System.Drawing.Image Dim opfile As OpenFileDialog

Try opfile = New OpenFileDialog() opfile.ShowDialog() image = image.FromFile(opfile.FileName) PictureBox1.Width = image.Width PictureBox1.Height = image.Height PictureBox1.Image = image PictureBox1.Visible = True Catch ex As Exception MessageBox.Show("Solo se aceptan formatos de imagen", "Error en el formato de Imagen", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) End Try

CÓDIGO PARA EL BOTON IR A PRINCIPAL

Dim Form2 As Form2 Form2 = New Form2() Me.Hide() Form2.Show() Form2.TextBox1.Text = TextBox1.Text Form2.PictureBox1.Image = PictureBox1.Image

CÓDIGO PARA EL BOTON LIMPIAR

PictureBox1.Visible = False

Page 13: Guia Prog Visual Omar

TEMA 2 CONTROLES ACTIVEX

EJERCICIO 1.- EL SIGUIENTE EJERCICIO ES UN REPRODUCTOR MP3 DONDE NOSOTROS REALIZAMOS LOS CONTROLES DE PLAY, STOP, ADELANTE Y ATRÁS, ABRIR UNA LISTA DE ARCHIVOS MP3 O UN MP3 EN ESPECIAL, SE VISUALIZAN EL NOMBRE DE LA CANCIÓN, EL INTERPRETE, EL TIEMPO TOTAL DE DURACIÓN DE LA CANCIÓN Y EL TIEMPO POR TRANSCURRIR, EL ACTIVEX QUE SE UTILIZA ES EL DE WINDOWS MEDIA PLAYER, EL SOLO SE UTILIZA PARA OBTENER LAS PROPIEDADES DE ESTE, EL REPRODUCTOR SE OCULTA AL MOMENTO QUE SE EJECUTA LA APLICACIÓN.

ESTA ES LA INTERFAZ QUE UTILIZAMOS PARA ESTE PROGRAMA.

RECUERDE VAYA A LA PROPIEDAD VISIBLE Y PONGALA EN FALSE PARA QUE EL REPRODUCTOR NO SE VEA AL MOMENTO DE EJECUTAR LA APLICACIÓN.

EL NOMBRE QUE SE LE ESTA DANDO AL CONTROL ES “ocxPlayer”

Page 14: Guia Prog Visual Omar

EL SIGUIENTE CÓDIGO VA EN EL AREA DE DECLARACIONES EXTERNA NO VA DENTRO DEL FORMULARIO PUESTO QUE EL SIGUIENTE CODIGO SON FUNCIONES QUE SERÁN LLAMADAS DURANTE EL PROCESO DE EJECUCION.

PROCURE ACOMODAR LAS LINEAS DE CÓDIGO PUESTO QUE POR CUESTIONES DE ESPACIO DE LA HOJA DE WORD SE CREAN LINEAS DE CODIGO DONDE SOLO DEBERIA SER UNA.

Dim tiempo As DateTime ' para el tiempo transcurrido Private Sub frmPlayer_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.Top = 80 ' posición y del formulario Me.Left = (Screen.PrimaryScreen.WorkingArea.Width - Me.Width) \ 4 ' posición x del formulario Button3.Enabled = False End Sub

'Funcion abrir Private Sub abrirArchivo() ' procedimiento para abrir un archivo

' presentar al usuario un cuadro de diálogo Dim openFile As New OpenFileDialog() ' mostrar solamente archivos M3U y MP3 openFile.Filter = "Listas de canciones (*.m3u)|*.m3u|(*.mpeg)|*.mpeg|Archivos Mpeg Layer 3 (*.mp3)|*.mp3" ' si elegimos algún archivo If openFile.ShowDialog() = DialogResult.OK Then ' abrir el archivo elegido en el reproductor ocxPlayer.URL = openFile.FileName ocxPlayer.Visible = True End If

End Sub

'Codigo fuerte

Private Sub ocxPlayer_PlayStateChange(ByVal sender As Object, ByVal e As AxWMPLib._WMPOCXEvents_PlayStateChangeEvent) Handles ocxPlayer.PlayStateChange

tiempo = DateTime.Now ' para empezar a contar el tiempo

' vaciar la información de la canción anterior Label2.Text = "" 'lbTituloa.Text = "Reproducción en curso:" Label4.Text = "" 'lbAutora.Text = "Autor"

' dependiendo del estado del reproductor Select Case e.newState Case WMPLib.WMPPlayState.wmppsPlaying ' si reproduciendo Button5.Enabled = True Button3.Enabled = False Button2.Enabled = True

Page 15: Guia Prog Visual Omar

Button4.Enabled = True 'lbTituloa.Text = "Reproducción en curso:" Label2.Text = ocxPlayer.currentMedia.getItemInfobyType("title", "", 0) ' título 'lbAutora.Text = "Autor:" Label4.Text = ocxPlayer.currentMedia.getItemInfobyType("author", "", 0) ' autor ' para mostrar la duración de la canción Dim minutos As Integer Dim segundos As Integer minutos = ocxPlayer.currentMedia.duration \ 60 ' división entera entre la duración en segundos y 60 ' resto entre la duración total y el resultado de la división entera anterior segundos = ocxPlayer.currentMedia.duration - (minutos * 60) Label7.Text = Format(minutos, "00") & ":" & Format(segundos, "00") Timer1.Enabled = True ' iniciar el temporizador para cronometrar la canción Timer1.Start()

Case WMPLib.WMPPlayState.wmppsStopped ' si detenido Button5.Enabled = False ' desactivar botón Stop Button3.Enabled = True ' activar botón Play Button2.Enabled = False Button4.Enabled = False Timer1.Stop() ' detener temporizador Timer1.Enabled = False Label7.Text = "" Label8.Text = "" End Select

End Sub

CÓDIGO DEL BOTON ABRIRabrirArchivo()

CÓDIGO DEL BOTON PREVocxPlayer.Ctlcontrols.previous() ' anterior

CÓDIGO DEL BOTON PLAYocxPlayer.Ctlcontrols.play() ' reproducir

CÓDIGO DEL BOTON NEXTocxPlayer.Ctlcontrols.next() ' siguiente

CÓDIGO DEL BOTON STOPocxPlayer.Ctlcontrols.stop() ' detener reproducción

CÓDIGO DEL BOTON SALIRClose()

Page 16: Guia Prog Visual Omar

CÓDIGO DEL TIMER

' Código para el cronómetro del tiempo del programa Dim Minutos, Segundos As Integer ' variables para mostrar el tiempo ' variable Segundos = diferencia en segundos entre una hora y la hora actual Segundos = DateDiff(DateInterval.Second, tiempo, DateTime.Now) Minutos = Segundos \ 60 Segundos = Segundos - (Minutos * 60) ' para que no supere 59 ' presentación formateada del tiempo transcurrido Label8.Text = Format(Minutos, "00") & ":" & Format(Segundos, "00")

TEMA 3 MANEJO DE BASE DE DATOS

EJERCICIO 1.- EL SIGUIENTE EJERCICIO SE HIZO CON UNA BASE DE DATOS EN ACCESS, AQUÍ SE REALIZAN LAS OPERACIONES DE INSERCIÓN, ELIMINACIÓN, CONSULTA Y MODIFICACIÓN.

ESTA ES LA INTERFAZ QUE UTILIZAMOS PARA ESTE PROGRAMA.

Page 17: Guia Prog Visual Omar

ANTES DE COMENZAR CON LA CODIFICACIÓN NECESITAN TENER UNA BASE DE DATOS PARA PODER ESTABLECER LA COMUNICACIÓN CON EL SISTEMA

REALICE LA SIGUIENTE ESTRUCTURA:

NOMBRE DE LA BD: escuela NOMBRE DE LA TABLA: alumnos NOMBRE DE LOS CAMPOS: matricula, nombre, app, apm, direccion

NOTA: ESTABLEZCA AL CAMPO “matricula” COMO LLAVE PRIMARIA.

LLENE CON 3 REGISTROS LA TABLA “alumnos”

Ya que tenemos el diseño ahora realicemos la conexión a la BD, por medio de un oleDbDataAdapter, la instrucción SQL que se manejará será la siguiente:

SELECT matricula,nombre,app,apm,direccionFROM alumnosWHERE (matricula = ?)

y después genere el conjunto de datos, llámelo conexión.

Ahora viene la parte interesante meter el código para cada una de las acciones hacia la BD, comenzaremos con las Altas.

BOTON DE INSERTAR

Page 18: Guia Prog Visual Omar

Dim dragregar As DataRow Dim bandera As Integer

dragregar = Conexion1.Tables("alumnos").NewRow() dragregar(0) = TextBox1.Text dragregar(1) = TextBox2.Text dragregar(2) = TextBox3.Text dragregar(3) = TextBox4.Text dragregar(4) = TextBox5.Text Conexion1.Tables("alumnos").Rows.Add(dragregar)

bandera = OleDbDataAdapter1.Update(Conexion1, "alumnos")

TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" TextBox5.Text = ""

If (bandera = 1) Then MessageBox.Show("Los datos fueron agregados") Else MessageBox.Show("Error en la inserción") End If

BOTON DE CONSULTAR

Antes de comenzar a codificar tenemos que realizar una conexión de cada una de las cajas de texto con su respectivo campo de la tabla alumnos, esto se hace de la siguiente manera:

SELECCIONAMOS LA CAJA DE TEXTO EN ESTE CASO SI SU PRIMERA CAJA DE TEXTO SE LLAMA textBox1 LE DAMOS UN CLICK Y NOS VAMOS A SU PROIEDAD QUE SE LLAMA

(DataBindings)

De un clic sobre el símbolo de “+” para desplegar las demás propiedades y vaya hasta la propiedad

Text

Seleccione primero la tabla y después el campo que le corresponde a esta caja de texto en este ejemplo seria obviamente el campo “matricula”

Haga lo mismo para todas las demás cajas de texto relacionándolas con cada uno de los campos de la tabla.

Page 19: Guia Prog Visual Omar

UNA VEZ REALIZADO ESTA ACCIÓN SE INSERTARA EL CÓDIGO EN EL BOTON CONSULTAR.

OleDbDataAdapter1.SelectCommand.Parameters("matricula").Value = TextBox1.TextOleDbDataAdapter1.Fill(Conexion1)

Antes de poner el código en el botón Borrar tenemos que irnos a la parte donde se ejecutan cada uno de los comandos para Inserción. Consulta, Borrado y Modificación

Estos son cada uno de los comandos y su relación con cada una de las operaciones básicas:

oleDbInsertCommand1: Comando para la Inserción

oleDbSelectCommand1: Comando para la Consulta

oleDbDeleteCommand1: Comando para el Borrado

oleDbUpdateCommand1: Comando para la Modificación

Vaya a la siguiente parte del código :

Page 20: Guia Prog Visual Omar

Se llama Windows Form Designer generated code

Y despliegue el símbolo de “+” y diríjase hasta el comando oleDbDeleteCommand1, y verifique el código que este escrito ahí si no escriba el siguiente código:

Me.OleDbDeleteCommand1.CommandText = "DELETE matricula,nombre,app,apm,direccion FROM alumnos WHERE (matricula=?)" Me.OleDbDeleteCommand1.Connection = Me.OleDbConnection1 Me.OleDbDeleteCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("matricula", System.Data.OleDb.OleDbType.VarWChar, 50, "matricula"))

Este código son solo 3 lineas por razones del tamaño de la hoja de Word se hicieron varias por favor escribalo en solo 3 lineas. El primer Me es una sola linea hasta el siguiente Me y la otra linea es la del Me.oleDbDeleteCommand1.Parameters

BOTON DE BORRADO

OleDbDataAdapter1.DeleteCommand.Parameters("matricula").Value = TextBox1.Text OleDbDataAdapter1.DeleteCommand.Connection.Open() OleDbDataAdapter1.DeleteCommand.ExecuteNonQuery() OleDbDataAdapter1.DeleteCommand.Connection.Close() TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" TextBox5.Text = "" MessageBox.Show("Datos eliminados")

Page 21: Guia Prog Visual Omar

Antes de poner el código en el botón Consultar tenemos que irnos a la parte donde se ejecutan cada uno de los comandos para Inserción. Consulta, Borrado y Modificación

Vaya a la siguiente parte del código :

Se llama Windows Form Designer generated code

Y despliegue el símbolo de “+” y diríjase hasta el comando oleDbUpdateCommand1, y verifique el código que este escrito con el siguiente código si no esta así por favor cambielo:

Me.OleDbUpdateCommand1.CommandText = "UPDATE alumnos set nombre=?, app=?, apm=?, direccion=? WHERE (matricula = ?)" Me.OleDbUpdateCommand1.Connection = Me.OleDbConnection1 Me.OleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("nombre", System.Data.OleDb.OleDbType.VarWChar, 50, "nombre")) Me.OleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("app", System.Data.OleDb.OleDbType.VarWChar, 50, "app")) Me.OleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("apm", System.Data.OleDb.OleDbType.VarWChar, 50, "apm")) Me.OleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("direccion", System.Data.OleDb.OleDbType.VarWChar, 50, "direccion")) Me.OleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("matricula", System.Data.OleDb.OleDbType.VarWChar, 50, "matricula"))

Son 7 líneas para este código por favor acomodelas.

Page 22: Guia Prog Visual Omar

BOTON MODIFICAR

Dim bandera2 As Integer

OleDbDataAdapter1.UpdateCommand.Parameters("matricula").Value = TextBox1.Text OleDbDataAdapter1.UpdateCommand.Parameters("nombre").Value = TextBox2.Text OleDbDataAdapter1.UpdateCommand.Parameters("app").Value = TextBox3.Text OleDbDataAdapter1.UpdateCommand.Parameters("apm").Value = TextBox4.Text OleDbDataAdapter1.UpdateCommand.Parameters("direccion").Value = TextBox5.Text

OleDbDataAdapter1.UpdateCommand.Connection.Open() bandera2 = OleDbDataAdapter1.UpdateCommand.ExecuteNonQuery() OleDbDataAdapter1.UpdateCommand.Connection.Close()

If (bandera2 = 1) Then MessageBox.Show("La actualizacion se llevo a cabo satisfactoriamente") Else MessageBox.Show("Error en la actualización") End If

Page 23: Guia Prog Visual Omar

EJERCICIO 2.- EL SIGUIENTE SISTEMA ES MANEJADO CON UNA BASE DE DATOS EN MYSQL.

DOCUMENTACIÓN PARA EL MANEJO DE BD CON MYSQL Y VISUAL BASIC .NET

Paso 1

Antes de comenzar todo el aspecto de programación debemos de asegurarnos de dos cosas que son muy importantes, la primera: Tener instalado el MYSQL ODBC 3.51 Driver, el segundo y no menos importante es haber creado el DSN que hace referencia a la BD de mysql que vamos a trabajar (de antemano se especifica que su BD ya debe de estar creada y con por lo menos un registro dentro de la tabla o las tablas).

Ahora se indicará como crear un DSN de usuario para poder enlazar nuestra BD con el sistema en Visual Basic .NET

En el ejemplo que vamos a manejar más adelante mi DSN de Usuario se llama dsn_prueba, esto lo hago con la finalidad de que no se vayan a confundir en el código y ustedes le asignen un nombre diferente.

1) Ir a panel de control y entrar al icono llamado Herramientas Administrativas

2) Entrar al icono llamado Origenes de Datos (ODBC)A continuación aparecerá una pantalla como la que aquí se muestra:

Page 24: Guia Prog Visual Omar

3) De un clic en el botón Agregar, a continuación aparecerá una pantalla como la siguiente, en esta ventana deberá seleccionar el origen de datos necesario para trabajar con BD en mysql, en este caso seleccionaremos el MYSQL ODBC 3.51 Driver y le daremos Finalizar.

4) Ahora viene la parte de configuración necesaria para nuestro DSN de Usuario, en esta tabla presentaré las propiedades necesarias que debemos de llenar para crear le DSN

Propiedad DescripciónData Source Name Nombre del DSN a crear. ejem. dsn_escuelaServer LocalHostUser Por lo regular siempre ponemos el nombre de rootDatabase Aquí seleccionamos por medio de un listBox el nombre

de la BD, deben de aparecer todas las BD ya creadas, solo seleccionamos con la que trabajaremos.

5) Ahora le damos clic al botón de prueba para ver si estamos enlazándonos con la BD.

6) El nombre de nuestro DSN ahora aparecerá en la lista.

Ahora ya tenemos nuestro DSN de usuario para poder trabajar con el en Visual Basic .NET.

Page 25: Guia Prog Visual Omar

Paso 2

Realice el siguiente diseño en Visual Basic:

Paso 3

Ahora debemos agregar un componente llamado ADODC que se encuentra en la pestaña llamada Componentes de .NET Framework, este componente nos dará las referencias necesarias para poder trabajar con las conexiones a base de datos. Agregue este componente sobre el formulario, el aspecto es el de un control Data el cual era utilizado en la versión de Visual Basic 6.0, al momento de que se inserta se cargaran las referencias automáticamente, no es necesario mantener el control, si gusta elimínelo del formulario las referencias no se perderán.

Paso 4

Ahora necesitamos declarar algunos variables que nos servirán para establecer conexiones con la base de datos y el manejo de cada uno de los campos de la o las tablas que vayamos a manejar.

Page 26: Guia Prog Visual Omar

Vaya hasta la parte de arriba e inserte la siguiente línea de código, esta será su primer línea de código de todo el programa:

Imports ADODB

Las siguientes líneas de código irán debajo de esta línea de código, recuerde no vaya a escribir esta línea solo la estamos tomando como referencia para que inserte las líneas de código que están abajo.

Inherits System.Windows.Forms.Form

‘Variable para manejar la conexión con el DSN de UsuarioDim cnn1 As ADODB.Connection = New ADODB.Connection()

‘Variable para manejar los registros de la tablaDim rcset As ADODB.Recordset = New ADODB.Recordset()

‘Variable para manejar los campos de la tablaDim oFields As ADODB.FieldsDim cm As New Command()

Paso 5

Ahora vamos con el código fuerte que serian cada uno de los botones que se utilizarán en el sistema, aquí se manejarán las 4 operaciones básicas que son: altas, bajas, modificaciones y consultas.

Botón de Altas

'Validamos que las cajas esten llenas If TextBox1.Text = "" Then‘ESTO ES UNA SOLO LINEA DE CÓDIGO, SE HICIERON VARIAS POR EL TAMAÑO DE LA HOJA DE WORD MessageBox.Show("Por favor llena la matricula", "Caja vacia", MessageBoxButtons.OK, MessageBoxIcon.Information)‘FIN DE LA LINEA Exit Sub End If If TextBox2.Text = "" Then‘ESTO ES UNA SOLO LINEA DE CÓDIGO, SE HICIERON VARIAS POR EL TAMAÑO DE LA HOJA DE WORD MessageBox.Show("Por favor llena el Nombre", "Caja vacia", MessageBoxButtons.OK, MessageBoxIcon.Information)‘FIN DE LA LINEA Exit Sub End If If TextBox3.Text = "" Then‘ESTO ES UNA SOLO LINEA DE CÓDIGO, SE HICIERON VARIAS POR EL TAMAÑO DE LA HOJA DE WORD MessageBox.Show("Por favor llena el Apellido Paterno", "Caja vacia", MessageBoxButtons.OK, MessageBoxIcon.Information)‘FIN DE LA LINEA

Exit Sub End If

If TextBox4.Text = "" Then

Page 27: Guia Prog Visual Omar

‘ESTO ES UNA SOLO LINEA DE CÓDIGO, SE HICIERON VARIAS POR EL TAMAÑO DE LA HOJA DE WORD MessageBox.Show("Por favor llena el Apellido Materno", "Caja vacia", MessageBoxButtons.OK, MessageBoxIcon.Information)‘FIN DE LA LINEA Exit Sub End If

If TextBox5.Text = "" Then‘ESTO ES UNA SOLO LINEA DE CÓDIGO, SE HICIERON VARIAS POR EL TAMAÑO DE LA HOJA DE WORD MessageBox.Show("Por favor llena la Direccion", "Caja vacia", MessageBoxButtons.OK, MessageBoxIcon.Information)‘FIN DE LA LINEA Exit Sub End If Try 'Establecemos la conexion a la BD cnn1 = New ADODB.Connection() cnn1.ConnectionString = "DSN=dsn_prueba;UID=root;" 'Abrimos la conexion cnn1.Open() 'Creamos la cadena SQL Dim bandera As Object

‘ESTO ES UNA SOLO LINEA DE CÓDIGO, SE HICIERON VARIAS POR EL TAMAÑO DE LA HOJA DE WORD Dim str As String = "INSERT INTO alumnos (matricula,nombre,app,apm,dir_alu) VALUES ('" & TextBox1.Text & "','" & TextBox2.Text & "','" & TextBox3.Text & "','" & TextBox4.Text & "','" & TextBox5.Text & "')"‘FIN DE LA LINEA cnn1.Execute(str, bandera) cnn1.Close() If CInt(bandera) = 1 Then MessageBox.Show("Insercion Exitosa") TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" TextBox5.Text = ""

End If Catch ex As Exception‘ESTO ES UNA SOLO LINEA DE CÓDIGO, SE HICIERON VARIAS POR EL TAMAÑO DE LA HOJA DE WORD MessageBox.Show("Llena los campos por favor", "Error en el proceso", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error)‘FIN DE LA LINEA End Try

Page 28: Guia Prog Visual Omar

Botón de Consultas

Try 'Establecemos la conexion a la BD cnn1 = New ADODB.Connection() cnn1.ConnectionString = "DSN=dsn_prueba;UID=root;" 'Abrimos la conexion cnn1.Open() 'Creamos la cadena SQL Dim bandera As Object

‘ESTO ES UNA SOLO LINEA DE CÓDIGO, SE HICIERON VARIAS POR EL TAMAÑO DE LA HOJA DE WORD Dim str As String = "SELECT matricula,nombre,app,apm,dir_alu FROM alumnos WHERE matricula= '" & TextBox1.Text & "'"‘FIN DE LA LINEA cnn1.Execute(str, bandera) rcset.ActiveConnection = cnn1 rcset.Open(str)

If (bandera) = 1 Then 'Hacemos el llenado de cada una de las cajas de texto TextBox2.Text = CStr(rcset.Fields("nombre").Value) TextBox3.Text = CStr(rcset.Fields("app").Value) TextBox4.Text = CStr(rcset.Fields("apm").Value) TextBox5.Text = CStr(rcset.Fields("dir_alu").Value) cnn1.Close() Else

‘ESTO ES UNA SOLO LINEA DE CÓDIGO, SE HICIERON VARIAS POR EL TAMAÑO DE LA HOJA DE WORD MessageBox.Show("No existe el registro " + TextBox1.Text, "Matricula desconocida", MessageBoxButtons.OK, MessageBoxIcon.Information)‘FIN DE LA LINEA rcset.Close() End If Catch ex As Exception MessageBox.Show(ex.ToString) End Try

Page 29: Guia Prog Visual Omar

Botón de Modificaciones

'Validamos que todas las cajas esten llenas If TextBox2.Text = "" Then

‘ESTO ES UNA SOLO LINEA DE CÓDIGO, SE HICIERON VARIAS POR EL TAMAÑO DE LA HOJA DE WORD MessageBox.Show("Por favor llena el Nombre", "Caja vacia", MessageBoxButtons.OK, MessageBoxIcon.Information)‘FIN DE LA LINEA

Exit Sub End If If TextBox3.Text = "" Then

‘ESTO ES UNA SOLO LINEA DE CÓDIGO, SE HICIERON VARIAS POR EL TAMAÑO DE LA HOJA DE WORD MessageBox.Show("Por favor llena el Apellido Paterno", "Caja vacia", MessageBoxButtons.OK, MessageBoxIcon.Information)‘FIN DE LA LINEA

Exit Sub End If If TextBox4.Text = "" Then

‘ESTO ES UNA SOLO LINEA DE CÓDIGO, SE HICIERON VARIAS POR EL TAMAÑO DE LA HOJA DE WORD MessageBox.Show("Por favor llena el Apellido Materno", "Caja vacia", MessageBoxButtons.OK, MessageBoxIcon.Information)‘FIN DE LA LINEA

Exit Sub End If If TextBox5.Text = "" Then

‘ESTO ES UNA SOLO LINEA DE CÓDIGO, SE HICIERON VARIAS POR EL TAMAÑO DE LA HOJA DE WORD MessageBox.Show("Por favor llena la Direccion", "Caja vacia", MessageBoxButtons.OK, MessageBoxIcon.Information)‘FIN DE LA LINEA

Exit Sub End If

'Establecemos la conexion a la BD cnn1 = New ADODB.Connection() cnn1.ConnectionString = "DSN=dsn_prueba;UID=root;" 'Abrimos la conexion cnn1.Open() 'Creamos la cadena SQL

‘ESTO ES UNA SOLO LINEA DE CÓDIGO, SE HICIERON VARIAS POR EL TAMAÑO DE LA HOJA DE WORD Dim str As String = "UPDATE alumnos SET nombre =" & " '" & TextBox2.Text & "'" & ", app = " & " '" & TextBox3.Text & "'" & ", apm = " & " '" & TextBox4.Text & "'" & ", dir_alu = " & " '" & TextBox5.Text & "' " & "WHERE matricula = " & " '" & TextBox1.Text & "' "‘FIN DE LA LINEA

Page 30: Guia Prog Visual Omar

cm.ActiveConnection = cnn1 cm.CommandText = str

Dim bandera As Object cm.Execute(bandera) cnn1.Close() 'Checamos si el registro fue afectado If CInt(bandera) > 0 Then

‘ESTO ES UNA SOLO LINEA DE CÓDIGO, SE HICIERON VARIAS POR EL TAMAÑO DE LA HOJA DE WORD MessageBox.Show("Actualizacion Exitosa", "Tarea Realizada", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)‘FIN DE LA LINEA

Else

‘ESTO ES UNA SOLO LINEA DE CÓDIGO, SE HICIERON VARIAS POR EL TAMAÑO DE LA HOJA DE WORD MessageBox.Show("Eror en la Actualizacion", "Tarea No Realizada", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error)‘FIN DE LA LINEA

End If

Page 31: Guia Prog Visual Omar

Botón de Eliminaciones

Try 'Establecemos la conexion a la BD cnn1 = New ADODB.Connection() cnn1.ConnectionString = "DSN=dsn_prueba;UID=root;" 'Abrimos la conexion cnn1.Open() 'Creo la bandera para definir si se realizo el borrado 'Creamos la cadena SQL Dim bandera As Object Dim a, r As Integer

‘ESTO ES UNA SOLO LINEA DE CÓDIGO, SE HICIERON VARIAS POR EL TAMAÑO DE LA HOJA DE WORD Dim str As String = "DELETE FROM alumnos WHERE matricula = '" & TextBox1.Text & "'"‘FIN DE LA LINEA

cnn1.Execute(str, bandera) cnn1.Close() If CInt(bandera) = 1 Then

‘ESTO ES UNA SOLO LINEA DE CÓDIGO, SE HICIERON VARIAS POR EL TAMAÑO DE LA HOJA DE WORD MessageBox.Show("Eliminacion exitosa", "Transaccion Exitosa", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)‘FIN DE LA LINEA

TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" TextBox5.Text = "" Else r = a / bandera End If Catch ex As Exception

‘ESTO ES UNA SOLO LINEA DE CÓDIGO, SE HICIERON VARIAS POR EL TAMAÑO DE LA HOJA DE WORD MessageBox.Show("Error en la eliminacion", "Alerta, Error", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error)‘FIN DE LA LINEA End Try

Page 32: Guia Prog Visual Omar

TEMA PROYECTO DE INSTALACIÓN E IMPLEMENTACIÓN

A CONTINUACIÓN SE ESPECIFICA COMO CREAR UN PROYECTO DE INSTALACIÓN PARA NUESTROS PROYECTOS DE VISUAL BASIC .NET

PASO 1.- ESTAR DENTRO DEL PROYECTO DESTINADO A SER CREADO COMO INSTALADOR.

PASO 2.- SELECCIONAR MENÚ ARCHIVO AGREGAR PROYECTO NUEVO PROYECTO

PASO 3.- SELECCIONAR DEL LADO IZQUIERDO LA CARPETA LLAMADA “PROYECTOS DE INSTALACIÓN E IMPLEMENTACIÓN” Y DEL LADO DERECHO LA PLANTILLA LLAMADA “ASISTENTE PARA PROYECTOS DE INSTALACIÓN”, PONGALE UN NOMBRE AL PROYECTO, POR DEFAULT APARECE EL NOMBRE DE SETUP1, ESPECIFIQUE LA DIRECCIÓN DONDE SE CREARÁ EL INSTALADOR.

PASO 4.- APARECERÁ UNA VENTANA DEL ASISTENTE PARA EL PROYECTO DE INSTALACIÓN, PRESIONE SIGUIENTE.

PASO 5.- SALDRÁN DOS OPCIONES PARA ELEGIR EL TIPO DE PROYECTO, SELECCIONEMOS LA PRIMERA, PROGRAMA DE INSTALACIÓN PARA INSTALAR UNA APLICACIÓN PARA WINDOWS, PRESIONES SIGUIENTE.

PASO 6.- EL SIGUIENTE PASO CONSISTE EN INCLUIR QUE GRUPOS DE RESULTADOS DEL PROYECTO DESEAMOS INCLUIR, INCLUYA LOS SIGUIENTES: * RESULTADO PRINCIPAL * RECURSOS ADAPTADOS * ARCHIVOS DE CONTENIDO, PULSE SIGUIENTE.

PASO 7.- EL SIGUIENTE PASO INDICA SI QUEREMOS INCLUIR ALGUN ARCHIVO README O HTML PARA DOCUMENTACION O COMPLEMENTO DEL PROYECTO, USTED DECIDE SI LO DOCUMENTA O NO, PULSE SIGUIENTE.

PASO 8.- PULSE FINALIZAR.

PASO 9.- MENU GENERAR GENERAR (NOMBRE DEL PROYECTO)

PASO 10.- AHORA VAYA A LA RUTA DONDE SE CREO EL INSTALADOR, BUSQUE LA CARPETA CON EL NOMBRE QUE SE LE ASIGNO AL PROYECTO, EJEM: SETUP1 Y DENTRO DE ELLA HAY OTRA CARPETA LLAMADA DEBUG, DENTRO DE ESTA CARPETA HAY UN ARCHIVO LLAMADO COMO EL PROYECTO CON EXTENSION .msi , EJEM: SETUP1.msi DELE DOBLE CLIC Y COMENZARÁ EL PROCESO DE INSTALACIÓN, PULSE SIGUIENTE.

Page 33: Guia Prog Visual Omar

PASO 11.- SELECCIONE LA CARPETA DE INSTALACION, APARECE LA RUTA SIGUIENTE:

C:\ARCHIVOS DE PROGRAMA\NOMBRE DE LA EMPRESA\SETUP1

CAMBIELA POR EL NOMBRE DE UNA CARPETA QUE GUSTE, POR EJEMPLO EL NOMBRE DE LA EMPRESA A LA QUE LE ESTA DESARROLLANDO EL SISTEMA.

TAMBIEN LE PREGUNTARÁ SI DESEA INSTALAR PARA EL USUARIO QUE ESTA ACTUALMENTE EN LA SESION DE WINDOWS O PARA TODOS LOS USUARIOS, DETERMINE QUE OPCION LE CONVIENE, PULSE SIGUIENTE , PULSE SIGUIENTE.

PASO 12.- SE INICIARA LA INSTALACION, PULSE AL FINAL CERRAR.

PASO 13.- BUSQUE EN LA RUTA DONDE SE INSTALO EL PROYECTO EL ARCHIVO SETUP1.EXE Y EJECUTELO.