Avatar billede tommyls Nybegynder
23. juli 2002 - 12:25 Der er 15 kommentarer og
1 løsning

Too few parameters. Expected 1.

Jeg sletter nogle poster i db, men jeg får fejlen:

DelItems = Request.Form("slet").Count

if (DelItems >= 1) then

  For i = 1 To DelItems
    sql = "DELETE FROM tbl_emails WHERE id="&Request.Form("slet")(i)
    conn.Execute sql
   
    sql2 = "DELETE FROM tbl_types WHERE id="&Request.Form("slet")(i)
    conn.Execute sql2
   
  Next
else
  Response.redirect "dfsdf.asp"
end if

Dog sletter den alligevel!
Avatar billede medions Nybegynder
23. juli 2002 - 12:33 #1
DelItems = Request.Form("slet").Count

if (DelItems >= 1) then

  For i = 1 To DelItems
    sql = "DELETE FROM tbl_emails WHERE [id]="&Request.Form("slet")(i)
    conn.Execute sql
   
    sql2 = "DELETE FROM tbl_types WHERE [id]="&Request.Form("slet")(i)
    conn.Execute sql2
   
  Next
else
  Response.redirect "dfsdf.asp"
end if

Hvad indhold ligger der i variablen "i"?

//>Rune
Avatar billede tommyls Nybegynder
23. juli 2002 - 12:37 #2
ikke andet end i = 1 ! Hvis der er en anden måde, så kom med den!
Avatar billede medions Nybegynder
23. juli 2002 - 12:41 #3
Virkede det ikke med at sætte  [ og ] rundt om?

//>Rune
Avatar billede tommyls Nybegynder
23. juli 2002 - 12:48 #4
nej det virkede ikke
Avatar billede medions Nybegynder
23. juli 2002 - 12:52 #5
Er ID et autonumneringsfelt -eller hvilken database bruger du?

//>Rune
Avatar billede medions Nybegynder
23. juli 2002 - 12:52 #6
Eller hvilken type er feltet ID?

//>Rune
Avatar billede tommyls Nybegynder
23. juli 2002 - 12:55 #7
Det er en access db.

Det er autonummerering i den ene, og tal i den anden!
Avatar billede medions Nybegynder
23. juli 2002 - 12:58 #8
Hmm... Prøv lige giv mig resultatet af Request.Form("slet")(i) <- altså hvad det indeholder!

//>Rune
Avatar billede tommyls Nybegynder
23. juli 2002 - 13:04 #9
Der er vist et problem:

Hvis jeg udskriver 2 checkbokse som er checked, får jeg:

f.eks
2942Slet

dvs. id 29 og 42

Hvad fanden sker der?
Avatar billede medions Nybegynder
23. juli 2002 - 13:07 #10
Jamen prøv lige at vent... vil det sige at din Request.Form() udskriver tekst?

For så skal du gøre som følgende:
DelItems = Request.Form("slet").Count

if (DelItems >= 1) then

  For i = 1 To DelItems
    sql = "DELETE FROM tbl_emails WHERE id='" & Request.Form("slet")(i) & "'"
    conn.Execute sql
   
    sql2 = "DELETE FROM tbl_types WHERE id='" & Request.Form("slet")(i) & "'"
    conn.Execute sql2
   
  Next
else
  Response.redirect "dfsdf.asp"
end if

//>Rune
Avatar billede tommyls Nybegynder
23. juli 2002 - 13:07 #11
når jeg udskriver Request.Form("slet").Count får jeg et tal der er 1 nummer højere end det skal være!
Avatar billede medions Nybegynder
23. juli 2002 - 13:10 #12
Hm okay.. Men prøv lige at skriv:

Response.Write(Request.Form("slet")(i))

Hvad kommer der ud af det?
//>Rune
Avatar billede tommyls Nybegynder
23. juli 2002 - 13:12 #13
f.eks 2942Slet
Avatar billede medions Nybegynder
23. juli 2002 - 13:16 #14
jamen du er jo nødt til at ha fjernet slet, da det er bogstaver... Prøv med det her:

DelItems = Request.Form("slet").Count

if (DelItems >= 1) then

strLength = Len(Request.Form("slet")(i)) -4

  For i = 1 To DelItems
    sql = "DELETE FROM tbl_emails WHERE id=" & Left(Request.Form("slet")(i), strLength)
    conn.Execute sql
   
    sql2 = "DELETE FROM tbl_types WHERE id=" & Left(Request.Form("slet")(i), strLength)
   
    conn.Execute sql2
   
  Next
else
  Response.redirect "dfsdf.asp"
end if

//>Rune
Avatar billede tommyls Nybegynder
23. juli 2002 - 13:20 #15
Jeg har fundet problemet! alt jeg havde lavet fra start var rigtigt, undtagen, at man skal sige:

DelItems = Request.Form("slet").Count-1

Så virker det.
Avatar billede medions Nybegynder
23. juli 2002 - 13:22 #16
Fair nok :-)
Thx 4 Poinz

//>Rune
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester