"Tool" mit MySQL gibt Fehler

03/02/2018 21:54 Reaper of Souls#1
Servus,

aktuell bin ich dabei dran in meiner Freizeit ein Multifunktionstool für meine Firma zu erstellen. Bisher funktioniert auch jede Funktion außer eine und diese ist:

In einer MySQL Datenbank von einem Table die Werte Updaten oder einen neuen anlegen. Das ist eine Anbietertabelle d.H. entweder es soll einen neuen Anbieter anlegen und Anbieter aktualisieren falls sich etwas ändert.
Das anzeige was von meinen 3 Funktionen funktioniert ist die Lösch Funktion von Werten.

Wie die Funktion aufgebaut ist: [Only registered and activated users can see links. Click Here To Register...]


Button Hinzufügen:

Code:
        private void button1_Click(object sender, EventArgs e)
        {
            string insertQuery = "INSERT INTO DATENBANK.TABLENAME(Anbieter,Domain,Login,Passwort,VO-Nr,Notiz) VALUES('" + textBox2.Text + "','" + textBox3.Text + "'," + textBox4.Text + "'," + textBox5.Text + "'," + textBox6.Text + "'," + textBox6.Text + ")";
            executeQuery(insertQuery);
Button Aktualisieren:

Code:
        private void button2_Click(object sender, EventArgs e)
        {


            string updateQuery = "UPDATE DATENBANK.TABLENAME SET Anbieter='" + textBox2.Text + "', Domain='" + textBox3.Text + "', Login=" + textBox4.Text + "', Passwort='" + textBox5.Text + "', VO-Nr='" + textBox6.Text + "', Notiz='" + textBox7.Text + "WHERE id = " + textBox1.Text;
            executeQuery(updateQuery);

Button Löschen (die einzige Funktion wo geht):

Code:
       private void button3_Click(object sender, EventArgs e)
        {
            string deleteQuery = "DELETE FROM DATENBANK.TABLENAME WHERE id = " + textBox1.Text;
            executeQuery(deleteQuery);
Folgende Fehlermeldung bekomme ich bei Button 1 & 2:

Code:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right sytax to use near '-Nr,Notiz) VALUES('HD+ Händlerportal','https://DIESEITE/DIESEITE/blabalalala' at line 1
Ich wäre echt dankbar wenn mir jemand weiterhelfen könnte :)
03/02/2018 22:03 iMostLiked#2
Schau dir mal den SQL Befehl genauer an. Da fehlen einfache Anführungszeichen.
Quote:
INSERT INTO DATENBANK.TABLENAME(Anbieter,Domain,Login,Passwort ,VO-Nr,Notiz)
VALUES('" + textBox2.Text + "','" + textBox3.Text + "'," + textBox4.Text + "'," + textBox5.Text + "'," + textBox6.Text + "'," + textBox6.Text + ")
->

Quote:
INSERT INTO DATENBANK.TABLENAME(Anbieter,Domain,Login,Passwort ,VO-Nr,Notiz)
VALUES('" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "','" + textBox6.Text + "','" + textBox6.Text + "')
03/02/2018 22:14 ZKDev#3
Schau dir lieber mal die setString() Funktion an.

Code:
"UPDATE DATENBANK.TABLENAME SET Anbieter=?"
setString(1, textBox2.getText());
Könntest dann mit dem PreparedStatement arbeiten.
03/02/2018 22:16 florian0#4
Und damit deine Datenbank nicht nach 20 Sekunden die Füße hochklappt weil der unbedachte Mitarbeiter einen falschen Text eingeben hat, nimm doch einfach gleich Prepared Statements.
[Only registered and activated users can see links. Click Here To Register...]
Edit: Ach man, zu langsam.
03/02/2018 22:49 Reaper of Souls#5
Danke sind meistens halt die kleinen Dinge ^^ und die Tipps schaue ich mir gerne mal an.

Hab euch 40 e*gold gespendet für die Hilfe und Tipps
03/03/2018 08:55 Serraniel#6
Bin mir gerade nicht sicher wie MySQL sich da bei Update und Insert Statements Verhält, aber generell sind Namen wie "VO-Nr" zusätzlich kritisch, da ein Minus auch eine Subtraktion von VO und Nr sein könnte. Das Problem hatten wir zum Beispiel zuletzt neulich auf der Arbeit als wir mit FireDac die Anbindung von unserem internen SupportTool fürs Jira refresht haben.

Wenn du Zeit und Bock hast kannst du dir für .Net auch mal das Entity Framework anschauen: [Only registered and activated users can see links. Click Here To Register...]
03/03/2018 23:07 ZKDev#7
Quote:
Originally Posted by Reaper of Souls View Post
Danke sind meistens halt die kleinen Dinge ^^ und die Tipps schaue ich mir gerne mal an.

Hab euch 40 e*gold gespendet für die Hilfe und Tipps

How generous, wäre nicht notwendig gewesen.
Kannste mich gerne auch auf Discord adden (Zeekay#8909), falls du mal Fragen hast.