日期:2014-05-17  浏览次数:20836 次

asp连接access数据库 错误类型:500
users.mdb中有一个student表,表有三个字段:id(自动编号);name;pwd

<%
Set conn=Server.CreateObject("ADODB.Connection") 
conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & server.mappath("users.mdb") 
sql="select * from student"
set rs=conn.execute(sql)
response.write(rs("name"))

Response.Write "ok" 
%>

iis配置是对的,因为<% Response.Write "ok" %>测试时是成功的

但是上述代码执行时,出错了,错误类型:500

到底错在哪里呢?

------解决方案--------------------
数据库连接语句、NTFS下权限问题、文件引用与包含路径是否正确
------解决方案--------------------
楼主,如果你的网页没有显示具体错误行的话,
我提的三个问题,你分别先注释掉无关的语句,只测试到可能为错的句,行的话,再加下一行,
不行就先找这里的错误,比如


1,数据库连上了吗?
你只要放这两句就行了
<%
Set conn=Server.CreateObject("ADODB.Connection") 
conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & server.mappath("users.mdb")
%>
如果出错,就是数据库连不上,然后就找这里的错误,是连接字符串写错了,还是数据库文件不存在。
如果不出错,就增加到下一点,

2,连上了的话,有行吗?
<%
Set conn=Server.CreateObject("ADODB.Connection") 
conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & server.mappath("users.mdb") 
sql="select * from student"
set rs=conn.execute(sql)
if rs.eof 
response.write "没有行"
 else 
response.write "有行"
end 
%>

3,有列name吗

<%
Set conn=Server.CreateObject("ADODB.Connection") 
conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & server.mappath("users.mdb") 
sql="select * from student"
set rs=conn.execute(sql)
if rs.eof 
response.write "没有行"
 else 
response.write "有行,name="+rs("name")
end 
%>

这是最基本的调试技术,你学会以后就不用什么都上来问别人了,不然上来问等着别人回答,又麻烦,你自己也没有提高
------解决方案--------------------
请检查一下目录的权限,要赋予USERS完全控制权限。
------解决方案--------------------
ie - 菜单 - 工具 - internet选项 - 高级 去掉显示友好的http错误信息的勾

你看看具体错误时什么