Set conn=server.CreateObject("adodb.connection")
conn.provider="microsoft.jet.oledb.4.0"
conn.open server.mappath("english.mdb")Set rs=server.CreateObject("adodb.recordset")
rs.open "select * from sentence",conn,1,1'先读取全部记录max=rs.recordcount ‘读取最大记录数
For i=1 To 7 ’随机输出7个
randomize
id=Int(Rnd(now)*max+1) ‘定义从1到最大记录数之间的随机记录号
rs.absoluteposition=id ’定义记录集的绝对指针
Response.Write rs(0)&rs(1)&rs(2)
Next
%>
rnd是asp的一个随即函数,但是sql中并无此函数,故,你的这个sql语句是有问题的。你可以这样写
<!-- #include file="conn.asp" -->
<%
set rs=server.CreateObject("adodb.recordset")
rs.open "select top 1 id from url order by id desc",conn,1,1
if not rs.bof and not rs.eof then
maxid=rs("id")
rs.close
function suiji()
Randomize
suiji=Int((maxid - 1+ 1) * Rnd + 1)
end function
'然后开始随即提取记录
i=0
do while i<1
rs.open "select * from url where id="&suiji(),conn,1,1
if not rs.bof and not rs.eof then
i=i+1
response.write "你现在随即提取的记录的id是"&rs("id")
end if
rs.close
loop
%>
这样不就随即提取出来了一个了?呵呵是不是很简单?当然,这个东西如果你随即提取一条是不成问题的,如果提取多条,很可能会有重复显示的现象,那么,如何来让他在提取多条记录时不重复呢?哎,自己多想想吧哈哈,这是我年前写过的小程序了。
ASP 随机提取数据库记录<!--#include file="数据库连接"-->
<%
"一个从数据库中随机读取纪录的例子
Set Rs1=server.CreateObject ("adodb.recordset")
Set Rs=server.CreateObject ("ADODB.RECORDSET")
SQL="Select id from Article order by id desc"
rs.Open sql,dataconn,1,1
If not rs.EOF then
total=rs("id") "取最大的ID
rs.Close
'定义随机数..
Randomize
R=Int((total - 1+ 1) * Rnd + 1)
SQL="Select id,content from Article where id="&R
rs.Open sql,dataconn,1,1
if not rs.EOF then
content=RS("content")
content=replace(content,chr(10),"<br>")
content=replace(content,chr(13),"<br>")
content=replace(content,"<br><br>","<br>")
Response.Write content
else
sql1="select content from Article"
rs1.Open sql1,dataconn,1,1
if not rs1.eof then
"取第一条纪录作为默认的显示纪录
content=RS1("content")
content=replace(content,chr(10),"<br>")
content=replace(content,chr(13),"<br>")
content=replace(content,"<br><br>","<br>")
Response.Write content
else
"数据库为空
Response.Write "不存在"
end if
rs1.Close
end if
Rs.Close
end if
set Rs=nothing
%>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)