请问C#如何从access数据库中随机抽取一条数据?

请问C#如何从access数据库中随机抽取一条数据?,第1张

OleDbConnection conn = new OleDbConnection()//这个要open的,我就不详细写了

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 中。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9943495.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存