C# – Stellen Sie eine Verbindung zu einer MySQL-Datenbank her

C# – Stellen Sie eine Verbindung zu einer MySQL-Datenbank her

Der einfachste Weg, eine Verbindung zu einer MySQL-Datenbank in einem .NET-Projekt herzustellen, ist die Verwendung des MySql.Data-Pakets (von Oracle). Es stellt Klassen bereit, die die standardmäßigen ADO.NET-Schnittstellen (z. B. IDbConnection) implementieren.

Fügen Sie zuerst das MySql.Data-Paket zu Ihrem Projekt hinzu (hierzu verwenden Sie View> Other Windows> Package Manager Console ):

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

Verwenden Sie nun die MySqlConnection-Klasse, um eine Verbindung zur MySQL-Datenbank herzustellen (sie mit einer Verbindungszeichenfolge bereitzustellen) und eine Abfrage auszuführen. Hier ist ein Beispiel:

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)

Hinweis:Schließen Sie die Verbindung automatisch, indem Sie das MySqlConnection-Objekt in einem „using“-Block erstellen.

Dadurch wird erfolgreich eine Verbindung hergestellt, die Abfrage ausgeführt und ausgegeben:

There are 20 moviesCode language: plaintext (plaintext)

Dapper mit MySQL verwenden

Wenn Sie Abfragen ausführen, müssen Sie häufig Abfrageparameter hinzufügen und die Abfrageergebnisse dann einer oder mehreren Klassen zuordnen. Das kann wirklich mühsam sein.

Dapper vereinfacht die Dinge, indem es die mühsamen Teile für Sie erledigt. Dazu wird die IDbConnection-Schnittstelle erweitert. Da MySqlConnection diese Schnittstelle implementiert, bedeutet dies, dass Sie Dapper damit verwenden können. Ich zeige ein Beispiel.

Fügen Sie zuerst das Dapper-Paket zu Ihrem Projekt hinzu:

Install-Package Dapper
Code language: PowerShell (powershell)

Stellen Sie nun wie gewohnt die Verbindung mit MySqlConnection her. Verwenden Sie dann eine Dapper-Erweiterungsmethode, um eine Abfrage auszuführen und die Ergebnisse Movie-Objekten zuzuordnen:

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)

Hinweis:Connection.Open() muss nicht aufgerufen werden. Dapper erledigt das für Sie.

Dies ist viel einfacher, als die Abfrageergebnisse manuell zuzuordnen (MySqlCommand.ExecuteReader() + die Ergebniszeilen mit MySqlDataReader zu durchlaufen und jede Spalte einer Movie-Eigenschaft zuzuordnen).

Lesen Sie mehr über das Ausführen grundlegender Abfragen mit Dapper.