| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4983 人关注过本帖
标题:高手救我:怎样判断是否最后一条记录???急!!!
只看楼主 加入收藏
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
rs.EOF的确是记录集对象判断最后一条记录的属性,BOF是判断是否是第一条记录的属性。
(P.S:EOF或者BOF都是真和假的逻辑值,EOF为真只有在当前记录集已经是最后一条记录,如果执行记录集对象的MoveNext方法EOF就为真。BOF则反之如果当前纪录集已经是第一条记录,继续执行记录集对象的MovePrevious方法BOF就会为真)
按照楼主的意思是判断当前读出的数据也就是sql = "select * from dw where dwname='"&request("dwname")&"'"
返回的结果是不是最后一条记录。

那如果这样的话之前必须得出判断最后一条记录的判断依据应该这么写
Dim LastKey
set rs = server.CreateObject ("adodb.recordset")
rs.open "select * from dw",conn,1,1
rs,MoveLast
LastKey=rs.Fields(1).Value
rs.Close
sql = "select * from dw where dwname='"&request("dwname")&"'"
rs.Open sql,conn,1,1
if  rs.Fields(1).Value=LastKey then
。。。
else
。。。
end if
不过我写的代码也有两处关键问题
首先这句的作用是得到标示LastKey=rs.Fields(1).Value最后一条记录的关键字,这个地方跟数据库的设置有关。也就是数据库中表的主键(P.S:主键是数据库中保证每条记录不重复的字段的,也就是说比如学生信息表中找一名叫“张三”的学生。可叫“张三”的学生有10位,这时就无法区分到底是哪个学生了。如果加了一个主键学号进行区分,那么找一个学号是3,姓名叫“张三”的学生就肯定只有一个学生符合这个要求了。)
用主键作为判断依据,来判断当前得到的是不是最后一条。
2005-10-14 16:01
happyhu
Rank: 1
等 级:新手上路
帖 子:292
专家分:0
注 册:2005-7-12
收藏
得分:0 
谢谢大家!如果哪位还有好办法请继续跟贴,多多益善,谢谢!!!

2005-10-14 21:51
rainic
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2367
专家分:0
注 册:2005-8-9
收藏
得分:0 
set rs = server.CreateObject ("adodb.recordset")
rs.open "select * from dw",conn,1,1
if not rs.eof then
    rs.movenext
    if rs.eof then
        rs.moveprevious
        response.write("这是最后一条记录")
        '...
    else
        response.write("这不是最后一条记录")
        '...
end if
rs.close

2005-10-15 08:16
fcnh1983
Rank: 1
等 级:新手上路
帖 子:665
专家分:0
注 册:2005-8-31
收藏
得分:0 

if not eof then

{
rs.movelast   移到最后一条记录!!!!!!!!!!!!
............................

}

[此贴子已经被作者于2005-10-15 8:48:42编辑过]



^^多谢赐教!!无以为报只好以身相许!!!^^谢谢,不用谢,要谢的,多说不用了^^如果真的要谢,那就嫁给我吧,好啊^^
2005-10-15 08:47
皮蛋粥
Rank: 1
等 级:新手上路
帖 子:129
专家分:0
注 册:2005-8-22
收藏
得分:0 
最后一条再 movenext 才是 eof 吧!?最后一条本身不是 eof

笨办法就是你用一个变量 Rdcount 先用 recordcount 属性保存记录数,循环的时候用一个变量 CurrentRd 保存当前记录的序号,每 movenext 一次就加 1,这样当 CurrentRd=Rdcount 就是最后一条了。

,\'\'\',\'\'\', ,\'\'\',\'\'\', \',波波 ,\' \',荟荟 ,\' \' , \' \' , \'
2005-10-16 19:52
z3898449
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-10-20
收藏
得分:0 
看这段
i=0
do while not rs.eof
i=i+1
if i=rs.recordcount then
...
else
...
end if
2008-10-20 14:16
sunfishy
Rank: 3Rank: 3
等 级:论坛游侠
威 望:5
帖 子:311
专家分:163
注 册:2007-6-29
收藏
得分:0 
认同#15的方法..
dim i
dim ii
i=1
do while not rs.eof
.
.
rs.movenext
ii=i+1         '移到下一条记录的时候+1

if ii=rs.recordcount then        'i总和等于总记录数.
response.write "最后一条记录"
else
response.write "不是最后一条记录"
end if

loop
2008-10-20 14:43
快速回复:高手救我:怎样判断是否最后一条记录???急!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028748 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved