Conexion a Visual Basic 2010

18
CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC M. en I. Margarito Navarrete-Mendoza INTRODUCCIÓN Hay varias maneras para realizar una conexión desde una aplicación a un servidor de bases de datos. Entre ellos utilizaremos el ODBC el cual crea un nombre DSN con los datos de la conexión, y puede ser utilizad por varias aplicaciones diferentes. Como servidor de bases de datos utilizaremos MySQL y como lenguaje de programación usaremos el Visual Basic 2010. CREACIÓN DEL ODBC 1. Primero que nada, debemos tener instalado el controlador ODBC para MySQL, el cual puede ser descargado desde la página del distribuidor: http://dev.mysql.com/downloads/connector/odbc/ únicamente hay que descargar la versión correspondiente a su sistema operativo y, posteriormente, seguir los pasos del instalador. 2. Con el controlador instalado, desde el panel de control, buscamos la aplicación , en algunas ocasiones esta aplicación también la podemos encontrar dentro de la carpeta de herramientas administrativas. En los equipos de Windows de 64 bits, la aplicación para acceder al ODBC se encuentra en la siguiente ruta: C:/WINDOWS/SySWow64/ Una vez localizado el ícono, accedemos a él y aparecerá la siguiente ventana:

Transcript of Conexion a Visual Basic 2010

Page 1: Conexion a Visual Basic 2010

CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC

M. en I. Margarito Navarrete-Mendoza

INTRODUCCIÓN

Hay varias maneras para realizar una conexión desde una aplicación a un servidor de bases

de datos. Entre ellos utilizaremos el ODBC el cual crea un nombre DSN con los datos de la

conexión, y puede ser utilizad por varias aplicaciones diferentes. Como servidor de bases de datos

utilizaremos MySQL y como lenguaje de programación usaremos el Visual Basic 2010.

CREACIÓN DEL ODBC

1. Primero que nada, debemos tener instalado el controlador ODBC para MySQL, el cual puede

ser descargado desde la página del distribuidor:

http://dev.mysql.com/downloads/connector/odbc/ únicamente hay que descargar la versión

correspondiente a su sistema operativo y, posteriormente, seguir los pasos del instalador.

2. Con el controlador instalado, desde el panel de control, buscamos la aplicación , en

algunas ocasiones esta aplicación también la podemos encontrar dentro de la carpeta de

herramientas administrativas.

En los equipos de Windows de 64 bits, la aplicación para acceder al ODBC se encuentra en la

siguiente ruta:

C:/WINDOWS/SySWow64/

Una vez localizado el ícono, accedemos a él y aparecerá la siguiente ventana:

Page 2: Conexion a Visual Basic 2010

CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC

M. en I. Margarito Navarrete-Mendoza

Dentro de DSN de usuario, es donde vamos a crear nuestro nombre de ODBC. Para ello

pulsamos en el botón Agregar… Y de la siguiente ventana vamos a buscar el controlador de MySQL

(previamente instalado), y pulsaos Finalizar.

En seguida aparecerá la ventana de configuración de MySQL ODBC. Es ahí donde debemos

llenar con la información que usamos para ingresar al servidor de mysql. Cabe mencionar que el

nombre que le demos en el campo “Data Source Name” es el nombre que debemos especificar

desde nuestra aplicación de Visual Basic o en cualquier otro lenguaje.

Si deseamos comprobar la conexión, pulsamos en el botón Test, el cual debe mostrar el

siguiente mensaje en caso de que la conexión haya sido exitosa:

Page 3: Conexion a Visual Basic 2010

CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC

M. en I. Margarito Navarrete-Mendoza

En el caso en que nos muestre otro mensaje, debemos revisar los datos de la conexión.

Por último, pulsamos sobre el botón OK y veremos que nuestro ODBC, ya aparece en la lista de

los Orígenes de datos de usuario.

Para finalizar el proceso, sólo pulsamos sobre el botón de Aceptar y listo.

