[.NET] [C#] How-To MySql Datenbank auslesen

Dieses Thema im Forum "Programmier Tutorials" wurde erstellt von SchOudeBläS, 7. Oktober 2008 .

  1. 7. Oktober 2008
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    [C#] How-To MySql Datenbank auslesen

    Hallo,

    in diesem Tutorial wirst du lernen, wie du auf eine MySql Database zugreifen kannst und deren Tabellen ausliest.

    1. Zuerst erstelle ein neues Project mit zB. dem Namen MySQL Connector

    2. Füge eine Form hinzu:
    Bild
    der graue kasten ist ein DataGrid, falls man das nicht sofort erkennen kann

    3. Nun legen wir einen Verweis auf diese Library: Download: MySql.Data.dll | xup.in

    4. Jetzt kümmern wir uns um das Dis-/-Connecten:

    Als erstes müssen wir eine Klassenobject aus der Library erstellen.
    Code:
    private readonly MySql ad = new MySql();
    Jetzt kümmern wir uns um die 2 Buttons:

    Auf connecten doppelklicken und diesen code einfügen:
    Code:
    string user = "", host = "", database = "", passwort = "";
    
     user = textBoxUsername.Text;
     host = textBoxHost.Text;
     database = textBoxDatabase.Text;
     passwort = textBoxPasswort.Text;
    
     if(user.Length != 0 &&
     host.Length !=0 &&
     database.Length != 0 ) //wenn, alle daten nicht leer sind
     {
     buttonRefresh.Enabled = true; //Der refresh Button wird aktiviert
    
     //Dem MySQL object ad werden die datenübergeben
     ad.DbUserId = user;
     ad.DbHost = host;
     ad.DbDatabase = database;
     ad.DbPassword = passwort;
    
     ad.Connect(); //und connecten
    
     try
     {
     UpdateTableList(); //es wird versucht die tabellen aus der datenbank abzurufen
     }
     catch (Exception ex)
     {
     MessageBox.Show(ex.ToString()); //falls das nicht möglich ist wird die Fehlermeldung angezeigt
     }
    
     }
     else
     {
     MessageBox.Show("Bitte Angaben überprüfen", "Error"); //wenn, die Daten nicht vollständig sind wird hier eine Message Box angezeigt
     }
    UpdateTableList-Funktion:
    Code:
    private void UpdateTableList()
     {
     listBoxTables.Items.Clear(); //Listbox leermachen
    
     DataTable data = ad.Query("SHOW TABLES"); //Mit diesem SQL befehl werden alle Tabellen abgefragt
    
     foreach (DataRow dr in data.Rows) //jede DataRow also Tabelle wird zur Listbox hinzugefügt
     {
     listBoxTables.Items.Add(dr.ItemArray[0].ToString());
     }
     }
    Der Disconnect-Button:
    Code:
    buttonRefresh.Enabled = false; //Refresh button deaktiviern, sodass kein error enstehen kann, falls darauf geklickt wird, wenn keine verbindung besteht
    
     ad.Disconnect(); //disconnecten
    
     //Clearen
     dataGridViewAusgabe.DataSource = new DataTable();
     listBoxTables.Items.Clear();
    
     MessageBox.Show("Disconnected!", "Information"); //Dem User bescheidsagen, dass die Verbindung beendet wurde
    5. Jetzt brauchen wir nur noch einen Eventhandler, der uns den Inhalt der Tabelle anzeigt.

    dafür diesen code unter den InitializeComponent(); einfügen:

    Code:
    listBoxTables.SelectedIndexChanged += listBoxTables_SelectedIndexChanged;
    Nun der Code zu der Funktion die ausgeführt wird, wenn ein Item in der listbox ausgewählt wird:

    Code:
     void listBoxTables_SelectedIndexChanged(object sender, EventArgs e)
    {
    string selectedItem = listBoxTables.SelectedItem.ToString();
    try
     {
     DataTable data = ad.Query("SELECT * FROM " + selectedItem); //den inhalt der selectierten tabelle abrufen und in eine DataTable schreiben
    
     dataGridViewAusgabe.DataSource = data; //Die Quelle des DataGrid nun auf die heruntergeladene DataTable setzen
     }
     catch (Exception)
     {
    
     }
    }
    6. Als letztes fehlt nur noch der Refresh Button, der die Tabellen neu abfragt:
    Code:
    listBoxTables.Items.Clear();
    
     DataTable data = ad.Query("SHOW TABLES");
    
     foreach (DataRow dr in data.Rows)
     {
     listBoxTables.Items.Add(dr.ItemArray[0].ToString());
     }
    Fertig!

    Ich hoffe du konntest mir folgen. Bei fragen PM.

    BW wäre nice^^
     
  2. 16. Juli 2017
    Guten Tag,
    die nachfolgende Funktion, funktioniert bei mir nicht.
    Code:
    private readonly MySql ad = new MySql();
    Ich bekommen ständig die Fehlermeldung:
    ""MySql" ist "Namespace", wir aber wie "Typ" verwendet."

    Ich benötige deshalb hilfe und hoffe, dass sie mir helfen können.

    Mit freundlichen Grüßen
    NGxD TV
     
  3. 16. Juli 2017
    Ich vermute, dass du die MySql.Data.dll nicht richtig eingebunden hast.

    Am besten du installierst die aktuelle Version des Paketes mit NuGet: MySql.Data
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.