Avatar billede agm Nybegynder
27. april 2007 - 13:45 Der er 7 kommentarer og
1 løsning

Slette record i dB

Hej
Kan jeg ikke gøre sådan når jeg skal slette i dB.?
Jeg har er formular side hvor alle rækker bliver udskrevet..
Når jeg så trykker "slet" skal den så slette den enkelte række men sletter alle rækker..hmmm..

Form side:
    </form></td>
    <td width="100"><form name="week" method="post" action="slet_text.asp">
      <div align="center">
        <input type="submit" name="Response.Write rs("ID") & " "" value="slet"> 
          </div>
    </form></td>

slet_text.asp side:

strSQL = "Delete * FROM texts where 'Week = " & Request("ID") & "'"    'Definer SQL statement
Conn.Execute(strSQL)
Avatar billede pidgeot Nybegynder
27. april 2007 - 13:48 #1
Feltnavnet og operatoren skal ikke være indenfor apostrofferne. Det du har der er en streng, ikke et kriterie - og da en ikke-tom streng altid vil evaluere til true i en boolsk sammenhæng...
Avatar billede fennec Nybegynder
27. april 2007 - 13:51 #2
Og helt udpenslet:
strSQL = "Delete * FROM texts where Week = '" & Request("ID") & "'"
Avatar billede softspot Forsker
27. april 2007 - 13:52 #3
Jeg ville nok gøre sådan i stedet:

Form side:
<td width="100">
  <form name="week" method="post" action="slet_text.asp">
    <input type="hidden" name="slet" value="<%=rs("ID")%>">
    <div align="center">
      <input type="submit" value="slet"> 
    </div>
</form></td>

slet_text.asp side:

'Definer SQL statement
strSQL = "Delete * FROM texts where Week = '" & Request.Form("slet") & "'" 
Conn.Execute(strSQL)


Altså forudsat at week er en tekst og at rs("ID") indeholder en tekst...
Avatar billede agm Nybegynder
27. april 2007 - 13:55 #4
Ok.. men så får jeg fejl ilinje 16..:
(15 og 16):

strSQL = "Delete * FROM texts where Week = '" & Request("ID") & "'"
  Conn.Execute(strSQL)

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

/delivery/slet_text.asp, line 16
Avatar billede softspot Forsker
27. april 2007 - 14:01 #5
Prøv lige min version...

Du skal sikre dig at week er en tekst og ikke et tal i databasen, for ellers får du en typefejl. Hvis week er et tal, skal du undlade apostrofferne:

strSQL = "Delete * FROM texts where Week = " & Request.Form("slet")
Avatar billede agm Nybegynder
27. april 2007 - 14:06 #6
Det var fordi det var tal...

Det works... ;o)
Avatar billede softspot Forsker
27. april 2007 - 14:41 #7
OK, så får du lige et svar :)
Avatar billede softspot Forsker
01. maj 2007 - 10:37 #8
Tak for point :)
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