CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC
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. , en 2. Con el controlador instalado, desde el panel de control, buscamos la aplicación 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:
M. en I. Margarito Navarrete-Mendoza
CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC
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:
M. en I. Margarito Navarrete-Mendoza
CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC
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.
M. en I. Margarito Navarrete-Mendoza
CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC
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.
M. en I. Margarito Navarrete-Mendoza
CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC
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:
M. en I. Margarito Navarrete-Mendoza
CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC
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:
M. en I. Margarito Navarrete-Mendoza
CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC
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:
M. en I. Margarito Navarrete-Mendoza
CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC
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:
M. en I. Margarito Navarrete-Mendoza
CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC
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:
M. en I. Margarito Navarrete-Mendoza
CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC
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.
M. en I. Margarito Navarrete-Mendoza
CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC
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.
M. en I. Margarito Navarrete-Mendoza
CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC
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 Boton Boton Boton Boton Label Label TextBox TextBox DataGridView
Propiedades Modificadas Name = btnEditar, Text = Editar Name = btnInsertar, Text = Insertar Name = btnEliminar, Text = Eliminar Name = btnSalir, Text = Salir Text = ID_REGION Text = NOMBRE Name = tbID_REGION Name = tbNOMBRE Name = dgvRegion
M. en I. Margarito Navarrete-Mendoza
CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC
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:
M. en I. Margarito Navarrete-Mendoza
CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC
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.
M. en I. Margarito Navarrete-Mendoza
CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC
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.
M. en I. Margarito Navarrete-Mendoza
CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC
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
M. en I. Margarito Navarrete-Mendoza
CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC
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.
M. en I. Margarito Navarrete-Mendoza
CONEXIÓN A VISUAL BASIC 2010-MYSQL MEDIANTE ODBC
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.
M. en I. Margarito Navarrete-Mendoza