Benutzer mit den meisten Antworten
Falsche Syntax in der Nähe von '0'

Frage
-
Hallo ich hätte da ein kleines Problem,
ich habe einen Button, mit dessen Hilfe ich einen neuen Datensatz in eine SQL-Datenbank Tabelle eintragen möchte.
Einer dieser Werte, der in eine Spalte eingetragen wird, ist abhängig von anderen Datensätzen.
Mein Code sieht folgendermaßen aus:protected void btnZaehlerstandSave_Click(object sender, CommandEventArgs e) { string connectionString = ConfigurationManager.ConnectionStrings["dataConnection"].ToString(); SqlConnection conn = new SqlConnection(connectionString); { SqlCommand command2 = new SqlCommand("SELECT COUNT(*) as CountStaende FROM tbl_zaehlerstand WHERE zaehler_id = {0}", conn); conn.Open(); int returnValue = (int)command2.ExecuteScalar(); returnValue = returnValue + 1; SqlCommand command = new SqlCommand("INSERT INTO tbl_zaehlerstand(zaehler_id, ablesung_nr, ablesung_dat, ablesung_stand, ablesung_bem) VALUES (@zaehler_id, @ablesung_nr, @ablesung_dat, @ablesung_stand, @ablesung_bem)", conn); command.Parameters.AddWithValue("@zaehler_id",(string)e.CommandArgument); command.Parameters.AddWithValue("@ablesung_nr",returnValue.ToString()); command.Parameters.AddWithValue("@ablesung_dat",Calender.SelectedDate); command.Parameters.AddWithValue("@ablesung_stand",txtAblesungsstand_Content.Text); command.Parameters.AddWithValue("@ablesung_bem",txtBemerkung_Content.Text); command.ExecuteNonQuery(); conn.Close();
die @zaehler_id hat der Button zuvor übergeben bekommen. @ablesung_dat, @ablesung_stand, @ablesung_bem werden eingetragen. @ablesung_nr soll er bekommen indem er durchzählt wieviele Zählerstände bereits unter der Zähler_id zu finden sind dies +1 setzt.
Er stört sich jedoch an:
int returnValue = (int)command2.ExecuteScalar();
Mit folgender Fehlermeldung:
Falsche Syntax in der Nähe von '0'
An diesem Zähler sind bereits 9 Stände hinterlegt, demnach müsste er eine 10 herausgeben.
Hilfe, Hilfe :D
Antworten
-
Das ist ja nun ein komplexes Objekt, das kannst Du nicht direkt mit einem skalaren Wert in der Datenbank vergleichen; mach es doch genau so wie beim dem INSERT SQL Command, wo Du mit Parametern arbeitest, was auch die richtige Weise ist.
command.Parameters.AddWithValue("@zaehler_id",(string)e.CommandArgument);
Olaf Helper
[ Blog] [ Xing] [ MVP]- Als Antwort vorgeschlagen Elmar BoyeEditor Dienstag, 25. August 2015 15:27
- Als Antwort markiert Aleksander Chalabashiev Mittwoch, 2. September 2015 11:39
Alle Antworten
-
- Bearbeitet Olaf HelperMVP Dienstag, 25. August 2015 10:09
-
Das ist ja nun ein komplexes Objekt, das kannst Du nicht direkt mit einem skalaren Wert in der Datenbank vergleichen; mach es doch genau so wie beim dem INSERT SQL Command, wo Du mit Parametern arbeitest, was auch die richtige Weise ist.
command.Parameters.AddWithValue("@zaehler_id",(string)e.CommandArgument);
Olaf Helper
[ Blog] [ Xing] [ MVP]- Als Antwort vorgeschlagen Elmar BoyeEditor Dienstag, 25. August 2015 15:27
- Als Antwort markiert Aleksander Chalabashiev Mittwoch, 2. September 2015 11:39