asp access 无法读取数据库内容

dingling1986 2011-04-20 12:01:00
<!--#include file="inc/top.asp"-->
<html>
<head>
<title>东亚农业资源环境研究中心</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head>

<body topmargin="0" bgcolor="#FFFFFF">
<div align="center">
<table width="778" border="0" cellpadding="0" cellspacing="0">
<tr>
<td bgcolor="#FFFFFF" background="../img1/100.gif" height="30">
<div align="center"><font color="#FFFFFF" style="font-size: 9pt"> <a href="../index.asp">
</a></font><%=zycy%></div>
</td>
</tr>
</table>
</div>
</body>
</html>





inc/top.asp


<%
sql="select * from main"
Set rs_main= Server.CreateObject("ADODB.Recordset")
rs_main.open sql,conn,1,1
contact=rs_main("Contact")
About=rs_main("About")
Lxwm=rs_main("Lxwm")
zzzc=rs_main("zzzc")
yfzx=rs_main("yfzx")
copyright=rs_main("copyright")
lxwm=rs_main("lxwm")
Historya=rs_main("Historya")
tcbd=rs_main("tcbd")
content=rs_main("content")
aboutae=rs_main("aboutae")
mrjh=rs_main("mrjh")
zycy=rs_main("zycy")
dzqk=rs_main("dzqk")
link=rs_main("link")
%>


Conn.asp


<%
dim conn
dim db
dim connstr
db="../Databases/myszw.mdb"
on error resume next
connstr="DBQ="+server.mappath(""&db&"")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
if err then
err.clear
else
conn.open connstr
end if

sub CloseConn()
conn.close
set conn=nothing
end sub
%>


conn 和 top在同一路径下。
...全文
420 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
toury 2011-04-21
  • 打赏
  • 举报
回复
善哉。兄弟很聪明,一点就透,呵呵。
你做的很对,不是我给了可以用的代码就万事大吉,而是返回去找原先代码的错误,从而积累了经验。很好!
你还可以把我的和你原先的比较一下,想一下为什么我这样写他那样写。比如,同样的关闭数据库,我的closeDB和你原来的有什么不同。。。
------------------------------------------------
【asp怎么关闭一个连接后,不能从新建立一个新的数据库连接呢?body中同样包含了conn了啊?
不如jsp来的灵活啊。】:

这不关ASP或PHP或JSP的事情,是网页加载的机制问题:

1)include或require数据库连库文件conn.asp,此时正常的话conn已经打开
<head>
2)执行了closeDB,conn关闭了
</head>
<body>
3)如果下面还要执行数据库操作,两个办法:
一是,把conn.asp里的连库代码重写一下,也就是重新写连库代码
二是,conn.asp里另外写个sub aaa()或function aaa(),把连库代码放进去;然后这里调用:
call aaa()
</body>
dingling136 2011-04-21
  • 打赏
  • 举报
回复
谢谢批评,虚心接受。

我就是查了半天没头绪,才上来发的。整个站点与数据库交互的部分都不正常,提问这个就是想看看是哪里错了。



问题找到了,其实是head与body中产生了关联性问题。head中调用数据库内容后把数据库关闭了( closeDB rs: closeDB conn),导致body中无法读取数据。
ps:asp怎么关闭一个连接后,不能从新建立一个新的数据库连接呢?body中同样包含了conn了啊?
不如jsp来的灵活啊。

总觉得asp是学校学生学得东西,这次吃亏了。谢谢了,问题解决了,看来有时间还要了解一些windows 2008.

dingling1986 2011-04-20
  • 打赏
  • 举报
回复
回复13楼,

第5行是 rs_main.open sql,conn,1,1
CNetol 2011-04-20
  • 打赏
  • 举报
回复
错误类型:
ADODB.Recordset (0x800A0BB9)
参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。
/inc/top.asp, 第 5 行




第 5 行 是什么?
dingling1986 2011-04-20
  • 打赏
  • 举报
回复
回复8楼

测试了每一步,都能运行。就是读数据库表中内容时,读不出来。
toury 2011-04-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 dingling1986 的回复:]

没有错误,就是不读数据。

加入<!--#include file="conn.asp"--> 效果是一样的。在同一路径下,没有必要加吧
[/Quote]

真有你的,你不把连库代码INCLUDE进来,怎么连接数据库啊!呵呵
dingling1986 2011-04-20
  • 打赏
  • 举报
