Advanced Services | Direktverbindung mit Hilfe des DOT-NET-Connectors von MySQL |
Den Connector findet man unter
http://www.mysql.com/downloads
Jetzt wählt man links den Punkt "Connectors" aus und dann "Connector/Net". Sodann sucht man sich
die neueste Version heraus und lädt diese herunter. Beim Schreiben dieser Anleitung ist dies die
Version mit der Nummer "6.6.5". Wie zu erwarten, ist der Connector eine ausführbare Datei.
Der Connector installiert sich üblicherweise in einem zu seiner Versionsnummer passenden Verzeichnis.
In diesem Fall ist dies: C:\Programme\MySQL\MySQL Connector Net 6.6.5.
Im Verzeichnis C:\Programme\MySQL\MySQL Connector Net 6.6.5\Assemblies\v4.0 liegen dann die Dateien
MySql.Data.dll, MySql.Data.Entity.dll und MySql.Web.dll.
Die Datei MySql.Data.dll müssen wir VisualStudio noch bekanntgeben.
Zunächst legt man etwa ein C#-Konsolprojekt wie gewohnt an.
Als nächstes müssen wir unter References (Verweise) eine Ergänzung vornehmen und damit unserem Projekt
die Datei MySql.Data.dll bekanntmachen.
Die Ergänzung des Verweises verläuft wie folgt:
Den Eintrag References markieren und mit der rechten Maustaste Kontextmenü aktivieren:
Karteikarte Browse auswählen:
Das Verzeichnis anwählen, das die Datei MySql.Data.dll enthält,
hier C:\Programme\MySQL\MySQL Connector Net 6.6.5\Assemblies\v4.0 :
Nach dem Bestätigen sollte der Eintrag MySql.Data als Verweis enthalten sein:
Der oben angezeigte Eintrag System.Data rührt von der Installation des ODBC-Treibers her und wird hier nicht gebraucht.
Jetzt können wir das notwendige using-Statement using MySql.Data.MySqlClient; ergänzen.
Bereits nach dem Eintippen von using MySql. sollte VisualStudio einen Tooltip mit dem Eintrag Data anbieten.
Das folgende Programm demonstriert einen Zugriff auf eine Tabelle "myTable" im Katalog "test".
using System; using System.Text; using MySql.Data.MySqlClient; using System.Collections.Generic; namespace connect_to_mysql { class Program { static void Main(string[] args) { try { string connectString = "SERVER=localhost;" + "DATABASE=test;" + "UID=myID;" + "PASSWORD=myPassword;"; MySqlConnection conn = new MySqlConnection(connectString); conn.Open(); Console.WriteLine("connection established"); MySqlCommand sql = conn.CreateCommand(); sql.CommandText = "SELECT * FROM myTable"; MySqlDataReader reader = sql.ExecuteReader(); Console.WriteLine("reading data from table myTable"); while (reader.Read()) { string row = ""; for (int i = 0; i < reader.FieldCount; i++) row += reader.GetValue(i).ToString() + ", "; Console.WriteLine(row); } conn.Close(); Console.WriteLine("connection closed"); } catch (MySqlException ex) { Console.WriteLine(ex.ToString()); } } } }
Im obigen Fall handelt es sich um einen Zugriff auf eine lokale MySQL-Datenbank. Für einen Remotezugriff verfährt man als Client genauso, man braucht nur an Stelle der lokalen Adresse die remote-IP angeben.
string connectString = "SERVER=<ip.adresse.des.servers>;" + "DATABASE=test;" + "UID=myID;" + "PASSWORD=myPassword;";
Im diesem Fall muß jedoch auf dem MySQL-Server der Client noch als Benutzer eingetragen werden, damit MySQL einen Verbindungsaufbau akzeptiert.