icono de la entrada de VBNET

Conector MySQL en VB.NET.

En esta práctica vamos a crear una conexión a un servidor MySQL que nos permitirá realizar consultas a dicha base de datos. Para ello necesitaremos una conector que nos proporciona Oracle y que puedes descargar desde la siguiente url.

descargar conector

Te podrás bajar la versión registrandote con una nueva cuenta de Oracle, o desde tu cuenta. También te lo puedes descargar sin registro.

descargar conector

Una vez te hayas descargado la aplicación tendrás que instalarla. Eso es necesario para que puedas tener acceso no solo a las .dll necesarias de la conexión, sino además para que puedas utilizarlas en otros proyectos con otros lenguajes de programación.

proceso de instalación

Por defecto se instalará dentro de la carpeta de C:\Program Files (x86)\MySQL\MySQL Connector Net 8.0.21\Assemblies\v4.5.2 y el archivo que necesitarás utilizar se llama Mysql.Data.dll

archivo que tienes que utilizar

¿Que versión es mejor?

La última actualización del conector MySQL de Oracle esta optimizada para versiones del motor Framework superiores a la 4.5, aunque se recomienda una versión de 4.8 o superior. Para versiones de NET.Framework inferiores a la 4.6, deberas de instalar versiones anteriores del conector MySQL (recomendada la versión 6.4.3), aunque todo dependerá de la versión de tu Framework y de la versión de tu IDE de Studio.

En este tutorial se va a utilizar la versión 4.8 de NET.Framework en un nuevo proyecto de Windows Form.

Abre un nuevo proyecto de Windows Form y ponle el nombre de ConectorMySQL.

Crear nuevo proyecto Windows Form

Agregar referencia.

