webForumDet fria alternativet

Item cannot be found in the collection corresponding to the requested name or ordinal

ASP

9 svar · 280 visningar · startad av StefanP

Medlem sedan jan. 200284 inlägg
Frågan#1

Halloj.
Jag försöker få till det så att prenumeranter kan ta bort sig själva ur nyhetsbrevet.

Jag har en sida som heter radera.asp


<form name="form1" method="post" action="deletemail.asp">
  <input type="text" name="email">
  <input type="submit" name="Submit" value="Submit">
</form>

Sen deletemail.asp


<!-- #include file="adovbs.inc" -->

<%	DBPath = "DBQ=" & Server.MapPath("newslettermain.mdb")
Set connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath

   Set RecSet = Server.CreateObject("ADODB.Recordset")
   Radera = "SELECT * from email WHERE email='"& request.form("email") &"'"
   [b]IF len(RecSet("email")) >0 then[/b]
   response.write "Emailadressen finns inte"
   
   ELSE
   RecSet.Open Radera, Connect, adOpenStatic, adLockOptimistic 

   RecSet.Delete

	RecSet.Close
	Connect.Close 
        end if
%>

Men jag får felet
"Item cannot be found in the collection corresponding to the requested name or ordinal"

line 9

"Line 9 är Bold"

Jag har kollat hur många ggr som helst att tabellen heter "email" och kollumnen heter "email"

Så jag förstår inte vad som är fel?

Medlem sedan mars 20015 287 inlägg
#2

Du kan väl inte använda dig av RecSet("email") innan du öppnat ditt rs?

Medlem sedan mars 20015 287 inlägg
#3

typ kanske:

<!-- #include file="adovbs.inc" -->

<%	DBPath = "DBQ=" & Server.MapPath("newslettermain.mdb")
Set connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath

   Set RecSet = Server.CreateObject("ADODB.Recordset")
   Radera = "SELECT * from email WHERE email='"& request.form("email") &"'"

if not rs.eof then

   RecSet.Open Radera, Connect, adOpenStatic, adLockOptimistic 

   RecSet.Delete

	RecSet.Close
	Connect.Close 

else

   response.write "Emailadressen finns inte"

        end if
%>
Medlem sedan jan. 200284 inlägg
#4

hmm

Operation is not allowed when the object is closed.

line 10
if not RecSet.eof then

Medlem sedan mars 20015 287 inlägg
#5

Hupp, byt plats på dessa rader:

if not rs.eof then

RecSet.Open Radera, Connect, adOpenStatic, adLockOptimistic

till:

RecSet.Open Radera, Connect, adOpenStatic, adLockOptimistic

if not rs.eof then

så kanske det gårr bättre...

Medlem sedan jan. 200284 inlägg
#6

hmm

Nu säger den Emailadressen finns inte oavsett ifall den finns eller inte :(

<!-- #include file="adovbs.inc" -->

<%
DBPath = "DBQ=" & Server.MapPath("newslettermain.mdb")
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath

   Set RecSet = Server.CreateObject("ADODB.Recordset")
   Radera = "SELECT * from email WHERE email='"& request.form("email") &"'"

   RecSet.Open Radera, Connect, adOpenStatic, adLockOptimistic 

   if not RecSet.eof then

   

   RecSet.Delete

	RecSet.Close
	Connect.Close 

else

   response.write "Emailadressen finns inte"

        end if
%>
Medlem sedan dec. 200012 464 inlägg
#7

Får du in korrekt värde från request.form? Du kan ju lägga in en test-utskrift

Radera = "SELECT * from email WHERE email='"& request.form("email") &"'"

response.write radera
response.end
Medlem sedan jan. 200284 inlägg
#8

hmm

I Adressen så kommer mailen med

deletemail.asp?email=stefan@uppdaterad.com

Men när jag skriver ut "radera" så får den inte med värdet
Såhär mycket får den me då
"SELECT * from email WHERE email=''

Medlem sedan dec. 200012 464 inlägg
#9
Radera = "SELECT * from email WHERE email='"& request.querystring("email") &"'"
Medlem sedan jan. 200284 inlägg
#10

Nu fungerar det.... Jag tog bort name på form name="blabla"

Konstigt detta.

Men nu fungerar det varjefall.. tack!

254 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)