- 在线时间
- 1023 小时
- 专家
- 0
- UID
- 64352
- 注册时间
- 2003-9-18
- 帖子
- 678
- 精华
- 0
- 积分
- 12334
- 居住地
- 广东省 佛山市
- 离线
- 22 天
- 帖子
- 678
- 体力
- 12294
- 威望
- 8
- 居住地
- 广东省 佛山市
|
发表于 2004-6-10 17:13:00
|显示全部楼层
看了很多人讨论关于access随机取记录的帖子
不才,写了一个随机显示记录的解决方法,希望大家指正
数据库里有5条记录,随机抽取4条。
code
--------------------------------------
- <%
- '-------------------------数据库连接-----------------------
- 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
- '---------------------------
- %>
复制代码
Data
- id DataColumn
- --------------------------
- 1 a
- 2 b
- 3 c
- 4 d
- 5 e
复制代码
演示:http://phx.cz0550.com/tz/rnd.asp
|
-
总评分: 威望 + 3
查看全部评分
|