主题:  显示经过排序后的前面五条记录

sunslee

职务:普通成员
等级:1
金币:0.0
发贴:107
#12003/5/23 20:28:41
dbq=server.MapPath("../db/cehua.mdb")

set cn1=server.createobject("ADODB.Connection")
set rs1=server.Createobject("ADODB.Recordset")
cn1.Open "driver={microsoft access driver (*.mdb)};dbq="&dbq
strsql="select top 5 * from wljj order by no desc"
rs1.open strsql, cn1


为什么显示的是所有记录,而不是经过排序后的前面五条记录,如果写代码?升序排列是那个关键字,降序排列是desc??



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#22003/5/23 21:32:07
你的数据内容都是重复的吧



透明男孩

职务:普通成员
等级:2
金币:0.0
发贴:373
#32003/5/23 22:19:19
我就遇到过这问题。
我只想让它显示前十个,可是显示的不止十个。
原因是它有重复的。
这如何解决?



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#42003/5/23 23:06:33
加一个判断

用一个变量循环,超过10就停止循环



sunslee

职务:普通成员
等级:1
金币:0.0
发贴:107
#52003/5/24 11:53:44
老兄详细点好吧,来个实例,我的数据不是重复的。
strsql="select top 5 * from wljj order by no desc"
这句话,如果这样写
strsql="select top 5 * from wljj "
就能显示前面五条,可是我要的是数据库最新的记录。
但是加上了,排序的条件就都显示出来了。怎么回事啊?



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#62003/5/24 12:44:01
你的no字段数据是重复的

加判断:

i=1
while not(rs.eof or rs.eof) and i < 11
<内容>
rs.movenext
i = i + 1



sunslee

职务:普通成员
等级:1
金币:0.0
发贴:107
#72003/5/24 20:36:18
如果我的no字段没有重复,应该不会出现这样的问题是吧,奇怪了,我的no字段是access数据库里面自动定义的阿,会自动变化的,我不需要控制的。应该不会那样的。