就你这个问题,如果不转换数组,我倒是有两个办法:
一、存储过程:
二、使用单一的sql语句:
简单的思想就是:获得一个随机数n,取出前n条记录但不在前n-1条内,我们得到的就是第n条记录了
①首先获得你这个dataset中的最大行数,根据这个最大行数来生成一个随机数
②根据随机数来拼sql语句:select top 5 id from table1 where not exists (select top 4 id from table1)
这样我们就获得了一个id (这其中的5是随机生成的数字,而4是通过5-1得到的数字)
可以一试,但是如果是大规模系统建议用第一种!
dataset你也可以当数组来用啊,本身也没什么区别吧。
然后你用随机函数生成index,再取值不就是一个随机的id集合了吗?
DataSet 只能添加 DataTable 和建立表之间的关系。DataTable 才支持你想要的操作。
1.先获取ds中的数据的最大索引值(maxIndex),和数据条数(count);
2.声明一个数组 int[] list=new Int[count];
3.使用一个For循环 :for(int i=0;i<count; i++){}
4.在循环内部用 int index = new Random().Next(0,maxIndex); 获取随机的索引值
5.然后获取随机的数据添加到List数组中: list[i]=ds.table[0].[index];
6.循环结束后list数组中的数据就是你想要的。