Page 4: Conexion a Visual Basic 2010

CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC

M. en I. Margarito Navarrete-Mendoza

CONEXIÓN A MYSQL DESDE VISUAL BASIC 2010.

Primero que nada vamos a crear un nuevo proyecto en VB del tipo Aplicación de Windows

Forms.

Una vez especificado el nombre del proyecto y la ruta donde se almacenará, tendremos la

siguiente ventana:

Donde podremos distinguir algunas zonas. Como el Diseño de la Formulario, la barra de

Propiedades y el Explorador de Soluciones. A todos ellos podemos acceder y alternar desde los

íconos correspondientes.

1. Creando la conexión. Para establecer una conexión vía ODBC a MySQL, debemos importar las

clases necesarias para trabajar con ODBC, así como la declaración e inicialización algunas

variables.

a. Acedemos al código del formulario pulsando la tecla F7 y tecleamos el siguiente

código en la parte de arriba. Con esto estamos importando algunas clases y

objetos del tipo ODBC.

Page 5: Conexion a Visual Basic 2010

CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC

M. en I. Margarito Navarrete-Mendoza

b. Ahora declaramos la variable donde almacenaremos la conexión dentro de la clase

Public Class del Form. Esta variable será el nombre al cual nos referiremos como

una conexión. En este caso la he llamado MiConexion.

c. El siguiente paso es inicializar la variable conexión con los datos del ODBC que

definimos anteriormente. Esta parte la podemos poner en el evento Click de un

botón para que se conecte cuando lo pulsemos o también lo podemos poner en el

evento Shown del Formulario para que se conecte cuando se ejecute el programa

y se muestre ese formulario. En este caso lo pondré en un botón.

Si puede notar, BDHR es el nombre que le puse al ODBC cuando lo configuré.

d. Finalmente debemos intentar abrir la conexión mediante el evento Open de la

variable MyConexión. Esta línea de código la pondré en el mismo evento Click del

botón.

Hasta el momento, tenemos el siguiente código en el formulario:

Page 6: Conexion a Visual Basic 2010

CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC

M. en I. Margarito Navarrete-Mendoza

Y el formulario en diseño luciría así:

Si ejecutamos el programa y pulsamos el botón Conectar, no debería marcar ningún

mensaje de error, a menos que no hayamos escrito correctamente el código descrito arriba o

que hayamos escrito mal el nombre del dsn.

Por el momento, ya tenemos lista una conexión en nuestro programa que apunta a la base

de datos hr en el servidor de MySQL. Con la variable MyConexion podemos trabajar en una o

varias consultas y no necesitamos crear otra conexión aparte.

2. Realizando una consulta SQL. Para realizar una consulta sobre la base de datos, debemos

crear variables de tipo string que contendrán la cadena con la consulta SQL deseada, para

posteriormente ser ejecutada y visualizada en algún componente de VB.

a. Inicializando Cadenas. La sentencia SQL que comúnmente tecleamos en el editor

Workbench de MySQL la colocaremos dentro de una variable tipo cadena de la

siguiente manera.

b. Creando un Objeto OdbcCommand. El siguiente paso es crear un objeto del tipo

OdbcCommand, el cual debemos inicializar con las Cadena de consulta que hemos

creado y con el nombre de la conexión.

c. Creando la fuente de datos y el adaptador. Dos variables son necesarias para que

tenga efecto la consulta a realizar: La fuente de datos (DataSet) que será donde se

almacenarán los registros regresados por la consulta y la otra variable es el

adaptador (OdbcAdapter) el cual sirve como conexión entre la fuente y el

componente donde visualizaremos los datos. Las variables se definen como:

Page 7: Conexion a Visual Basic 2010

CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC

M. en I. Margarito Navarrete-Mendoza

d. Inicializando la fuente y el adaptador. Ahora inicializamos las variables creadas en

el punto c.

El adaptador es direccionado al comando de la consulta y la fuente es llenada con

