C#:conéctese a una base de datos MySQL

C#:conéctese a una base de datos MySQL

La forma más sencilla de conectarse a una base de datos MySQL en un proyecto .NET es usar el paquete MySql.Data (de Oracle). Proporciona clases que implementan las interfaces estándar de ADO.NET (como IDbConnection).

Primero, agregue el paquete MySql.Data a su proyecto (esto está usando Ver> Otras ventanas> Consola del administrador de paquetes ):

Install-Package MySql.Data
Code language: PowerShell (powershell)

Ahora use la clase MySqlConnection para conectarse a la base de datos MySQL (proporcionándole una cadena de conexión) y ejecute una consulta. He aquí un ejemplo:

using MySql.Data.MySqlClient;

var connectionString = "server=remoteserver;database=moviesdb;user id=sqluser;password=abc;";

using (var connection = new MySqlConnection(connectionString))
{
    connection.Open();
    
    using var command = new MySqlCommand("SELECT COUNT(*) FROM movies", connection);
    var movieCount = command.ExecuteScalar();

    Console.WriteLine($"There are {movieCount} movies");
}
Code language: C# (cs)

Nota:cierre la conexión automáticamente creando el objeto MySqlConnection en un bloque de "uso".

Esto se conecta con éxito, ejecuta la consulta y genera:

There are 20 moviesCode language: plaintext (plaintext)

Uso de Dapper con MySQL

Cuando ejecuta consultas, a menudo tiene que agregar parámetros de consulta y luego asignar los resultados de la consulta a una o más clases. Esto puede ser realmente tedioso.

Dapper simplifica las cosas haciendo las partes tediosas por ti. Lo hace extendiendo la interfaz IDbConnection. Dado que MySqlConnection implementa esta interfaz, esto significa que puede usar Dapper con ella. Mostraré un ejemplo.

Primero, agregue el paquete Dapper a su proyecto:

Install-Package Dapper
Code language: PowerShell (powershell)

Ahora cree la conexión con MySqlConnection como de costumbre. Luego use un método de extensión Dapper para ejecutar una consulta y asignar los resultados a los objetos de película:

using MySql.Data.MySqlClient;
using Dapper;

var connectionString = "server=remoteserver;database=moviesdb;user id=sqluser;password=abc;";

using (var connection = new MySqlConnection(connectionString))
{
    var movies = connection.Query<Movie>("SELECT * FROM movies");
}
Code language: C# (cs)

Nota:No es necesario llamar a connection.Open(). Dapper hace eso por ti.

Esto es mucho más simple que mapear los resultados de la consulta manualmente (MySqlCommand.ExecuteReader() + recorrer las filas de resultados con MySqlDataReader y mapear cada columna a una propiedad Movie).

Obtenga más información sobre la ejecución de consultas básicas con Dapper.