[ASP]: Query via Request.QueryString werkt niet..?

Pagina: 1
Acties:

  • J.apiooo
  • Registratie: Oktober 2000
  • Laatst online: 21-07 10:36
Veel duidelijker kon ik het niet echt maken in het onderwerp. In elk geval... het gaat erom dat het achterhalen van een nieuwsitem met behulp van de Request.QueryString niet goed werkt, terwijl het wel goed werkt als ik direct achter de WHERE ID=103 plaats.

Variabele IDN bevat trouwens wel gewoon de juist ID... dat is het niet. De foutmelding die ik met de onderstaande code krijg:

Error Type:
Microsoft JET Database Engine (0x80040E07)
Data type mismatch in criteria expression.
/gpchampionship2002/news.asp, line 31


<%
Dim IDN
IDN = Request.QueryString("ID")

Set oRs = server.createobject("ADODB.Recordset")
oRs.ActiveConnection = Dataconn

oRs.open "SELECT * FROM NEWS WHERE ID='" & IDN &"'"

%>

Jaap


Verwijderd

Probeer eens:
code:
1
2
3
4
5
6
7
8
9
10
<%
Dim IDN
IDN = Request.QueryString("ID")

Set oRs = server.createobject("ADODB.Recordset")
oRs.ActiveConnection = Dataconn

oRs.open "SELECT * FROM NEWS WHERE ID='" & Cint(IDN) &"'"

%>

Let op de Cint

  • Basszje
  • Registratie: Augustus 2000
  • Nu online

Basszje

Reisvaap!]

2 dingen :
Check zeker of die ID gevuld wordt.

Als het een nummer veld is ( autonummering, integer etc ) dan mag je niet de ' ' gebruiken in je query ( die zijn voor strings ) .,

dus :

sql = "SELECT bla from tbl_bla where bla_id = " & id

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


  • J.apiooo
  • Registratie: Oktober 2000
  • Laatst online: 21-07 10:36
Dank, dank... dat was 'm... Het is nu opgelost via:

oRs.open "SELECT * FROM NEWS WHERE ID="& IDN

:)

Jaap


  • pasz
  • Registratie: Februari 2000
  • Laatst online: 16-08 23:04
test it :

<%
Dim IDN
IDN = Request.QueryString("ID")

if IDN <> "" then
Set oRs = server.createobject("ADODB.Recordset")
oRs.ActiveConnection = Dataconn
oRs.open "SELECT * FROM NEWS WHERE ID=" & IDN
(enzovoort)
else
Response.Write "Volgens mij is je ID leeg :)"
Response.Write "Probeer deze eens : " & Request("ID")
end if
%>

woei!


  • J.apiooo
  • Registratie: Oktober 2000
  • Laatst online: 21-07 10:36
Nu loop ik weer tegen dit probleem aan... alleen in een andere vorm, namelijk in een if-then statement... zie onder:

<% if oRs("ID") = 85 then
Response.write "<td width='70%'><a href='newsarchive.asp?id=" & oRs("ID") &"' target='_top' style='text-decoration: none'><font color='#cc0000'><b>" & oRs("subject") &"</b></small></small></font></a> </td></font>"
else
Response.write "<td width='70%'><a href='newsarchive.asp?id=" & oRs("ID") &"' target='_top' style='text-decoration: none'>" & oRs("subject") &"</small></small></a> </td>"
end if
%>


Het gaat om die 85... daar wil ik de waarde IDN (zie eerste post) inzetten. Wanneer ik dat probeer via "& IDN & " of een andere optie, werkt dat niet. Het is vast en zeker net zo'n situatie als bij mijn 1e eerste vraag. Aangezien het duidelijk is dat ik hier wat probleempjes mee heb... weet iemand van jullie een site waar ik juist over dit aspect meer achtergrond informatie kan vinden?

Jaap


  • Greyfox
  • Registratie: Januari 2001
  • Laatst online: 16-09 21:53

Greyfox

MSX rulez

Je moet het gewoon zien als twee variabelen.
De rs("ID) en de IDN.
Dus je kunt dan vergelijken door
If rs("ID") = IDN
Omdat het twee integers (of in ieder geval getallen) zijn hoef/mag/kan je niet met & en ' te werken.

MSX 2 rulez more


  • J.apiooo
  • Registratie: Oktober 2000
  • Laatst online: 21-07 10:36
Greyfox... dat dacht ik dus ook... maar dan gebeurt er dus helemaal niets (ook geen foutmelding)... (hij kiest dan dus de 'else'...)

Jaap


  • Greyfox
  • Registratie: Januari 2001
  • Laatst online: 16-09 21:53

Greyfox

MSX rulez

Je zou beide kunnen CInt-en, wellicht dat dat helpt. :?
Als ik problemen in deze richting heb, dan zet ik meestal voor het (in dit geval) If-statement:
Response.write oRs("ID") & " - " & IDN.
Dan kun je vrijwel direct zien waarom iets fout gaat.
(het is trouwens beter om oRs.Fields("ID").value te gebruiken, al is het alleen al omdat het leesbaarder is :))

MSX 2 rulez more

Pagina: 1