电脑爱好者,提供IT资讯信息及各类编程知识文章介绍,欢迎大家来本站学习电脑知识。 最近更新 | 联系我们 RSS订阅本站最新文章
电脑爱好者
站内搜索: 
当前位置:首页>> Asp>>ASP如何制作随机显示的文章条目:

ASP如何制作随机显示的文章条目

来源:www.cncfan.com | 2006-4-4 | (有1800人读过)

用SQL语句得到Access数据库中的随机记录集!

“用SQL语句得到数据库中的随机记录集”问题的答案网上以经很多了吧:
像SQL Server 2000:
SELECT TOP n * FROM tanblename ORDER BY NEWID()
Access
SELECT TOP n * FROM tanblename ORDER BY rnd([一个自动编号字段])

好了!我们来说说这个Access的:

打开Access2003建立一个带有自动编号字段的表 T1 : id_(auto),content_
随便插入些许记录 .
好了,我们是搞WEB开发的!
写个ASP看看
<%

Dim Con,RS
Set Con = Server.CreateObject("ADODB.CONNECTION")
Con.ConnectionString = "Provider=MicroSoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("*.mdb")
Con.CommandTimeout = 20
Con.CursorLocation = 3
Con.Open


Set RS = Con.Execute("SELECT TOP 3 [content_] FROM [T1] ORDER BY rnd([id_])")
Do While Not RS.EOF
Response.Write RS.Fields("content_").Value & "<br />"
RS.MoveNext
Loop
RS.Close
Set RS = Nothing


Con.Close
Set Con = Nothing


%>


在localhost上运行一下这个ASP,看到结果了吧,记住!再F5一下!咦?怎么没有改变,不是我们想要的!
当然了,rnd在运行前应该执行Randomize语句的!
可是又怎么执行?
Access里是否支持Randomize?我也不太清楚,带着疑问看了一下帮助,只找到了VBS里的那个Randomize……
解决问题是每个程序员最来精神的!
赶紧去Google一下! 结果半天没找到解决方案,有的干脆用asp来循环的找position,呸,费半天劲干什么呢,我就想SQL解决怎么办?
Access里的Randomize不知道怎么用,asp的基本功还会吧?开动脑筋,有了!


<%

Dim Con,minPID,RS
Set Con= Server.CreateObject("ADODB.CONNECTION")
Con.ConnectionString = "Provider=MicroSoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("*.mdb")
Con.CommandTimeout = 20
Con.CursorLocation = 3
Con.Open

Randomize
Set RS = Con.Execute("SELECT TOP 3 [content_] FROM [T1] ORDER BY rnd(-(id_+" & rnd() & "))")
Do While Not RS.EOF
Response.Write RS.Fields("content_").Value & "<br />"
RS.MoveNext
Loop
RS.Close
Set RS = Nothing


Con.Close
Set Con = Nothing

%>

嗯,这回再试一试!

OK了!每次F5后都能是“随机”的感觉了

Asp热门文章排行
网站赞助商
购买此位置

 

关于我们 | 网站地图 | 文档一览 | 友情链接| 联系我们

Copyright © 2003-2024 电脑爱好者 版权所有 备案号:鲁ICP备09059398号