【发布时间】:2014-08-28 17:31:44
【问题描述】:
我在 ASP 登录时收到以下错误
Microsoft JET 数据库引擎错误“80040e10” 没有为一个或多个必需参数指定值。 /vdateUsr.asp,第 47 行
数据正在表单中输入并在 Access 数据库中进行检查。代码如下:
' variables
dim cnStr
dim rcSet
dim frmUsername
dim frmPassword
dim sqlStr
dim strSQL
'store form input into variables
frmUsername = Request.Form("username")
frmPassword = Request.Form("password")
'create connection and recordset objects
Set cnStr = Server.CreateObject("ADODB.Connection")
Set rcSet = Server.CreateObject("ADODB.Recordset")
' defining database connection (connectionstring.asp)
cnStr.ConnectionString = path
cnStr.Provider = provider
cnStr.open
' execute sql and open as recordset
sqlStr = "Select * From users where [User Name] = ('" & frmUsername & "') and [Password] = ('" + frmPassword + "')"
strSQL="SELECT startup site FROM users WHERE [User Name] = ('" & frmUsername & "') and [Password] = ('" & frmPassword & "')"
' Opens the returned values from the SQL as a recordset, ready for iteration by ASP
'Line 47 below
set rcSet = cnStr.Execute(sqlStr)
任何帮助将不胜感激。
提前致谢
【问题讨论】:
-
在第 47 行之前添加一行
response.write(sqlSTR)和第二行response.end。然后看看输出的 SQL... 看起来像 frmusername 和 frmpassword 有值吗?此外......认真考虑使用参数化查询。这有导致站点黑客攻击的 SQL 注入问题。方法如下:stackoverflow.com/questions/770419/… -
recommend this 也会详细解释一些您可以反复使用的技术。
标签: sql asp-classic