可以先把ID放到数组中,然后再根据随机数取得数组中的ID。
int[] array = new int[ds.Tables[0].Rows.Count];
for(int i = 0; i < ds.Table[0].Rows.Count; i ++)
{
      array[i] = int.Parse(ds.Table[0].Rows[i]["ID"].ToString());
}
Random rnd=new Random();
string id = "";
for(int i = 0; i < 5; i ++) //这里的5是你要取的多少条记录。
{
ID += array[(int)(rnd.NextDouble()*(array.Length-1))] + ",";
}这就是得到的随机数,格式为1,4,5,8,3

解决方案 »

  1.   

    以前很多人问过了,简单的一句sql语句就能实现
    select top 10 * from question order by newid()//随即抽取10道题目
      

  2.   

    大象大哥
      你后面的newid()是什么意思呢,使数组吗,那怎么还order by呢
    还有这样随机抽取出来的几率一样吗
    谢谢
      

  3.   

    newid()是数据库本身对一条数据所做的标识吧,在用户表中是看不见的。如果想写一个删除某张表中重复数据的sql语句就要用到这个。
      

  4.   

    太神奇了
    谢谢
    什么原理呀
    我都折腾n天了
    就这么一条sql就行啦?
      

  5.   

    by newid() 
    newid()就是产生一个Guid---全球唯一标志(随机的)
    接下来应该知道了吧!