2016-09-16 1 views
0

Es gibt eine Textbox genannt tbTodo, die Informationen aus der Datenbank bekommt:Senden Textbox Wert SQL-Datenbank

SELECT `todo` FROM `user` WHERE `username` LIKE '" + _naam + "'"; 

die funktioniert. Das Problem ist jetzt, ich habe keine Idee, wie man die Todo-Liste in der Datenbank aktualisiert: wie man den Textboxwert sendet und den aus der Datenbank überschreibt. Code ich habe bisher (was völlig falsch sein könnte):

db_connection(); 
     MySqlCommand cmdRead = new MySqlCommand(); 
     cmdRead.CommandText = "SELECT `todo` FROM `user` WHERE `username` LIKE '" + _naam + "'"; 
     cmdRead.Connection = connect; 
     MySqlDataReader tdOphalen = cmdRead.ExecuteReader(); 
     if (tdOphalen.Read()) 
     { 
      tbTodo.Text = tdOphalen.GetString(0); 
      connect.Close(); 
      return true; 
     } 
     else 
     { 
      connect.Close(); 
      return false; 
     } 
    } 
+3

Nun, wenn Sie die Datenbank aktualisieren möchten, dann erhalten Sie einen 'UPDATE' Befehl anstelle eines' SELECT' Befehl verwenden müssen ... – David

+2

Und bitte nachschlagen Command.Parameters.AddWithValue(); –

+0

Zunächst einmal: Verwenden Sie solche SQL-Query-Strings NICHT, es sei denn, Sie möchten, dass Benutzer [SQL-Injektion] (https://en.wikipedia.org/wiki/SQL_injection) durchführen und Ihre Datenbank beschädigen. Verwenden Sie eine [vorbereitete Anweisung] (https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.prepare (v = vs.110) .aspx). Zweitens, was versuchen Sie in der Datenbank zu aktualisieren? Ich verstehe, dass es eine Todo-Liste ist, aber welche Spalten versuchen Sie zu aktualisieren und mit welchen Informationen? – Bwolfing

Antwort

1

Syntax von UPDATE Befehl

UPDATE table_name 
SET column1=value1,column2=value2,... 
WHERE some_column=some_value; 

In Ihrem Fall ist, würde es so etwas wie

"UPDATE `user` set `todo` = '" + tbTodo.Text + "' FROM `user` WHERE `username` LIKE '" + _naam + "'"; 

soll es sein gut für einen ersten Versuch und erfahren Sie, wie Update-Werte auf einer Datenbank.

Nächste Schritte lernen, wie prepared statement zu verwenden;)

+0

Es funktioniert irgendwie? Ich vermute? Also habe ich Ihren Code in meinen Code kopiert und erhalte einen Fehler in der Zeile: MySqlDataReader tdOphalen = cmdRead.ExecuteReader(); was sagt: Zusätzliche Information: Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das zu Ihrer MariaDB-Server-Version für die richtige Syntax in der Nähe von 'FROM 'Benutzer' WHERE 'Benutzername' entspricht LIKE' '' bei Zeile 1 Idee, wie zu beheben? BTW, Entschuldigung für meinen Mangel an Wissen, da ich neu bin – Tjazz

+0

Sie verwenden 'ExecuteReader', die schreibgeschützte Operationen erlaubt. Verwenden Sie stattdessen 'ExecuteNonQuery'. – Bwolfing