Om ID är numeriskt kan du inte jämföra det med något som inte är ett tal.
Skriv ut färdig SQL-fråga så kan du se varför saker och ting inte funkar.
7 svar · 296 visningar · startad av freddssite
Varför får jag detta fel...
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
när jag söker på ett efternamn, fungerar på att söka på de andra...
Where efternamn = '" & Request.Form("sokord") & "' or personnummer = '" & Request.Form("sokord") & "' or id = " & Request.Form("sokord") & ""
Om ID är numeriskt kan du inte jämföra det med något som inte är ett tal.
Skriv ut färdig SQL-fråga så kan du se varför saker och ting inte funkar.
Skriv ut din SQL sats med response.write så du ser att du verkligen får med de värden du vill.
man kan söka på id eller personnummer, men inte på efternamnet!
HEJ!
Söker du på exakt hela efternamnet?
'Nilsson' ger träff, 'son' ger inga?
Du bör använda LIKE istället för lika med, eftersom det är sträng, men också, viktigast, stoppa % runt värdena, fungerar som *.
Då får du träff på alla son-namn enligt ovanstående exempel.
... efternamn LIKE '%" & innehallsok & "%'
En bättre rubrik hade inte skadat!
@nders skrev:
Om ID är numeriskt kan du inte jämföra det med något som inte är ett tal.
Är ID numeriskt?
...förlåt om jag går lite "Off Topic" men vill bara höja ett varningensfinger när jag ser din kod:
"...Where efternamn = '" & Request.Form("sokord")..."
som är helt öppen för SQL-injection. Kort innebär det att någon skulle kunna skriva egen SQL-kod som kör egna frågor mot din databas. Enklaste skyddet är att kontrollera '-tecknet, men att använda parameteriserade frågor är att föredra.
Läs gärna mer om säkerhetsrelaterade ämnen på swesecure.com och särskilt om SQL-injection på:
http://www.swesecure.com/?ID=dc6ea60a-12ae-4e7e-9e9c-59489ccafa90&IID=29a58b01-ca79-4877-b924-4f5da18d4a2a
Re: sql?
freddssite skrev:
Varför får jag detta fel...
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
när jag söker på ett efternamn, fungerar på att söka på de andra...
Where efternamn = '" & Request.Form("sokord") & "' or personnummer = '" & Request.Form("sokord") & "' or id = " & Request.Form("sokord") & ""
Därför att du i en funktion, som du har inbakad i din fråga, saknar ett argument. Om det ingår data från tabellen som är Null kan du nog (eftersom du kör Access) komma undan med att köra Tools » Database Utilities » Compact and Repair Database...
För övrigt föreslår jag att du läser igenom föregående svar noga.