西安哪有剪纸培训班:请教高手们:为什么我在ASP + ACCESS连接中会出现以下问题!

来源:百度文库 编辑:杭州交通信息网 时间:2024/03/29 22:48:59
问题出在我注释的那里,希望高手们给予指点!谢谢
<%
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("user.mdb")
name=Request.form("username")
password=Request.form("userpwd")
if name="" or password="" then
response.write"用户名或密码不能为空"
response.end
end if
sql="select * from admin where username='"&name&"'and userpwd='"&password&"'"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,3/*这里怎么总是提示参数不足,期待是2,到底是为什么呢!该怎样修改呢?
if not(rs.bof or rs.eof)then
if password=rs("userpwd")then
session("name")=rs("username")
response.redirect "manage.asp"
else
call Error
end if
else
call Error()
end if

sub Error()
response.write"<script>alert(""用户名或密码错误,请检查!"");history.back();</script>"
end sub
rs.close
conn close
set rs=nothing
set conn=nothing

%>
我改成rs.open sql,conn,1,1以后又总是提示:Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
ODBC 驱动程序不支持所需的属性。
这是为什么呢?

可以肯定的是,你上面的代码没有错误,rs.open sql,conn后的参数可有可无,我试了都没事。请你检查别的情况,如数据库的字段或asp环境的问题。
以下是我在2003server环境下经过验证的代码
<%
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("user.mdb")
name=Request.form("username")
password=Request.form("userpwd")
if name="" or password="" then
response.write"用户名或密码不能为空"
response.end
end if
sql="select * from admin where username='"&name&"' and userpwd='"&password&"'"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn
if not(rs.bof or rs.eof)then
if password=rs("userpwd")then
session("name")=rs("username")
response.redirect "manage.asp"
else
call Error()
end if
else
call Error()
end if
sub Error()
'response.write "<script>alert(用户名或密码错误,请检查!);history.back();"
response.Write("用户名或密码错误,请检查!")
end sub
rs.close
conn.close
set rs=nothing
set conn=nothing
%>

rs.open sql,conn,1,3
改成
rs.open sql,conn,1,1
看看~以前我也遇到过和你一样的问题~

改成
rs.open sql,conn,0,2,1

问题不是出在这一句!
而是:
sql="select * from admin where username='"&name&"'and userpwd='"&password&"'"

请把"and" 与它前面的单引号用空格分开!!