verwendetes Datenbanksystem: <SQL Server Express 2008>
Hallo liebe Community,
ich hole mir eine Datensatz inkl. rowversion aus der Datenbank heraus.
Die RowVersion wird in einem string gespeichert.
Nun ist es ein String, der ein System.Byte erhält, da ja die rowversion ein byte[8] ist.
Nun möchte ich, bei einem UPDATE prüfen ob sich die Rowversion geändert hat.
sRowId= Werte[0].ToString();
Und so sieht mein UPDATE-Befehl aus
UPDATE TABLE SET NAME =" + sName + " WHERE WERNR = 1 AND ROWID = " +sRowId
Ja,eigentlich müsste ich Paramter verwenden um so SQL-Injections vorzubeugen,aber ich will es erstmal so lösen.
Habt ihr da eine Idee, wie die RowID wieder richtig konvertieren muss,dass das UPDATE-Befehl den Wert wieder richtig wahrnimmt?
Achja ..."ROWID = Convert(rowversion,' " + sRowid + "')" => geht leider nicht, dann funktioniert die Query, aber es sind 0 Zeilen von dem Befehl betroffen.
Wäre super,wenn Jemand eine Idee dazu hat.
Gruß,
Martina
Die RowVersion wird in einem string gespeichert.
Nun ist es ein String, der ein System.Byte erhält, da ja die rowversion ein byte[8] ist.
Und warum machst Du so einen Blödsinn?
Du machst hier ständig so etwas unsinniges.
Mach es vernünftig, lerne die Grundlagen und versuch nicht ständig so einen Mist hinzufrickeln.
Eine RowVersion gehört in ein byte[] nicht in einen String, dann kannst du es auch einfach vergleichen, wenn du [Artikelserie] Parameter von SQL Befehlen benutzt.
Hör endlich auf unsere Zeit zu vergeuden und lerne die Grundlagen.
Ahhhhhhhh ok, vielen Dank für deine Antwort.
Habe nun die Rowversion in einen byte gepackt und übergebe es nun als Parameter:
WHERE ROWID=@ROWID,
aber trotzdem geht es leider nicht.
Vielen Dank FZelle!!!
Es funktioniert jetzt.
Es funktioniert jetzt.
Und wie/warum? Siehe auch [Hinweis] Wie poste ich richtig? Punkt 9.
Oh sorry,
habe meine List von List<string> nach List<object> umgestellt und nun benutze ich Paramter.
Vielen Dank!!!