Verfasst von: bletra | 20. Juni 2011

Zugriff auf eine MySQL-Datenbank mittels C#

Autoren: 2 Studierende der Veranstaltung .Net Framework und C#

Für kleine Programme und vor allem auch für Webanwendungen wie Silverlight ist es oft ausreichend und sinnvoll, eine MySQL-Datenbank anstatt eines großen MS-SQL Servers zu verwenden. Außerdem haben viele PHP- und Java-Entwickler bereits Erfahrung mit MySQL und müssen sich nicht in ein neues DBMS einarbeiten. Da die Verwendung von MySQL im .NET Framework standardmäßig nicht unterstützt wird, kann es bei der Einrichtung zu ein paar kleinen Problemen kommen. Aus diesem Grund erklären wir im Folgenden kurz und knapp wie man aus seiner C# Anwendung auf eine MySQL-Datenbank zugreifen kann.

  1. Zunächst muss man den ADO.NET Treiber für MySQL herunterladen. Dieser ist kostenlos bei MySQL unter folgender Adresse zu erhalten: http://dev.mysql.com/downloads/connector/net/
  2. Unter Windows am besten die Windows Installer Version herunterladen. Bei der Installation ist nichts Weiteres zu Beachten und kann somit einfach „durchgeklickt“ werden.
  3. Starten Sie Visual Studio (hier 2010) und legen Sie Ihr gewünschtes Projekt an.
  4. Klicken Sie im Solution Explorer mit der rechten Maustaste auf „References“ (in einer Silverlight-Anwendung natürlich im Server-Teil des Projekts) und wählen „Add Reference…“ aus.
  5. Öffnen Sie den Tab „Browse“ und wechseln in das Verzeichnis, in das Sie den MySQL-Connector installiert haben und wählen Sie im Unterverzeichnis „Assemblies\v2.0“ die Datei MySql.Data aus.
  6.  Im Folgenden ein Ausschnitt einer Klasse der zeigt, wie man nach Durchführung der Punkte 1 bis 5 auf eine MySQL-Datenbank zugreifen kann. Hier am Beispiel eines Webservices einer Silverlight-Applikation.
public class Service
{
  private MySqlConnection db;
  public Service()
  {
    db = new MySqlConnection("SERVER=;DATABASE=;UID=;PASSWORD=;");
    db.Open();
  }

  [OperationContract]
  public Boolean Login(String email, String passwd) {
  byte[] data = Encoding.Default.GetBytes(passwd);
  using (MD5 algorithm = MD5.Create())
  {
    String passwdHashed = BitConverter.ToString(algorithm.ComputeHash(data));

    MySqlCommand command = db.CreateCommand();
    command.CommandText = "SELECT vvorname, nachname FROM mitglied WHERE email='" + email + "' AND passwort='" + passwdHashed + "' AND rechte='admin'";

    using (MySqlDataReader reader = command.ExecuteReader())
    {

      while (reader.Read())
      {
        // hier kann man nun auf die selektieren Spalten zugreifen
        // z.B: reader[`vorname`]
      }

      reader.Close();

…
    }
  }
}

Quelle:
http://code-inside.de/blog/2007/11/27/howto-datenbankverbindungen-net-mysql/

Advertisements

Responses

  1. Schöne, klare Einweisung in die Verwendung von MySQL. Anstelle des zusammengesetzten SQL-Strings wäre die Verwendung eines parametrisierten Commands günstiger. Die Klasse Service sollte zusätzlich IDisposable implementieren, um die DB-Verbindung auch im Fehlerfall zu schließen.


Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

Kategorien

%d Bloggern gefällt das: