En este artículo te mostraremos a realizar una conexión a una base de datos en MySQL 8 desde C#.
Requisitos
- Visual Studio 2013 o superior. Descargar
- .NET Framework 4.5.2 o superior para Visual Studio
- MySQL 8.x Descargar
- MySQL Connector/NET 8.x Descargar
Implementación
Para iniciar necesitamos crear un proyecto de C# en Visual Studio y una base de datos en MySQL.
Agregar referencia
El conector de MySQL previamente instalado lo encontraremos en la carpeta C:\Program Files (x86)\MySQL\Connector NET 8.0\Assemblies dentro de esta carpeta contendrá una carpeta con la versión del conector.
Teniendo la ubicación del conector (MySQL.Data.dll) abrimos nuestro proyecto de C# en Visual Studio y vamos al explorador de soluciones, damos clic derecho en el nombre del proyecto, nos posicionamos en la opción de agregar y en seguida damos clic en Referencia…
Abrirá el administrador de referencias, en el panel izquierdo seleccionamos Examinar, en la parte inferior presionamos el botón Examinar y en el cuadro de búsqueda ubicamos el conector MySQL.Data.dll y lo agregamos.
En el explorador de soluciones aparecerá el conector de MySQL.
Crear conexión de base de datos
Para realizar la conexión de C# y MySQL estoy utilizando un proyecto de Aplicación de Windows Forms pero se puede realizar mediante otro tipo de proyecto.
En un formulario agregamos un botón con las siguientes propiedades:
- Name: btnConectar
- Text: Conectar
- El diseño puede ser el de su preferencia.
Damos doble clic en el botón y abrirá la clase con código que le dará funcionalidad al formulario.
Encontraremos el método del evento clic del botón.
private void btnConectar_Click(object sender, EventArgs e) { }
Dentro de este método agregaremos la conexión a nuestra base de datos en MySQL.
private void btnConectar_Click(object sender, EventArgs e) { string servidor = "localhost"; //Nombre o ip del servidor de MySQL string bd = "mysql"; //Nombre de la base de datos string usuario = "root"; //Usuario de acceso a MySQL string password = "password"; //Contraseña de usuario de acceso a MySQL string datos = null; //Variable para almacenar el resultado //Crearemos la cadena de conexión concatenando las variables string cadenaConexion = "Database=" + bd + "; Data Source=" + servidor + "; User Id=" + usuario + "; Password=" + password + ""; //Instancia para conexión a MySQL, recibe la cadena de conexión MySqlConnection conexionBD = new MySqlConnection(cadenaConexion); MySqlDataReader reader = null; //Variable para leer el resultado de la consulta //Agregamos try-catch para capturar posibles errores de conexión o sintaxis. try { string consulta = "SHOW DATABASES"; //Consulta a MySQL (Muestra las bases de datos que tiene el servidor) MySqlCommand comando = new MySqlCommand(consulta); //Declaración SQL para ejecutar contra una base de datos MySQL comando.Connection = conexionBD; //Establece la MySqlConnection utilizada por esta instancia de MySqlCommand conexionBD.Open(); //Abre la conexión reader = comando.ExecuteReader(); //Ejecuta la consulta y crea un MySqlDataReader while (reader.Read()) //Avanza MySqlDataReader al siguiente registro { datos += reader.GetString(0) + "\n"; //Almacena cada registro con un salto de linea } MessageBox.Show(datos); //Imprime en cuadro de dialogo el resultado } catch (MySqlException ex) { MessageBox.Show(ex.Message); //Si existe un error aquí muestra el mensaje } finally { conexionBD.Close(); //Cierra la conexión a MySQL } }
Después de escribir el código nos mostrará algunos errores y funciones subrayadas porque necesitamos agregar el namespace del conector de MySQL, para esto vamos a la parte de arriba del código y veremos algunas lineas que inician con la palabra using allí agregamos la de MySQL.
using MySql.Data.MySqlClient;
Al ejecutar la aplicación y presionar el botón Conectar nos muestra un listado de las bases de datos que tenemos en MySQL.
Podemos modificar la consulta dependiendo de nuestras necesidades.
Posibles errores y soluciones
Error de conexión
Cuando presionamos el botón Conectar y nos muestra un mensaje de error de acceso denegado debemos verificar que los datos de conexión sean los correctos, como la dirección del servidor, el nombre de la base de datos, el usuario de acceso y la contraseña del usuario de acceso.
Compatibilidad de .NET Framework
Nos puede mostrar un error de compatibilidad con el .NET Framework que utilizamos, debemos verificar la versión que utiliza el proyecto, la cual debe ser 4.5.2 o superior ya que las versiones anteriores no son compatibles con el conector.
Para cambiar la versión de .NET Framework damos clic derecho en el proyecto y seleccionamos propiedades. En la ventana que muestra nos posicionamos en la pestaña de Aplicación, dentro buscamos la opción Versión de .NET Framework de destino y seleccionamos una versión compatible. Si no se tiene una versión compatible la opción final nos permite instalar diferentes versiones.
Dejemos este vídeo en el cual realizamos una conexión pero de C# a MySQL 5 la cual es un poco similar.