Autor Beitrag
Ledersocke
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Sa 10.01.09 20:24 
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:

ausblenden 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 Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: 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

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: 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!

ausblenden 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