[C#] C# mit mysql Datenbank verbinden

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Dani002, 16. August 2010 .

  1. 16. August 2010
    Zuletzt von einem Moderator bearbeitet: 15. April 2017
    C# mit mysql Datenbank verbinden

    Hallo,

    nutze Visual Studio 2010 und möchte ein Programm mit einer mysql Datenbank verbinden.

    Habe das Tutorial [.NET] [C#] How-To MySql Datenbank auslesen - RR:Board einmal nachgebastelt, aber trotzdem komme ich an einem Punkt nicht weiter.

    Beim erstellen eines neuen Objektes

    Code:
    private readonly MySql ad = new MySql();
    meint er folgendes:

    Code:
    "MySql" ist ein(e) "Namespace", wird aber wie ein(e) "Typ" verwendet. 
    Was mache ich falsch? Die dll ist im Verweis, benutzt wird diese Bib auch (using mysql.data).

    Vielen dank.
     
  2. 16. August 2010
    AW: C# mit mysql Datenbank verbinden

    Entweder das Tutorial wurde gar nicht wirklich durchgearbeitet, oder er nutzt eine andere .dll.

    Am besten machst du es so, dass du am anfang folgende using Direktive benutzt:

    Code:
    using MySql.Data.MySqlClient;
    Dann kannst du mit
    Code:
    private MySqlConnection conn;
    arbeiten.

    Hier ist ein viel besseres Tutorial:
    Verbindung zum MySQL-Server mit C#

    greez
     
  3. 17. August 2010
    AW: C# mit mysql Datenbank verbinden

    Hallo,
    vielen dank. Das Tutorial hat mir wirklich weitergeholfen. Ich habe jetzt die Datenbank lesen und ausgeben können. Nun möchte ich das ganze aber Übersichtlich in ein Datagrid ausgeben.

    Vom ersten Tutorial habe ich folgendes mir genauer angeschaut:

    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());
     }
     }

    Da das ja mit der dll nicht funktioniert, weiss ich nicht genau wie ich die Werte in ein Datagrid einfügen kann.

    Code:
    DataTable data = conn....("SELECT * FROM `Bestellungen` WHERE 1");
    Danke schön.
     
  4. 17. August 2010
    AW: C# mit mysql Datenbank verbinden

    Code:
    String sql = "SELECT * FROM tableName";
    DataTable datatable= new DataTable();
    SqlDataAdapter dataAdapter = new SqlDataAdapter(sql, connection);
    dataAdapter.Fill(datatable);
    
    dataGridView.DataSource = datatable;
    dataGridView.Show();
    
    gruß
     
  5. 17. August 2010
    AW: C# mit mysql Datenbank verbinden

    Danke schön, aber das haut nicht ganz hin, er meint bei der Zeile:

    Code:
    SqlDataAdapter dataAdapter = new SqlDataAdapter(sql, connection);
    
    folgenden Fehler:

    Code:
    Fehler 2 Die beste Übereinstimmung für die überladene System.Data.SqlClient.SqlDataAdapter.SqlDataAdapter(string, System.Data.SqlClient.SqlConnection)-Methode hat einige ungültige Argumente.
    Dann hab ich "connection" mal gegen "myConnectionString" getauscht, fehler war weg - jedoch schmiert das Programm beim starten ab.

    Hier der komplette code ohne die Veränderung:

    Code:
    namespace WindowsFormsApplication1
    {
     public partial class Form1 : Form
     {
     public Form1()
     {
     InitializeComponent();
     }
    
     public void button1_Click(object sender, EventArgs e)
     {
     string myConnectionString = "SERVER=EDIT;" +
     "DATABASE=EDIT;" +
     "UID=EDIT;" +
     "PASSWORD=EDIT;";
    
     MySqlConnection connection = new MySqlConnection(myConnectionString);
    
     String sql = "SELECT * FROM Bestellungen";
     DataTable datatable = new DataTable();
     SqlDataAdapter dataAdapter = new SqlDataAdapter(sql, connection); // Hier der Fehler
     dataAdapter.Fill(datatable);
    
     dataGridViewAusgabe.DataSource = datatable;
     dataGridViewAusgabe.Show();
    
     }
     }
    }
    
     
  6. 17. August 2010
    AW: C# mit mysql Datenbank verbinden

    probier mal anstatt MySqlConnection die SqlConnection klasse, also:

    SqlConnection connection = new SqlConnection(myConnectionString);
     
  7. 17. August 2010
    AW: C# mit mysql Datenbank verbinden

    Dann zeigt er kein Fehler an, jedoch schmiert das Programm ab.
    Dann habe ich eine Exception benutzt und die Fehlermeldung lautet er kann nicht zum Server verbinden.

    Habe es erneut ohne datagrid versucht und mit der MySqlConnection Klasse, da erhält er dann eine Verbindung.

    Ist die SqlConnection eigentlich für mysql oder für die dbms von microsoft?

    Komme einfach nicht weiter.
     
  8. 17. August 2010
    AW: C# mit mysql Datenbank verbinden

    Beginners guide to accessing SQL Server through C# - CodeProject
     
  9. 18. August 2010
    AW: C# mit mysql Datenbank verbinden

    Hallo,
    habs hinbekommen, wenns jemanden interessiert, hier ist nochmal der code:

    Code:
     string myConnectionString = "Data Source=XXX;" +
     "DATABASE=XXX;" +
     "UID=XXX;" +
     "PASSWORD=XXX;";
    
     MySqlConnection connection = new MySqlConnection(myConnectionString);
    
     String sql = "SELECT * FROM `Bestellungen` WHERE 1";
     DataTable datatable = new DataTable();
     MySqlDataAdapter dataAdapter = new MySqlDataAdapter(sql, connection); //Hier war der Fehler, habe ein Objekt der Klasse SqlDataAdapter und nicht der Klasse MySqlDataAdapter erstellt gehabt, kleinigkeit mit viel wirkung :)
     dataAdapter.Fill(datatable);
    
     dataGridViewAusgabe.DataSource = datatable;
     dataGridViewAusgabe.Show();

    Hallo nochmal,


    weiss jemand wie man das möglichst einfach regelt Daten vom datagrid wieder in die Datenbank zu laden? Update / Insert?


    Mfg
     
  10. 4. September 2010
    AW: C# mit mysql Datenbank verbinden

    also grundsätzlich funkioniert das genauso wie, wenn du ins DataGrid was reinschreibst
    statt sql-String: "select...." schreibst du einfach "update tabelle...", dabei musst du aber die neuen werte aus dem Grid ansteuern und als parameter in diesem sql-string übergeben.
     
  11. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.