los datos de la consulta mediante la propiedad Fill del adaptador. En esa última operación se le

da un nombre a manera de tabla temporal.

e. Visualizando datos. Para mostrar los datos elegiremos un componente llamado

DataWridView de las herramientas de Datos. Y le establecemos las propiedades

DataSourse con el nombre de la Fuente de datos que en el punto anterior

llenamos y la propiedad de DataMember con el nombre de la tabla que le dimos

también en el paso anterior y listo.

Con los incisos del punto 2 tenemos el siguiente código, todo dentro de un segundo botón en su

evento click:

Y el formulario luciría de la siguiente manera:

Page 8: Conexion a Visual Basic 2010

CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC

M. en I. Margarito Navarrete-Mendoza

3. Modificar Datos mediante consulta SQL. La modificación de datos también se realizará sobre

la misma conexión creada desde el inicio, y también tendrá una cadena de tipo String que

contendrá la consulta SQL deseada, pero no necesitará de una fuente de datos ni ser

visualizada en un componente como el Datagridview, sino simplemente será ejecutada.

a. Inicializando Cadenas. La sentencia SQL que comúnmente tecleamos en el editor

Workbench de MySQL la colocaremos dentro de una variable tipo cadena de la

siguiente manera.

b. Creando un Objeto OdbcCommand. El siguiente paso es crear un objeto del tipo

OdbcCommand, el cual debemos inicializar con las Cadena de consulta que hemos

creado y con el nombre de la conexión.

c. Ejecutando el comando. Ahora simplemente ejecutamos el comando sql de la

siguiente manera:

Page 9: Conexion a Visual Basic 2010

CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC

M. en I. Margarito Navarrete-Mendoza

Si todo salió bien, no obtendremos mensaje de error.

Los incisos del punto 3, generaron el siguiente código el cual fue colocado dentro del evento click

de otro botón.

Y el formulario ahora luce de la siguiente manera:

Ahora cada vez que se pulsa el botón de Editar, se incrementa el salario de los empleados en

1000. Y puede ser comprobado pulsando el botón de Consultar que nos mostrará los nuevos datos

ya modificados.

4. Insertar Nuevos Registros en la Tabla. La inserción de nuevos datos en la tabla, se hará de la

misma manera en que se hizo la actualización de datos. La diferencia será la consulta SQL. Que

puede ser realizada de la siguiente manera:

Page 10: Conexion a Visual Basic 2010

CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC

M. en I. Margarito Navarrete-Mendoza

El signo + es empleado para concatenar dos cadenas. Nótese que los datos numéricos no llevan

comillas simples, a diferencia de las cadenas y las fechas que sí los llevan.

El código completo fue colocado en el evento click de un botón y es el siguiente:

Y el formulario ahora luce de la siguiente manera:

Cada vez que se presione el botón de Insertar serán introducidos los datos que contenga la

consulta. En este caso siempre son los mismos, así que debemos hacer algo para que los datos

sean introducidos por el usuario. Lo mismo para un update.

Page 11: Conexion a Visual Basic 2010

CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC

M. en I. Margarito Navarrete-Mendoza

CAPTURA DE DATOS DEL USUARIO

Hasta el momento logramos la conexión, consulta, edición y actualización de una base de

datos. Ese es el objetivo principal, pero necesitamos que los datos introducidos como

modificación, inserción o eliminación sean los deseados por el usuario, no como programador.

Para ello vamos a hacer uso de un componente de VB muy comúnmente visto en los formularios

de cualquier lenguaje de programación. Dicho componente es llamado TextBox, y es usado tanto

para ingresar datos como para mostrarlos. También realizaremos la llamada a una ventana o

formulario nuevo, desde la primera ventana a manera de ventana hija, y es ahí en la ventana hija

donde realizaremos una nueva conexión para trabajar sobre la tabla REGIONS de la tabla hr.

1. Llamar una ventana hija. Primero que nada debemos crear o agregar un nuevo formulario a

