MySQL Datenbanken mit C# nutzen
Wer sein C#-Projekt (oder jedes andere .NET Projekt) dazu überreden möchte, sich mit einer MySql-Datenbank zu verbinden, der kann auf den offiziellen .NET Connector von Sun zurückgreifen.
Hat man eine Referenz auf die mitgelieferte MySql.Data.dll hinzugefügt und den Namespace mit
using MySql.Data.MySqlClient;
eingebunden, stehen einem verschieden Objekte zur Verfügung, um die Verbindung aufzubauen, Querys abzufeuern und Daten zu lesen.
Abgefragte Daten aus einer Datenbank lassen sich damit z.B. sehr konfortabel in ein DataSet füllen, um diese im Anschluss auszuwerten.
Wir erstellen uns einen sog. Connection String und übergeben diesen bei Ableiten des Verbindungsobjektes an den Konstruktor:
string conString = "server=localhost;uid=root;pwd=geheim;database=data;"; MySqlConnection con = new MySqlConnection(conString);
Um nun einen SELECT auszuführen, deklarieren wir diesen und erstellen uns ein neues MySql-Kommando, welchem wir zusätzlich die gerade erzeugte Verbindung übergeben:
string query = "SELECT name, vorname FROM personen_daten"; MySqlCommand cmd = new MySqlCommand(query, con);
Die Daten wollen wir nun in einem DataSet ablegen, was wir uns erzeugen und mit Hilfe des MySqlDataAdpapters füllen. Beim Füllen vergeben wir einen Namen für die neue DataTable, die im DataSet angelegt wird. So können wir z.B. mehrere unterchiedliche Abfragen in eigene DataTables speichern, diese dem DataSet hinzufügen und später individuell auswerten:
DataSet data = new DataSet(); MySqlDataAdapter adapter = new MySqlDataAdapter(); adapter.SelectCommand = cmd; adapter.Fill(data, "daten_01");
Jetzt haben wir die Möglichkeit, uns eine DataTable zu nehmen und über deren Zeilen (Rows) zu iterieren. Zugriff auf die einzelnen Werte haben wir a) über den konkreten Namen (der vom Query zurückgegeben wurde) oder b) über den Feldindex (beginnend wie immer bei 0):
DataTable table01 = data.Tables["daten_01"]; foreach (DataRow row in table01.Rows) { Console.WriteLine(row["name"].ToString()); string foo = row[1].ToString()); }
Eine andere Möglichkeit wäre es, einen MySqlDataReader zu benutzen und mit WHILE so lange zu lesen, bis alle Zeilen zurückgegeben wurden:
MySqlDataReader reader; reader = cmd.ExecuteReader(); if (reader.hasRows) { while (reader.Read()) { Console.WriteLine(Convert.ToString(reader.GetValue(0))); // do something cool! } }
Um nun INSERTS und UPDATES auszuführen, benutze man bitte die Methode ExecuteNonQuery() des MysqlCommand-Objektes:
cmd.CommandText = "INSERT INTO bank ('kontonummer', 'blz') VALUES ('1234', '2323')"; cmd.ExecuteNonQuery();
Das war er also nun: der kleine Ausflug in die Welt “MySql mit C#”. Alles weitere gibt es auf den folgenden Seiten. Viel Spaß
- MySQL Connector Dokumentation
- MySQL Connector/Net 5.2 Download
Diesen Artikel bookmarken:

Tags:c#, Code, csharp
Kommentar schreiben