为什么不能连续两次rs.movenext?
楼主linktag()2006-12-25 16:02:14 在 Web 开发 / ASP 提问
从数据库读取记录后。为什么不能连续两次运行rs.movenext
Sql="select * from user"
Set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
不使用循环,期望能跳过第一条记录。
rs.MoveNext
rs.MoveNext
这样会提示错误。不知道哪里出了问题?
问题点数:40、回复次数:12Top
1 楼Unending(看分答题)回复于 2006-12-25 16:04:08 得分 0
如果查询结果空就会出错
Top
2 楼lingyu1983(sot)回复于 2006-12-25 16:07:33 得分 0
使用rs.movenext之前首先要判断是否有数据
rs.eof,才能保证不报错Top
3 楼brothercat(猫猫 ^_^)回复于 2006-12-25 16:09:25 得分 0
rs.MoveNext '这儿已经让你跳到下一条了
If Not rs.EOF Then '这儿你很可能没记录了。。
rs.MoveNext
End If
要不你先将游标移动到记录集的第一条记录后在向后移动
rs.MoveFirst
If Not rs.EOF Then
rs.MoveNext
End If
...
Top
4 楼bjyangjm(咚咚)回复于 2006-12-25 16:11:17 得分 0
只有rs.eof = false 时才能使用rs.MoveNext,使用rs.MoveNext之前要判断if not rs.eof then rs.MoveNextTop
5 楼tianshizhu()回复于 2006-12-26 08:34:33 得分 0
看看下一条记录是否为空,如果是空值rs.movenext就是错误的,要先判断一下!!Top
6 楼Mapleleaf123(为分而努力)回复于 2006-12-26 10:04:32 得分 0
看一下是不 是EOF了Top
7 楼cow8063(天涯远不远?不远!人在天涯,天涯怎会远)回复于 2006-12-26 10:34:39 得分 0
大家都说了Top
8 楼linktag()回复于 2006-12-26 16:50:25 得分 0
各位兄台,我从数据库刚读取的时候使用了两次rs.movenext,所以不应该是数据为空的问题。
提示错误:错误 '80020009'
我的目的是为了跳过数据记录中的第一条记录。Top
9 楼chenyu112(晨雨)回复于 2006-12-26 17:21:50 得分 0
那就在movenet之前判断一下是否已经到了最底的数据了。
如if not rs.eof then rs.movenext end ifTop
10 楼linktag()回复于 2006-12-26 17:51:28 得分 0
回复楼上的,使用了这种判断还是提示错误 '80020009'
非常奇怪。Top
11 楼linktag()回复于 2006-12-27 20:57:51 得分 0
继续等答案。Top
12 楼plought()回复于 2006-12-27 22:58:31 得分 0
专门做了测试:
可以连续使用rs.MoveNext,达到跳过一条记录的目的
我测试使用的是下列方法:
<%
rs.MoveNext
rs.MoveNext
%>
如果没有循环控制数据库记录指针是否到EOF,最后出错
所以正确的代码是:
<%
rs.MoveNext
If not rs.EOF() Then rs.MoveNext
Top
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |








网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)