nuestro proyecto. Para ello seleccionamos Agregar Windows Forms… en el menú Proyecto.

Y seleccionamos Windows forms de la siguiente ventana.

Con ellos tendremos un nuevo formulario en blanco cuyo nombre por defecto es form2,

listo para recibir los componentes necesarios. Si en este momento ejecutamos nuestro proyecto

no veremos el efecto de haber agregado una nueva forma, simplemente seguimos viendo la

misma ventana ya conocida.

Para darle acción a la nueva ventana, colocaremos sobre la ventana principal (form1) un

nuevo botón y le ponemos el siguiente código en su evento click.

Con lo cual estamos creando una nueva variable del tipo form2 y posteriormente la

estamos mostrando como ventana hija con su propiedad ShowDialog(). Finalmente liberamos la

memoria cuando se cierre la ventana.

Page 12: Conexion a Visual Basic 2010

CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC

M. en I. Margarito Navarrete-Mendoza

El programa en ejecución tendrá el siguiente aspecto luego de haber pulsado el botón para abrir la

nueva forma:

Si intentamos acceder a los botones de la primera forma notamos que no podemos ya que la

forma 2 esta encima de la primera. Para regresar al menú o pantalla anterior, debemos cerrar la

ventana hija pulsando sobre la x o colocando un botón de cerrar en cuyo evento click colocamos la

instrucción Close();

Ahora ya teniendo acceso a la nueva ventana, trabajaremos sobre ella a manera de

catálogo de Regiones.

2. Colocando componentes necesarios. El catálogo de Regiones vamos a agregar los elementos

siguientes, de tal modo que luzca como la figura de abajo.

Componente Propiedades Modificadas

Boton Name = btnEditar, Text = Editar

Boton Name = btnInsertar, Text = Insertar

Boton Name = btnEliminar, Text = Eliminar

Boton Name = btnSalir, Text = Salir

Label Text = ID_REGION

Label Text = NOMBRE

TextBox Name = tbID_REGION

TextBox Name = tbNOMBRE

DataGridView Name = dgvRegion

Page 13: Conexion a Visual Basic 2010

CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC

M. en I. Margarito Navarrete-Mendoza

3. Agregando código a los componentes. Ahora vamos a agregar el código necesario para que

nuestro formulario funcione como un catálogo de Regiones. Para ellos vamos a seguir los

siguientes pasos:

a. Conexión con la base de datos. La conexión será realizada como en la primera

parte del manual, importando las clases odbc y declarando la variable global en la

parte pública de la clase form2.

En este caso mi variable de conexión será llamada RegConexion.

b. Inicializando conexión y consulta. Ahora colocaremos las instrucciones para

conectarnos a la base de datos y al mismo tiempo desplegar los datos de la tabla

regions en el data grid view al momento que se muestra la forma 2. Es decir

colocaremos el código en el evento shown de la forma2. El código es el siguiente:

Page 14: Conexion a Visual Basic 2010

CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC

M. en I. Margarito Navarrete-Mendoza

Con lo anterior, al mostrar la forma2, los datos son inicializados automáticamente:

c. Cargando datos en los campos tbID_REGION y tbNOMBRE. Lo más común que nos

encontraos en el mundo real es que al presionar sobre un registro del grid view,

nos desplege en los text box la información del registro seleccionado. Para ello, en

el evento CellClick del componente dgvRegion vamos a agregar el siguiente

código.

