Leeres Datenfeld ändern -> nicht möglich!
karsten
- asp.net
0 Rouven0 Stefan Falz0 Karsten
Hallo zusammen,
habe ein kleines Problem mit dem Ändern eines Feldes in einer Datenbank. Und zwar kann es vorkommen das beim Anlegen eines Datensatzes ein oder mehere Felder nicht genutzt werden.
Problem:
Wenn ich jetzt ein RS öffne und ein leeres Datenfeld versuche zu ändern passiert nichts, rein gar nichts! Hier ganz simple mein qtext:
If Not Request("tele1") = rsupdateuser(11) Then
rsupdateuser(11) = Request("tele1")
End If
Es muss doch eine Möglichkeit geben nachträglich hier ein Wert zu speichern. Ohne beim anlegen ein Hilfszeichen, wie "-" oder " " zu vergeben.
Vielen Dank schon mal für eure Hilfe.
karsten
Hi,
If Not Request("tele1") = rsupdateuser(11) Then
rsupdateuser(11) = Request("tele1")
End If
Vorschlag zur Güte: Ich glaube, es gab da in VB(-Script) mal so eine Konvention, das alle Vergleiche mit NULL auch NULL ergeben und damit nicht true und nicht false sind. Wenn du also rsupdateuser(11) initial in der DB nicht befüllt hattest, dann ergibt dieser Vergleich nicht true, auch wenn man davon ausgehen könnte, das die Werte ja durchaus unterschiedlich sind. Ein möglicher Umbau wäre:
if (IsNull(rsupdateuser(11)) And request("tele1") <> "" then
rsupdateuser(11) = Request("tele1")
end if
If Not Request("tele1") = rsupdateuser(11) Then
rsupdateuser(11) = Request("tele1")
End If
Ist etwas ineffizient, könnte aber das gewünschte Ergebnis haben.
MfG
Rouven
Hallo,
If Not Request("tele1") = rsupdateuser(11) Then
rsupdateuser(11) = Request("tele1")
End If
Generell empfiehlt sich eigentlich die Verwendung der entsprechenden
DML-Statements zur Aktualisierung einer Datenbank. Also bspw.:
INSERT INTO tabelle (<feld1>,<feld2>) VALUES (<wert1>,'<wert2>')
UPDATE <tabelle> SET feld2 = 'wert2' WHERE feld1 = wert1
DELETE FROM tabelle WHERE feld1 = wert1
Aber wenn du unbedingt ein Recordset verwenden willst, solltest du
u.a. beachten, dass "" <> NULL ist (einfach mal Googlen :) und falls
du Memofelder verwendest, siehe http://www.aspfaq.de/index.asp?FID=96&ELE=8359
(Trifft ggfs. auch hier zu)
Tschau, Stefan
Vielen Dank euch beiden,
Habt mir beide sehr geholfen(Beides läuft wie sau).
Nochmals Besten Dank
Karsten