asp+access 为何不能随机抽取数据库记录

welcent 2010-06-30 03:42:22
开发环境:Dreamweaver+asp+access.

想从数据库中(有好几百条试题记录)随机抽取30条不同试题,给考生考试。

利用DW的服务器行为,生成查询,并把查询的sql修改为:SELECT top 30 * FROM 计算机初级_单选题 orDER BY Rnd(题号) (这sql在Access测试,可以抽出30条随机记录,且每次都不相同)

可以成功运行,但每次抽取的都是相同的记录,无论刷新、重新登录或者到别的机子测试,每次都抽到相同的记录。

郁闷中。请指教!!
...全文
74 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fjfndfjf 2010-07-01
  • 打赏
  • 举报
回复
SQL语句改成这样吧。。

SELECT top 30 * FROM 计算机初级_单选题 ORDER BY Rnd(题号-timer())


注意:如果题号要为自动编号或数字,不然可能会出错哦。

welcent 2010-06-30
  • 打赏
  • 举报
回复
开发环境:Dreamweaver+asp+access.

想从数据库中(有好几百条试题记录)随机抽取30条不同试题,给考生考试。

利用DW的服务器行为,生成查询,并把查询的sql修改为:SELECT top 30 * FROM 计算机初级_单选题 orDER BY Rnd(题号) (这sql在Access测试,可以抽出30条随机记录,且每次都不相同)。

可以成功运行,但每次抽取的都是相同的记录,无论刷新、重新登录或者到别的机子测试,每次都抽到相同的记录。

郁闷中。请指教!!

以下为原代码,都是利用DW的服务器行为生成的。。只修改了sql语句。
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="../Connections/conn.asp" -->
<%
Dim dan
Dim dan_numRows

Set dan = Server.CreateObject("ADODB.Recordset")
dan.ActiveConnection = MM_conn_STRING
dan.Source = "SELECT top 30 * FROM 计算机初级_单选题 ORDER BY Rnd(题号)"(只修改了这行)
dan.CursorType = 0
dan.CursorLocation = 2
dan.LockType = 1
dan.Open()

dan_numRows = 0
%>
<%
Dim Repeat_dan__numRows
Dim Repeat_dan__index

Repeat_dan__numRows = -1
Repeat_dan__index = 0
dan_numRows = dan_numRows + Repeat_dan__numRows
%>
<%
While ((Repeat_dan__numRows <> 0) AND (NOT dan.EOF))
%>
<table width="780" border="0" cellspacing="0" cellpadding="5">
<tr>
<td width="100" align="right"><%=abs(Repeat_dan__numRows)%>、</td>
<td width="599" align="left"><%=(dan.Fields.Item("题目").Value)%></td>
</tr>
<tr <% if (dan.Fields.Item("选项A").Value)="" then response.Write("style= 'display:none '") end if %> >
<td width="100" align="right"> </td>
<td align="left"><label>
<input type="radio" disabled="false" name="dan_<%=(dan.Fields.Item("题号").Value)%>" value="A" />
<%=(dan.Fields.Item("选项A").Value)%></label></td>
</tr>
<tr <% if (dan.Fields.Item("选项B").Value)="" then response.Write("style= 'display:none '") end if %> >
<td width="100" align="right"> </td>
<td align="left"><input type="radio" disabled="false" name="dan_<%=(dan.Fields.Item("题号").Value)%>" value="B" />
<%=(dan.Fields.Item("选项B").Value)%></td>
</tr>
<tr <% if (dan.Fields.Item("选项C").Value)="" then response.Write("style= 'display:none '") end if %> >
<td width="100" align="right"> </td>
<td align="left"><input type="radio" disabled="false" name="dan_<%=(dan.Fields.Item("题号").Value)%>" value="C" />
<%=(dan.Fields.Item("选项C").Value)%></td>
</tr>
<tr <% if (dan.Fields.Item("选项D").Value)="" then response.Write("style= 'display:none '") end if %> >
<td width="100" align="right"> </td>
<td align="left"><input type="radio" disabled="false" name="dan_<%=(dan.Fields.Item("题号").Value)%>" value="D" />
<%=(dan.Fields.Item("选项D").Value)%></td>
</tr>
<tr style="display:none">
<td width="100" align="right">正确答案:</td>
<td align="left"><%=(dan.Fields.Item("答案").Value)%>
<input name="hd_dan_<%=(dan.Fields.Item("题号").Value)%>" type="hidden" value="<%=(dan.Fields.Item("答案").Value)%>" /></td>
</tr>
</table>
<%
Repeat_dan__index=Repeat_dan__index+1
Repeat_dan__numRows=Repeat_dan__numRows-1
dan.MoveNext()
Wend
%>
<%
dan.Close()
Set dan = Nothing
%>
  • 打赏
  • 举报
回复
DW生成的查询部分,代码贴一下

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