Laden...

Rowversion in String(System.byte) und dann direkt in SQL-Statement prüfen

Erstellt von Martinar vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.698 Views
M
Martinar Themenstarter:in
55 Beiträge seit 2010
vor 12 Jahren
Rowversion in String(System.byte) und dann direkt in SQL-Statement prüfen

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();
  • so hole ich den Wert aus dem SELECT-Befehl
    und ja es muss ein string sein.

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

F
10.010 Beiträge seit 2004
vor 12 Jahren

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.

M
Martinar Themenstarter:in
55 Beiträge seit 2010
vor 12 Jahren

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.

M
Martinar Themenstarter:in
55 Beiträge seit 2010
vor 12 Jahren

Vielen Dank FZelle!!!
Es funktioniert jetzt.

2.891 Beiträge seit 2004
vor 12 Jahren

Es funktioniert jetzt.

Und wie/warum? Siehe auch [Hinweis] Wie poste ich richtig? Punkt 9.

M
Martinar Themenstarter:in
55 Beiträge seit 2010
vor 12 Jahren

Oh sorry,

habe meine List von List<string> nach List<object> umgestellt und nun benutze ich Paramter.

Vielen Dank!!!