在asp中一些情况下为什么不能读取下一条记录?答好加分

来源:百度知道 编辑:UC知道 时间:2024/05/14 18:51:39
我在看别人的代码如:BBSXP、动网论坛等也遇到过类似
的情况,就是在一个 Access 数据库中有一个或几个单独的表
里边只有一行记录,当然了,是有多个字段的!

开始看时还觉得挺浪费的,十分疑惑,我最近自己设计时,
发现:在读取数据不是连续显示的情况下,果然无法
用rs.movenext读取到下一条记录?

这是为什么呢?

为了把问题说得更清楚一些,我把源代码帖出来,和大家
说得详细一些:
http://www.haodd123.com/ghost.html

其中的一句是:
<%if not rs.eof then response.Write(rs("homrpageTop_code")) else response.Write " "%>
它和下边的
<%if not rs.eof then response.Write(rs("homepagefoot_code")) else response.Write " "%>
是取自同一个数据库表:addver的同一行的两个字段,

可是我如果想把这两条记录,写在addver表的两条记录中,并用
<%if not rs.eof then response.Write(rs("homrpageTop_code")) else response.Write " "
rs.movenext%>

却无法读到下一条记录!!

这个不奇怪呀,如果此记录集在打开的时候只给它限定了一条记录,那么它当然无法再movenext下一条记录了。
比如,在打开记录集的时候使用了指定ID来打开:
sql="select * from [table] where id="&id
rs.open sql,conn,1,1
这样,打开的记录集里就只会有一条记录。你当然无法再movenext了

如果没有上述情况,你可以用rs.move(n)来移动指针,n是要移动的记录的条数。而不能用rs.movenext,movenext只能移动到下一条记录。

<%if not rs.eof then response.Write(rs("homrpageTop_code")) else response.Write " "
rs.movenext%>

语法不错误的话,程序只执行:response.Write(rs("homrpageTop_code")

他不会管rs.movenext

所以建议楼主这样试试看!

我没有学过asp但是我的思路是:rs.movenext放在if的后面!不要放在else的后面!

试试看!

帮不了你啊