Vergleich Datenbankfeldes und Variable
Desert
- asp.net
Hallo
Ich schreibe mir gerade ein ASP Script zum Administrieren (Hinzufügen, Löschen, Ändern) von Datenbaken.
Ich habe folgendes Problem bei der Löschen Prozedur. Er soll vergleichen ob die ID aus der Datenbank die Selbe ist die der Benutzer eingegeben hat, bzw. ob Sie vorhanden ist. Aber aus irgendeinem grund ignoriert er diese abfrage.
Ausgabe:
2Sind Sie sicher das sie
id name vorname emaillöschen wollen?
<ja><nein>?=?5
Fehler: Entweder BOF oder EOF ist True, oder der aktuelle Datensatz wurde gelöscht. Die
angeforderte Operation benötigt einen aktuellen Datensatz.
Der Code:
---------------------------------------------------------------------
sub loeschen
if todo = 2 then
%>Sind Sie sicher das sie<br><%
call Verbindung_aufbauen
' Daten erfragen
on error resume next
sql = "SELECT * FROM "&db_table&" WHERE id = "&nummer
set rs = db.Execute(sql)
if not err.Number=0 then
%><p><i><strong>Fehler: Möglicherweise kein Datensatz mit der ID:<%=nummer%> vorhanden oder sie haben keine ID eingegeben.
<form method="post">
<input id="sav" type="hidden" name="Ttodo" value="0">
<INPUT src="index.asp" TYPE="submit" VALUE="weiter" NAME="action">
</form><br>
Solten ihre angaben korekt sein wenden sie sich an die Pracktikanten die das Intranet betreuen. Bitte geben sie diese ASP meldung an</strong><br>
<%=err.Description%></i></p><%
Response.End
else
if rs("id") = nummer then%>
<TABLE border="1"><tr><%
for each feld in rs.fields
%>
<td><%=feld.name%></td>
<%
next
%></tr><%
counter = 0
do until rs.EOF
%><TR><%
for each feld in rs.fields
%><td><%=rs(feld.name)%></td><%
next
%></TR><%
counter = counter + 1
rs.MoveNext
loop
%></TABLE>
<br>löschen wollen?<br>
<form method="post">
<input id="sav" type="hidden" name="Ttodo" value="20">
<INPUT src="index.asp" TYPE="submit" VALUE="Ja" NAME="action">
<INPUT type="button" value="Nein" onClick="window.history.back()">
</form>
<%=rs("id")%>?=?<%=nummer%>
<% else%>
<p><i><strong>Fehler: Möglicherweise kein Datensatz mit der ID:<%=nummer%> vorhanden.
<form method="post">
<input id="sav" type="hidden" name="Ttodo" value="0">
<INPUT src="index.asp" TYPE="submit" VALUE="weiter" NAME="action">
</form>
<%
end if
end if
call Verbindung_abbauen
end if
if todo = 20 then
'löschen ausfüren
call Verbindung_aufbauen
sql = "DELETE FROM "&db_table&" WHERE id = "&nummer
set rs = db.Execute(sql)
call Verbindung_abbauen
end if
end sub
---------------------------------------------------------------------
P.S. nur zum Verstennis die todo Variable list er aus einem unsichtbaren Formularfeld.
Danke im voraus Desert
Hallo,
Ich habe folgendes Problem bei der Löschen Prozedur. Er soll vergleichen ob die ID aus der Datenbank die Selbe ist die der Benutzer eingegeben hat, bzw. ob Sie vorhanden ist. Aber aus irgendeinem grund ignoriert er diese abfrage.
Welche Abfrage wird Deiner Meinung nach ignoriert? Die Fehlermeldung ist ziemlich eindeutig: Ein Datensatz mit Deiner definierten Bedingung existiert offenbar nicht. Beschreibe Dein Problem genauer.
MfG
MarkX.
Ja ist völlig logisch es soll ja auch der Fall überprüft werden das es den Datensatz nicht gibt.
Das Problem ist das er
if rs("id") = nummer then
völlig Ignoriert
sieht man ja an der Ausgabe
?=?5
nichts ist nicht gleich 5
Mit freundlichen Grüßen Desert