25. marts 2005 - 21:26
Der er
20 kommentarer og 1 løsning
Hjælp til sql sætning
Item cannot be found in the collection corresponding to the requested name or ordinal. Den fejl får jeg i følgende kode key = Request.QueryString("key") valg = Request.QueryString("valg") Set rs = Server.CreateObject("ADODB.RecordSet") strSQL = "SELECT * FROM list WHERE '" & rs("valg") & "' = '" & rs("key") & "'" Det er meningen "valg" bestemmer hvilken kolonne der søges i og "key" er søgeordet. De begge hentes fra en Form hvor "Valg" er nogen valgmuligheder i en komboboks
Annonceindlæg fra Kommando
25. marts 2005 - 21:28
#1
kan se url'en ser sådan her ud asp?valg=tlf&key=00000000 så den er vel rigtig nok? tlf er en kolonne i min database
25. marts 2005 - 21:34
#2
Hvis du vil gøre det på den måde skal du nok glemme alt om rs på det sted og strSQL = "SELECT * FROM list WHERE " & request.querystring("valg") & " = '" & request.querystring("key") & "'" ...og så har du et oplagt mål for hackere der vil udnytte muligheden for sql-injection
25. marts 2005 - 21:37
#3
tester lige:) den brokker sig ikke så tilføjer lige noget mere til databasen.
25. marts 2005 - 21:39
#4
Fint nok, men du vil da ikke bruge den til noget i virkeligheden, vel?
25. marts 2005 - 21:41
#5
Det skal jeg, men overhovedet ikke i offentlig, men kun i administrationsdelen af min side så alle sider er password protected. Og det virker forresten:) point? hvordan ville man ellers gøre det hvis den sql sætning er farlig
25. marts 2005 - 22:18
#6
Ingen point til mig, tak. Du skulle teste at det kun var lovlige felter, eller på anden måde sikre at sql-sætningen ikke kunne laves om.
25. marts 2005 - 22:40
#7
kan du hjælpe mig med en sidste ting? prøver at gøre det samme her men den går ikke rigtigt strSQL = "SELECT ID, firmanavn FROM kunde WHERE omrode = " & Trim(Request.Form("omrode")) & " AND (firmnavn LIKE '%" & strKeyword & "%' )" det er denne del jeg selv har sat ind. WHERE omrode = " & Trim(Request.Form("omrode")) & " får denne fejl Too few parameters. Expected 2.
25. marts 2005 - 22:45
#8
strSQL = "SELECT ID, firmanavn FROM kunde WHERE omrode = '" & Trim(Request.Form("omrode")) & "' AND (firmnavn LIKE '%" & strKeyword & "%' )"
25. marts 2005 - 22:46
#9
og måske hedder den ikke firmnavn
25. marts 2005 - 22:53
#10
hmm... nu var fejlen Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1. Den skal kigge i kolonnen "firmanavn" den findes (ligger i tabellen kunde) og så skal betingelsen være, at omrode er det samme, som det der bliver requested. omrode henter jeg fra en komboboks hvis det gør nogen forskel. måske skal den gemmes i en variabel som strKeyword? strKeyword = Trim(Request.Form("searchword2"))
25. marts 2005 - 22:55
#11
Og hvad skriver du - og hvad er typerne af felterne?
25. marts 2005 - 22:58
#12
firmanavn og omrode er begge af datatypen text i databasen. i den der form hvor jeg indtaster søgekriterier er det et textfield og jeg bare skriver "push" for at teste. omrode er vælger man i en komboboks
25. marts 2005 - 22:59
#13
Men hvordan ser den sql-sætning ud, som du siger giver fejl?
25. marts 2005 - 23:00
#14
Sådan så den oprindeligt ud strSQL = "SELECT ID, firmanavn FROM kunde WHERE (firmanavn LIKE '%" & strKeyword & "%' )" nu ser den sådan her ud (den du lige lavede) strSQL = "SELECT ID, firmanavn FROM kunde WHERE omrode = '" & Trim(Request.Form("omrode")) & "' AND (firmnavn LIKE '%" & strKeyword & "%' )"
25. marts 2005 - 23:01
#15
Og du har læst: Kommentar: erikjacobsen 25/03-2005 22:46:08
25. marts 2005 - 23:02
#16
når du siger den mener du vel om kolonnen firmanavn findes? jeg er helt sikker, men tester lige den gamle sql sætning
25. marts 2005 - 23:03
#17
hmm den gamle virker lige med det samme! skal jeg vise dig den html kode hvor man indtaster sine søge ord?
25. marts 2005 - 23:04
#18
Nej, det er ikke det jeg skriver 22:46:08 - læs det lige igen.
25. marts 2005 - 23:05
#19
pis! tester igen! den hedder selvfølgelig firmanavn
25. marts 2005 - 23:06
#20
Guldmedalje til dig:) Der fik du mig *G* det virker! mange gange tak!!
25. marts 2005 - 23:09
#21
;)
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.