Ya has instalado el conector en tu ordenador. Para empezar a usarlo debe de agregar una referencia a la librería descargada dentro de tu proyecto. Para ello abre las propiedades de tu proyecto (recuerda que pulsando sobre el nombre del proyecto dentro del Explorador de Soluciones se te abrirá la ventana de Debug.

Pantalla del editor de proyecto

En la primera pestaña, Aplicación, deberás de ver la versión de .NET Framework en la que estás trabajando. Ya he comentado que para que funcione la aplicación deberá de estar en la como mínimo en la versión 4.6.

Selecciona a continuación la pestaña Referencias y pulsa sobre el botón Agregar.

Referencia la librería

Se te abre una ventana en la cual en la opción de Examinar te permite escoger el archivo de librería que te has descargado anteriormente. Recuerda la ruta de la instalación del archivo. Cuando pulses sobre Aceptar se incluirá la referencia.

incluir referencia externa

Al pulsar Aceptar se cierra la ventana y se ha agregado la referencia dentro del proyecto para que la puedas utilizar a tu gusto.

Agregar librería externa

Conexión a BBDD.

Antes de nada lo que hay que hacer es importar la librería al proyecto. Para eso abre el código de tu proyecto e inserta fuera de la clase principal la librería a utilizar:

imports Mysql.Data.MysqlClient

Ahora tenemos que realizar la conexión al servidor de la base de datos. Para ello previamente tienes que haber creado una Base de datos en tu servidor MySQL a la que poder apuntar la conexión. Yo ya tengo creada una BBDD llamada visualb, por lo que realizo la conexion dentro utilizando dos variables.

variables de conexión a servidor

La primera variable sirve para guardar los datos de conexión al servidor y base de datos. En este caso será localhost y la base se llama visualb. El usuario de dicha base es root y no tiene contraseña.

Como lo que quiero es probar la conexión, voy a utilizar un botón para escribir el código y me muestre un aviso de que la conexión es satisfactoria o no hay conexión. Para ello agrega un nuevo botón al formulario con la propiedad Text igual a Probar y dentro del mismo escribe el siguiente código:

Código para comprobar la conexión

Cuando ejecutes el programa se te mostrará un mensaje u otro en función del estado de tu servidor de bbdd.

Fallo de conexión a BBDD

En este caso se ha producido un fallo de conexión porque no tenía abierto el servicio de XAMPP en localhost y no podía conectarse a la BBDD visualb. Cuando activo el servicio, se conecta sin ningún tipo de problemas.

conexión satisfactoria

Crear y mostrar el contenido.

Una conexión no sirve de nada si no tenemos datos que mostrar. Ya he creado la BBDD llamada visualb, pero ahora tendré que crear contenido en forma de tabla.

Base de datos visualb vacía

Voy a crear una tabla Usuarios con tres campos: Un campo Id auto numérico tipo entero, un campo Nombre tipo Varchar y un campo Edad de tipo entero.

create table Usuarios(
Id int(11) primary key auto_increment,Nombre varchar(25), Edad int(3));

También voy a insertar contenido dentro de la tabla Usuarios para poder llamar después al contenido.

insert into Usuarios values(1, "Pascual", 43);

Ahora ya solo me queda realizar la connectionString para poder sacar los datos de la tabla Usuarios de dicha base de datos.

Necesitamos declarar una nueva variable dentro del proceso principal que será la que se encargue de manipular la información. Esa variable la llamaré comando, ya que será la que se encargue de plasmar en la aplicación nuestras ordenes a la BBDD de MySQL. Pero también necesitamos otra variable que nos proporcionará la consulta que queremos realizar y que, como será una consulta de selección, llamaré selección. Por lo que ahora nos quedarán cuatro variables públicas en dicho proceso:

Variables para la manipulación de objetos MySQL

Agregar controles para la representación.
Para la representación de los datos, vamos a utilizar un control DataGridView que podemos encontrar en nuestro Cuadro de Herramientas en la sección de Datos. Arrastra dicho control al formulario y redimensiona al gusto. Ahora hay dos formas de proceder: Cuando comprobemos la conexión que se cargue el contenido en el DataGridView o creamos un nuevo control para ejecutar la consulta. Yo me voy a decantar por ejecutar la consulta aparte de la comprobación.

Formulario con botón de pruebas y botón de cargar datos

Configurar DataGridView.
La nueva variable selección de la propiedad MysqlCommand creada anteriormente, nos servirá para establecer el commandText (consulta), de la instrucción SQL que queremos ejecutar. Asignaremos a dicha variable una cadena String que indicará el tipo de consulta que queremos ejecutar. Pero primero tenemos que indicar a VB.NET que vamos a hacer una consulta, por lo tanto tenemos que asignar la consulta al objeto de conexión anterior para poder hacer la consulta correctamente. Después, como es una consulta para ver los datos, en el commandText estableceremos la sentencia de consulta:

selección.Connection = mysqlConnection
selección.CommandText = "SELECT * FROM Usuarios;"

Para la estructura del DataGridView, primero hay que crear un objeto DataTable que servirá para poder copiar los datos de una tabla al control. Y después creamos otro objeto que será el adaptador de la tabla de la BBDD. El objeto adaptador deberá estar rellenado con la consulta que queremos mostrar en el DatagridView, por lo que asignamos a éste objeto a la variable selección. Y para finalizar tenemos que rellenar con el método fill(), todo el contenido del control DataGridView según los datos de la tabla de origen y asignar el DataSource (fuente de origen de datos) del DataGridView, al Datatable.

Finalizamos cerrando la conexión porque no la vamos a usar, y hay que cerrarla para que no nos de un error al ejecutar la consulta y visualización.

selección.Connection = mysqlConnection
selección.CommandText = "SELECT * FROM Usuarios;"
Dim dt As New DataTable
Dim da As New MySqlDataAdapter(selección)
da.Fill(dt)
DataGridView1.DataSource = dt
mysqlConnection.Close()

Resultado de cargar la tabla de Usuarios dentro del DataGridView