Ledersocke - Sa 10.01.09 20:24
Titel: Update fügt falschen wert ein?
Guten Tag,
es ist zwar blöd das ich meinen ersten beitrag direkt als Frage schreiben muss aber ich hoffe trotzdem auf konstruktive antworten :)
und zwar programmiere ich zurzeit mit ein paar freunden ein Browsergame und die server scripts laufen über c#
nun wollte ich eine Zeichenkette(string) mithilfe des UPDATE-Befehls in eine Datenbank schreiben,
und in dieser Variable ist auch definitiv ein wert.
doch in die tabelle der datenbank wird nicht der wert sondern nur eine 0 eingefügt.
habe auch schon gegoogelt aber nix gefunden...
hier ist mal kurz der befehl den ich verwende:
C#-Quelltext
1: 2: 3: 4:
| dbcmd.CommandText = "UPDATE doerfer SET username = '"+spielername_angreifer+"' AND zustimmung = 100 WHERE dorfid LIKE '" + opfer + "'"; dbconnect.Open(); dbcmd.ExecuteNonQuery(); dbcmd.Connection.Close(); |
Ledersocke - Sa 10.01.09 22:02
ok ich habe das problem bereits gelöst es tut mir leid,
dass ich zu vorschnell hier gefragt habe
Statt dem AND musste ein komma in den befehl
MFG Ledersocke
C#-Quelltext
1: 2: 3: 4:
| dbcmd.CommandText = "UPDATE doerfer SET username = '"+spielername_angreifer+"', zustimmung = 100 WHERE dorfid LIKE '" + opfer + "'"; dbconnect.Open(); dbcmd.ExecuteNonQuery(); dbcmd.Connection.Close(); |
JüTho - So 11.01.09 12:32
Hallo und noch :welcome:
Auch wenn Du das konkrete Problem schon gefunden hast, möchte ich dringend empfehlen:
Benutze für variable Inhalte eines SQL-Befehls niemals String-Verknüpfung, sondern immer DbParameter!
C#-Quelltext
1: 2: 3: 4: 5: 6:
| dbcmd.CommandText = "UPDATE doerfer SET username = @Angreifer, " + "zustimmung = @Wert " + "WHERE dorfid LIKE @Opfer;" dbcmd.Parameters.AddWithValue("@Angreifer", spielername_angreifer); dbcmd.Parameters.AddWithValue("@Wert", 100); dbcmd.Parameters.AddWithValue("@Opfer", opfer + "%"); |
Wie genau die Parameter deklariert werden müssen (@ oder ? oder :, mit oder ohne Namen), hängt vom DbProvider ab.
Gruß Jürgen