回复
回复3楼
照你提供的方法修改,问题依旧。
  • 打赏
  • 举报
回复
没有include Conn.asp的代码啊。
ycproc 2011-04-20
  • 打赏
  • 举报
回复
没有错误
你就直接把 在每个间隔 弹出窗口看数据
dingling1986 2011-04-20
  • 打赏
  • 举报
回复
这该死的网站在本地测试能够登录后台管理页面,但是前台与数据库交互数据的页面都无法打开。
dingling1986 2011-04-20
  • 打赏
  • 举报
回复
回复1楼

去掉on error resume next


出现错误

错误类型:
ADODB.Recordset (0x800A0BB9)
参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。
/inc/top.asp, 第 5 行


第 5 行 对应内容 rs_main.open sql,conn,1,1

dingling1986 2011-04-20
  • 打赏
  • 举报
回复
没有错误,就是不读数据。

加入<!--#include file="conn.asp"--> 效果是一样的。在同一路径下,没有必要加吧
CNetol 2011-04-20
  • 打赏
  • 举报
回复
把错误贴出来看看
hongmei85 2011-04-20
  • 打赏
  • 举报
回复
看下数据库文件路径对不对

试下
connstr="Provider=Microsoft.Jet.Oledb.4.0;Data Source=" & server.mappath(""&db&"")
toury 2011-04-20
  • 打赏
  • 举报
回复
<!--#include file="inc/conn.asp"-->
<!--#include file="inc/top.asp"-->
<html>
<head>
<title>东亚农业资源环境研究中心</title>

.............


顶部加红字部分
hongmei85 2011-04-20
  • 打赏
  • 举报
回复
去掉on error resume next

然后刷新看是啥错
toury 2011-04-20
  • 打赏
  • 举报
回复
说点题外话。

不管你是新手还是老手,不要把注意力集中在代码的局部,首先应该注重程序的流程,分析逻辑关系,要做到知其然更要知其所以然。这是其一。

其二,发帖提问也要有好的方式、好的技巧,好的沟通。坦白的说,你的问题不是如你16楼所说“没人了解”,而是实在只是最基础的东东,很多弟兄没这个耐心仔细看你的问题而已。我不忍看你郁闷,所以帮你整理敲了整段代码,连调试思路也一起教你了;然而你20楼、23楼的回帖,如果换做你是我,你会怎么想?呵呵。我不是要你的一声谢谢、更不求你给什么虚拟分数,只是想告诉你:不会不懂都不要紧,谁都是从你这个阶段过来的。然而如果装会装懂就不好了。你说【只是你这种方法多次刷新后,就读不出数据了】,这不是开玩笑吗?仅仅是一句response.write err.description输出错误提示就会让程序多次刷新不工作了?

我要是你,我就边看帖回帖,边狂搜资料,边不断调试程序去;争取尽快的弄懂别人在说什么,为什么这么说,说的对还是错。只有这样才能加速自己的提高。

当然,我说这些并无他意。只是提醒你,学会沟通。
dingling1986 2011-04-20
  • 打赏
  • 举报
回复
多了一个content字段,只是你这种方法多次刷新后,就读不出数据了。

输出提示为“无数据!”
toury 2011-04-20
  • 打赏
  • 举报
回复
自己检查一下,看看哪个rs("xxxx")不是表里的字段。
运行一下没错误了就把response.write err.description注释掉或删除
toury 2011-04-20
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 dingling1986 的回复:]

数据是读出来了,但是多出一个东西。

在对应所需名称或序数的集合中,未找到项目。
[/Quote]
那是我特意写给你看的,以发现程序中隐藏的错误。看top.asp中最后:response.write err.description

【在对应所需名称或序数的集合中,未找到项目。】是说,你那一堆字段读取过程中,有一个不是表里的字段
contact=rs("Contact")&""
About=rs("About")&""
Lxwm=rs("Lxwm")&""
zzzc=rs("zzzc")&""
yfzx=rs("yfzx")&""
copyright=rs("copyright")&""
lxwm=rs("lxwm")&""
Historya=rs("Historya")&""
tcbd=rs("tcbd")&""
content=rs("content")&""
aboutae=rs("aboutae")&""
mrjh=rs("mrjh")&""
zycy=rs("zycy")&""
dzqk=rs("dzqk")&""
link=rs("link")&""
response.write err.description注释掉或删除
加载更多回复(6)

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