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