11. juni 2002 - 11:35
Der er
12 kommentarer og 1 løsning
ASP programmerings fejl
Hvad er der galt med mit script. Jeg får denne fejl : Microsoft JET Database Engine error '80040e07' Data type mismatch in criteria expression. /admin/pages/edit.asp, line 14 <% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "Data Source=" & Server.Mappath("/admin/database/suf.mdb") & ";Provider=Microsoft.Jet.OLEDB.4.0;" dim str str = Request.QueryString("guestbookID") SQL = "Select * From guestbook WHERE guestbookID='" & str & "'" Set RS = Conn.Execute(SQL) %> <form method="POST" action="update.asp"> <head> <title></title> </head> <body topmargin="0"> <br> <font size=5> <center> <b>Test</b> </center> </font> <br><br> <center> <b> <font size=3> Update in /admin/database/suf.mdb </b> </font></center><br><br> <p align="center"><input type="hidden" name="guestbookID" size="20" value="<%=rs("guestbookID")%>"></p> <p align="center"><textarea cols=40 rows=2 name="emne"><%=rs("emne")%> </textarea></p> <p align="center"><textarea cols=40 rows=5 name="indhold"><%=rs("indhold")%> </textarea></p> <p align="center"><input type="submit" value="Update" name="B1"><input type="reset" value="Reset" name="B2"></p> </form> <% rs.Close Set rs = Nothing%>
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Det lyder som om guestbookID er nummerisk, fjern derfor ' (pinger) omkring.
Så skriver den Microsoft JET Database Engine error '80040e14' Syntax error (missing operator) in query expression 'guestbookID='. /admin/pages/edit.asp, line 14
Så har du kaldt siden uden ?guestbookid=xxx og derfor er Request.QueryString("guestbookID") tom
Hvis du poster til samme side, skal du erstatte Request.QueryString("guestbookID") med Request.Form("guestbookID") da din METHOD på formed er POST.
den skriver stadig det samme. kan du ik lige prøve at lave de rettelser, og så poste hele scriptet. Så prøver jeg lige en gang til :)
<% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "Data Source=" & Server.Mappath("/admin/database/suf.mdb") & ";Provider=Microsoft.Jet.OLEDB.4.0;" dim str ' Hvis du kalder siden med eks. minside.asp?guestbookid=1 ' skal du anvende denne: str = Request.QueryString("guestbookID") ' Hvis du kommer til siden, ved at submitte en form ' skal du anvende denne: str = Request.Form("guestbookID") SQL = "Select * From guestbook WHERE guestbookID=" & str Set RS = Conn.Execute(SQL) %> <form method="POST" action="update.asp"> <head> <title></title> </head> <body topmargin="0"> <br> <font size=5> <center> <b>Test</b> </center> </font> <br><br> <center> <b> <font size=3> Update in /admin/database/suf.mdb </b> </font></center><br><br> <p align="center"><input type="hidden" name="guestbookID" size="20" value="<%=rs("guestbookID")%>"></p> <p align="center"><textarea cols=40 rows=2 name="emne"><%=rs("emne")%> </textarea></p> <p align="center"><textarea cols=40 rows=5 name="indhold"><%=rs("indhold")%> </textarea></p> <p align="center"><input type="submit" value="Update" name="B1"><input type="reset" value="Reset" name="B2"></p> </form> <% rs.Close Set rs = Nothing%>
stadig samme fejl :( Microsoft JET Database Engine error '80040e14' Syntax error (missing operator) in query expression 'guestbookID='. /admin/pages/edit.asp, line 24
Hvordan kalder du siden ? Hvad står der i browserens adresse linie ?
11. juni 2002 - 12:58
#10
filen der kalder edit.asp er her : <title> Beskedsystem - Admin </title> <head> <table width="760" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="center"> </b></td> <td></td> </tr> </table> <% dim RS Set RS = GetRSSQL("SELECT * FROM traade ORDER BY tidspunkt DESC", Conn, adOpenKeyset, adLockOptimistic) %> <table width="800" cellspacing="0" cellpadding="1" Class="td"> <tr valign="top"> <td width="76"> <div align="center"><br> <br> <tr valign="top" width="50%"> <td width="76"> </td> <TABLE cellpadding=0 cellspacing=3 border=0 align=center width=100%> <tr> <font size=1> <TD class=formheader colspan=3><B>Administrator Beskedsystem</td><td class=formheader></TD> </tr> <tr><td colspan="4"><HR noshade=true size=1><BR></td></tr> <TR> <TD class=header width=400>Emne</TD> <TD class=header width=1000>Afsender</TD> <TD class=header width=100>Slet </TD> <TD class=header width=100>Rediger </TD> </TD> </TR> <TD class=list width=1600> <%while not RS.EOF%> <tr> <TD class="list" width="500"><%=RS("emne")%> <TD class="list" width="800"><%=RS("navn")%> <TD class="list" width="300"> <a href="pages/message_delete.asp?id=<%=RS("guestbookID")%>" CLASS="id">slet</a></div> <TD class="list" width="300"> <a href="pages/edit.asp?id=<%=RS("guestbookID")%>" CLASS="id">Rediger</a></div> <div align="left"></div> </td> </tr> <% RS.Movenext%> <% Wend %> </table> </td> <tr/> </table> </Center> </body>
11. juni 2002 - 13:17
#11
Jamen så skal det jo gå galt :-) Du kalder siden med edit.asp?id=xxx men i dit andet script sætter du str = Request.QueryString("guestbookID"). Du kalder altså med ét variabelnavn og bruger et andet. Du skal enten rette siden der kalder, så det bliver med ?guestbookID=xx i stedet for ?id=xxx eller rette Request.QueryString("guestbookID") til Request.QueryString("ID")
11. juni 2002 - 14:05
#12
mange tak :) :) :)
11. juni 2002 - 14:09
#13
Det var så lidt :-)
Kurser inden for grundlæggende programmering