string tableName = "表名"//表的名称
DataSet ds = new DataSet()//DataSet是表的集合
string sql = "select * from " + tableName//sql语句查询数据
OleDbDataAdapter da = new OleDbDataAdapter(sql, conn)//从数据库中查询
da.Fill(ds, tableName)//将数据填充到DataSet
int recordCount = ds.Tables[tableName].Rows.Count//记录的数量
int randomNumber = new Random().Next(recordCount)//取得一个随机整数
ds.Tables[tableName].Rows[randomNumber]//调用该随机记录
<%set rs=server.CreateObject("adodb.recordset")
sql = "select top 1 * from [AAA] where a1=2 ORDER BY Rnd(-(id + " &Int((10000 * Rnd) + 1) &"))"
rs.open sql,conn,1,1
if rs.recordcount>0 then
do while not rs.eof
%>
.....
<%
rs.movenext
loop
end if
rs.close
set rs=nothing
%>
在 where 后面自己加判断就是了,条数 top 1 自己修改,10000 是表 AAA 随机抽取10000的记录条数
总的意思段代码就是 随机读取 带条件类型的 数据,如果实在不清楚,请加我的QQ156107320 。
至于是不是你要的东西,你自己试了就晓得了,希望能帮助到你,大家一起学习,分多分少都没关系。
order by 是在找到结果集后排序,也就是在执行完SELECT后,排序SELECT的结果集。你的SELECT TOP 1 * 找出来的结果集始终是第一条,且只有一条,故每次查询的都是同一条记录。你应该把随即数作为条件加在WHERE 中,而不是加在ORDER BY 中。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)