Laden...

Wie kann ich meine C# Anwendung an eine MySQL Datenbank verbinden?

Erstellt von hauchian vor 3 Jahren Letzter Beitrag vor 3 Jahren 1.255 Views
H
hauchian Themenstarter:in
1 Beiträge seit 2020
vor 3 Jahren
Wie kann ich meine C# Anwendung an eine MySQL Datenbank verbinden?

Hallo zusammen,

bekomme die Mitteilung woran könnte das liegen? Datenbank würde schon mit Mysql verbunden
Vielen Dank im voraus 😃
Hab leider wenig Ahnung mit C#


string connection = "datasource=localhost; port=3306;username=root;password=root;";
  MySqlCommand cmd = new MySqlCommand("insert into Kontaktdaten(Teamnamen, Vorname, Nachname, Ort, PLZ, Straße, Email) values('" + this.Teamnamen1.Text + "', '" + this.Vorname1.Text + "','" + this.Nachname1.Text + "','" + this.Ort1.Text + "','" + this.PLZ1.Text + "','" + this.Straße1.Text + "','" + this.Email1.Text + "');");
  MySqlConnection dataBase = new MySqlConnection(connection);
  
  // MySqlCommand cmd = new MySqlCommand(dataBase);
  // MySqlParameter param = new MySqlParameter("?", Teamnamen1);
  // cmd.Parameters.Add(param);
  
  MySqlDataReader r;
  
  try
  {
    conDataBase.Open();
    r = cmd.ExecuteReader();
    MessageBox.Show("erfolgreich");
  
  cmd.ExecuteNonQuery();
  }
  catch (Exception ex)
  {
    MessageBox.Show(ex.Message);
  }
  finally
  {
    conDataBase.Close();
  }
}
2.223 Beiträge seit 2005
vor 3 Jahren

Hallo hauchian,

so wie es aktuell aussieht kennt dein MySqlCommand die Connection nicht

der Konstruktor vom MySqlCommand hat eine Überladung mit der Query und einer Connection
das sollte zumindest schonmal ausreichen das dein Code funktioniert.

des weiteren, versuche bitte so wie du es ja auch schon angedeutet hast, bei den SQL Queries auf den Parameter Weg zu setzen anstatt einzelne Strings zu Konkatenieren , da du damit unter anderem so etwas wie SQL Injection verhindern kannst.

Bei einem Insert nutzt man eigentlich nicht die Methode ExecuteReader, da diese eher für Select Queries benutzt wird, versuche es lieber mit ExecuteNonQuery()

Bitte denke zukünftig daran, beim Quellcode auch die Code Tags zu benutzen
das Hilft beim lesen ungemein.

16.827 Beiträge seit 2008
vor 3 Jahren

Dein Connectionstring ist ungültig.
So wird er für MySQL nie funktionieren -> https://www.connectionstrings.com/mysql/

Ansonsten ist Dein Command genau so aufgebaut, wie man es NICHT tun sollte.
[Artikelserie] SQL: Parameter von Befehlen

Was noch auffällt:

  • Deine Verbindung heisst database aber Du arbeitest mit conDatabase.
    Das ist Dir bewusst, oder hast den Überblick verloren? 😉
  • Dein Command hat keine Verbindung zugeordnet (was vermutlich (neben den anderen Fehlern) die Exception auslöst)