我想做个ASP页面,实现随机显示数据表中的数据,怎么做能让查到的数据不重复?

问题1:我想做个ASP页面,实现随机显示数据表中的数据,怎么能知道数据记录的条数,也是就代码中的bignum 我现在一直是看完了数据库手动改的,我知道能用select count(num) from table 查出来,但怎么加到现在代码里.
产生随机数代码如下:
DIM ranNum
Randomize()
bignum=100
ranNum=int(rnd*bignum+1)

问题2:怎么做能让查到的数据不重复?
也就是每次刷新页面都不会随机到上次的数据,怎么实现?

我用的asp + access,脚本用vbscript
最好有代码,解决问题给分
不清楚的加本人QQ:27175578 加时说明<百度知道>字样

<%
'-------------------------数据库连接-----------------------
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" &_
"Data Source=" & Server.MapPath("data.mdb")
objConn.Open
'-------------------------数据库连接-----------------------

'-------------------------检索数据-----------------------
strSQL = "SELECT id,DataColumn FROM DataTable"
'Sql语句,检索数据库
Set objRS = Server.CreateObject("ADODB.Recordset")
'创建记录集
objRS.Open strSQL, objConn, 1, 1
'执行检索
Count=objRS.RecordCount
'得到记录总数
Item=4
'显示记录数
'-------------------------检索数据-----------------------

'-------------------------------------------------------------------------------
redim a(Item, 2),t(Count)
'定义2数组,数组a用来储存记录,数组t用来删选记录

'---------------------------------------
'初始数组数值,目的为了插入数据以后和此值做比较
for each j in t
j=0
next
'---------------------------------------

'---------------------------------------
' 随机抽取记录号
Randomize timer '初始化随机数生成器
for j=1 to Item
k=int(rnd*Count+1) '从总数里面随机取一条记录
do while t(k)<>0 '判断是否记录是否已经在数组中
k=int(rnd*Item+1)
loop
t(k)=1 '第k条记录被选中
next
'--------------------------------------
j=1:i=1'定义下标

'--------------------------------------
' 循环选取数据集objRS中的部分记录存放到数组中
Do While Not objRS.Eof
if t(j)=1 then
a(i,1)=objRS("id") '记录id
a(i,2)=objRS("DataColumn") '记录内容
i=i+1
end if
j=j+1
objRS.MoveNext
Loop
'--------------------------------------
'-------------------------------------------------------------------------------

'----------------------------显示内容--------------------
for i=1 to Item
Response.write "序号"&a(i,1)&"<br>"
Response.write "内容"&a(i,2)&"<p>"
next
'----------------------------显示内容--------------------

'---------------------------
'释放资源
objRs.Close
set objRs=nothing
objConn.Close
set objConn=nothing
'---------------------------
%>

网上很多例子。
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-05-20
高手

asp 如何读取 不重复 随机记录
SQL server数据库有个NewID函数,可以很方便的用SQL语句得到数据表中的随机数据。即可以使用以下SQL语句来实现:sql="Select top 10 * from TableName order by NewId()"Access数据库同样提供一个Rnd函数,可以通过以下SQL语句来实现随机:sql="select top 10 * from TableName order by Rnd(id)"Rnd...

用ASP或SQL怎么随机读取表中的记录???
解决办法是将ID首先存储在数组中,随机数查找数组的下标,最后按数组存储的ID查询就不会出错了(但只能适用在记录数在数组容许的条件,如果记录数太多,此方法运行比较慢)。

求asp程序,随机1-200之间数字,每次随机出来1个数字,点击200次随机数字...
2、设置用户也就业页面用户COOKIES。一个记录用户使用次数,一个记录已经使用的数字,用一个符号区分开。3、下面是逻辑问题,先取得随机数,取得COOKIES,是否第一次或者最后一次?取得的随机数和已经使用的数字查找,如果有了,重新获取对比。知道没有重复就输出。然后更新COOKIES。

asp+access 怎样才能随机抽数据库中的记录?
Set rs = Server.CreateObject("Adodb.RecordSet")rs.open sql,conn,1,1 DIM Appeared Call DisRndRecord(10,rs.recordCount)'调用函数该位置显示记录 '###SUBS '#DisRndRecord(DisNum,rsBound)'#参数DisNum:显示数量 '#参数rsBound:随机数产生范围 Sub DisRndRecord(DisNum,rsBound)DIM i,Thi...

用asp随机从数据库中取出100条符合某个条件的记录,怎么写
取得alixixi表中100条符合这个条件(id大于200小于4000)的随机记录.SQL = "SELECT TOP 100 * FROM alixixi where id>200 and articleid<4000 ORDER BY NEWID()"参考资料:http:\/\/www.alixixi.com\/dev\/Web\/ASP\/ASP_3\/2007\/200702053102.html ...

在asp中怎么才能实现随机抽取数据库中的记录?
用random函数取随机数就可以了然后将取得的随机数用SQL语句查询和你数据库中的某条记录ID是否相同是的话就显示,不是就不显示,要想显示多个随机的记录你可以用DO WHILE循环来做!还不明白发消息问我,顺便把你提问的问题也复制给我,太多了我分不清~...

asp.net生成四位数的随机数,并且保证48小时内不会重复
方法1:将所有四位数字生成并存放到ArrayList或者类似的数组中 然后每次随机取其中一个 并在得到后从数组中删除该数字 ArrayList al = new ArrayList();for(;;){ ...(初始化数组并向数组添所有四位数字)} 下面是得到数字 int i = random.Next(0,al.Count-1);string str = al[i].ToString()...

ASP从数据库的表中随机抽取几条信息显示到页面怎么做
objConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" &_"Data Source=" & Server.MapPath("database\/5red#database.asp")objConn.Open '---数据库连接--- '---检索数据--- strSQL = "SELECT id,title FROM news"'Sql语句,检索数据库 Set objRS = Server.CreateObject("ADOD...

asp如何随机提取数据库数据?
随机提取10条记录的例子: Sql server: select top 10 * from 表 order by newid() Access: Select top 10 * FROM 表 orDER BY Rnd(id) Rnd(id) 其中的id是自动编号字段,可以利用其他任何数值来完成 比如用姓名字段(UserName) Select top 10 * FROM 表 orDER BY Rnd(len(...

...条数据,每次只显示10条,如何在我刷新后随机显示10条出来,解决后加分...
原理先读到数组中,然后用随机数取出 <!--#include file="inc\/xconn.asp"--> < dim a(100,2),r(100)i=1 set rs=conn.execute("select top 100 id,title from news order by id desc")do while not rs.eof '初始化数组数据 a(i,1)=rs("id")a(i,2)=rs("title")rs.movenext...

相似回答
大家正在搜