主题:  关于数据库内容显示的问题!!急!!

tanliwei

职务:普通成员
等级:1
金币:0.0
发贴:1
#12006/6/22 1:06:26
<%set conn=Server.CreateObject("ADODB.Connection"
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&Server.MapPath("data\persons-1.mdb"
set rs=conn.Execute("SELECT * FROM 医学动态"
rs.MoveFirst()
While Not rs.EOF%>
<A href='xiangxixinxi3.asp?bianhao=<%=rs(0)%>' target='_blank'><%Response.Write(rs(1)&"<br>"%></A>
<%rs.MoveNext()
Wend
conn.close()%>

以上这段代码是由第一条记录一直显示到最后一条记录,现在我想由最后一条记录一直显示到第一条记录,于是我就将 rs.MoveFirst()、While Not rs.EOF和rs.MoveNext()改成rs.MoveLast()、While Not rs.BOF和MovePrevious(),但是却报错,说不能反向显示,请问各位高手有什么方法解决从最后一条一直显示到第一条这个问题吗??还有如果我想从最后一条显示到倒数第30条又有什么方法可以解决呢??小弟我是新手啊,还有好多不懂,请大家帮帮忙啊!!



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#22006/6/22 1:40:48
这种方法在查询时就可以倒排序
如果要用MovePrevious,不能用conn.Execute方法,必须使用RecoredSet类型的Rs
RecoredSet类型就不用写出来了吧。


非常大鱼

三仙半

职务:普通成员
等级:1
金币:0.0
发贴:241
#32006/6/23 20:36:51
你做1 到30的循环,然后用MovePrevious方法,移动游标,同时在每次循环中判断是否BOF,是就退出循环,这样你的要求就达到了


闭起眼睛看人生

hcj52

职务:普通成员
等级:1
金币:0.0
发贴:6
#42006/7/4 9:10:24
你连接数据库后就会有记录集是吧,在记录集里的排序后选ID后面接着选降序就行了吗,

你也是用Dreamweaver跟Access做的吧,不过我也是好菜好菜,



三仙半

职务:普通成员
等级:1
金币:0.0
发贴:241
#52006/7/5 1:12:54
我的方法确实是太笨了,楼上两位说的是正解。
具体来说就是你把set rs=conn.Execute("SELECT * FROM 医学动态")中的
"SELECT * FROM 医学动态"替换成如下格式
"SELECT * FROM 医学动态 order by 你要做为排序依据的字段名 desc"
实际上你不一定是要先排序再输出,你只是想相对于原来的无序倒序输出,我的建议是这样的:
1、建立记录集的方法不要用connection对象的execute方法,而是采用如下格式:
set rs = server.createObject("ADODB.recordSet")
strSQL = "SELECT * FROM 医学动态"
rs.open strSQL,conn,1,3,1 'conn是你建立的connection对象变量
2、把rs的游标移动到结尾
rs.moveLast
3、用recordSet对象的MovePrevious方法结合循环做逆序输出
原因:用connection对象的execute方法得到的recordSet方法不支持更新,也不支持动态游标


闭起眼睛看人生

三仙半

职务:普通成员
等级:1
金币:0.0
发贴:241
#62006/7/5 1:17:07
另外,连接ACCESS建议使用OLEDB,格式如下:
dim conn
set conn = server.createobject("adodb.connection")
conn.open = "provider=microsoft.jet.oledb.4.0;" & "data source = " & server.mappath("bbs.mdb")
有许多初学者在遇到数据库连接时总是会出问题,然而使用上面的驱动程序只要你的数据库路径选对了就不会出问题了。


闭起眼睛看人生