Private Sub dgvRegion_CellClick(sender As System.Object, e As

System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvRegion.CellClick

tbID_REGION.Text = dgvRegion.Item(0, dgvRegion.CurrentRow.Index).Value tbNOMBRE.Text = dgvRegion.Item(1, dgvRegion.CurrentRow.Index).Value

End Sub

Se puede observar que los campos se asignan al valor que tenga el grid view en su

CurrentRow. Los números 0 y 1 son los índices de cada columna.

Page 15: Conexion a Visual Basic 2010

CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC

M. en I. Margarito Navarrete-Mendoza

d. Editando registros. Para lograr que solo editemos el registro seleccionado,

agregamos el siguiente código al evento clik del botón btnEditar:

Con lo cual logramos que se edite el registro con el dato que contenga el campo

tbNOMBRE en su propiedad text. Y la condición es que solamente se edite el

campo seleccionado mediante el campo tbID_REGION en su propiedad text. Note

que para actualizar o insertar un dato de tipo cadena debemos colocar unas

comillas simples al inicio y al final del capo a modificar. En este caso lo hice

mediante la concatenación de un carácter comilla simple encerrado entre dos

comillas dobles.

e. Insertando nuevo registro. Para insertar un nuevo registro, debemos llenar los

campos tbID_REGION y tbNOMBRE y posteriormente insertarlos en la tabla. Esto

lo hacemos agregando el siguiente código al botón btnInsertar:

Lo que hicimos con el código anterior es que insertamos un nuevo registro con los

datos que tecle el usuario. Vuelva a notar que el id_region como en la tabla es del tipo entero, no

necesitamos colocarle comillas como al nombre. Las fechas también irán entre comillas simples y

en el formato de año, mes, día.

Page 16: Conexion a Visual Basic 2010

CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC

M. en I. Margarito Navarrete-Mendoza

Aquí una pantalla con un nuevo dato insertado:

f. Eliminando un registro. Para eliminar un registro seleccionado en el grid view,

debemos colocar el siguiente código en el botón btnEliminar en su evento click:

Con lo que conseguimos eliminar únicamente el registro activo en el grid view.

Con todo lo anterior, ya tenemos lo necesario para realizar varios catálogos y modificar los

registros de las tablas de una base de datos de manera separada y como administrador de los

diferentes catálogos. Esto es lo que tenemos comúnmente en la vida real.

COMENTARIOS FINALES

a. Actualizar los datos cada vez que re realiza una operación. Para ello se sugiere el

uso de funciones definidas por el usuario para que sean mandadas llamar cada vez

Page 17: Conexion a Visual Basic 2010

CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC

M. en I. Margarito Navarrete-Mendoza

que se realice una operación y se visualice el resultado de forma inmediata. Se

aconseja hacer un nuevo select a la tabla. La función puede ser declarada en la

parte pública de la forma y contener la operación que hicimos para consultar la

tabla regions y mandar llamar la función cuando lo deseemos.

De tal manera que en el evento shown de la forma2, únicamente necesitaríamos

colocar el siguiente código para que siga funcionando como al principio del ejercicio.

RegConexion = New OdbcConnection("dsn=BDHR")

RegConexion.Open()

ConsultaDatos()

Lo mismo podemos hacer luego de insertar un nuevo registro, simplemente

agregamos el código al final de las instrucciones ya conocidas.

ConsultaDatos()

b. Cerrar la conexión al cerrar la forma. Para cerrar una conexión, colocamos la

instrucción en el botón btnSalir.

Close()

RegConexion.Close()

Con lo cual logramos cerrar la forma y cerrar la conexión antes creada.

Page 18: Conexion a Visual Basic 2010

CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC

M. en I. Margarito Navarrete-Mendoza

Espero que les sirva de ayuda para su proyecto…

Les paso también el archivo comprimido con el proyecto completo que expliqué arriba, lo

único que tienen que hacer es abrir el proyecto y tendrán acceso a las formas y a su código.

El ejecutable de cada proyecto que se crea en VB, lo encontramos en la carpeta donde

guardamos el proyecto y dentro buscamos la carpeta con el mismo nombre del proyecto, y

dentro buscamos otra llamada bin y más a dentro tendremos otra llamada debug y es ahí

donde se encuentra un .exe con el nombre del proyecto, que es el ejecutable de nuestro

programa. En este caso la ruta es:

Principal\Principal\bin\Debug\Principal.exe

Si encuentran algún error en la escritura o alguna sugerencia, favor de hacer sus comentarios

para mejorarlo.