我正在尝试从MS Access数据库中创建一个ID(主键和自动增量)以用作登录传递。但是我收到了这个错误:
Microsoft OLE DB Provider for ODBC Drivers错误'80040e07'
[Microsoft] [ODBC Microsoft Access驱动程序]条件表达式中的数据类型不匹配。
这是我的代码:
con.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("db.mdb") &""
sql="SELECT * FROM tblLogin WHERE ID='" & request.form("id") & "';"
rs.CursorType=2
rs.Open sql,con
if rs.bof then
response.redirect "loginpage.asp?msg=ID does not exist."
else
response.redirect "adminpage.asp"
end if
如果我遗漏某些内容或您推荐的任何解决方案,请纠正我。
提前致谢。
答案 0 :(得分:5)
变化:
sql="SELECT * FROM tblLogin WHERE ID='" & request.form("id") & "';"
到
sql="SELECT * FROM tblLogin WHERE ID=" & request.form("id")
然后像这样检查:
If rs.EOF then
response.redirect "loginpage.asp?msg=ID does not exist."
else
response.redirect "adminpage.asp"
end if
答案 1 :(得分:0)
检查3件事:
if not rs.eof
代替if not rs.bof
还有一个安全警告,除了您的问题:
在重定向到管理页面之前,毫无疑问,您需要一些逻辑来设置会话或cookie,以确定真正的管理者是否要转到目标页面。看来您的管理页面没有逻辑可以检查用户是从登录页面进入还是突然进入登录页面!