我要做一个自动组题的模块,在数据库中有一组按序号排列的题目,根据用户选择的条件得到一定量的序号不定的题目,怎么在这这些序号不定的题目里面再随机选择一定数量的题目组成一套题呢?该怎么用程序实现呢?C#的随机数支持这样吗?

解决方案 »

  1.   

    0-9 new System.Random().Next(10)
    A-Z
    int t=new System.Random().Next(65,90);
    char c=(char)t;
    a-z
    int t=new System.Random().Next(97,122);
    char c=(char)t;
      

  2.   

    if you are using SQL Server, you can do something likeselect top 8 * from YourTable order by newid()otherwise, you have to retrieve all records that satisfy your condition, then programmatically pick a certain number of records, look into System.Random class
      

  3.   

    如果用SQL Sever,select top n * from Table1 where .... order by newid()
    如果是Oracle,那么下面两句可以都实现:
    select * from (select * from tablename order by sys_guid()) where rownum<N   
    select * from (select * from tablename order by dbms_random.value) where rownum<N;
      

  4.   

    Random R = new Random();
    int intRandomNumber = R.Next(1,1000);  string str="Provider=Microsoft.Jet.OLEDB.4.0; Data source=db\\TestSystem.mdb ";
    OleDbConnection conn=new OleDbConnection(str);
    string sql="select top 4 * from chooseSubject order by rnd( "
    + (-1 * intRandomNumber).ToString() + "*id)";
      

  5.   

    用这个 select top '"+num+"' * from YourTable order by newid()
    我原来做生成试卷时就是用的这个,这个num是定义题数的.
    在这里用随机数不方便,如果你用随机数你还要排除所用的题.
      

  6.   

    我用的是SQL SERVER,我得到这个随机记录集后怎么再把它插入到一个新的数据表里呢?
      

  7.   

    正态分布的随机数发生器 in C#
    http://dev.csdn.net/author/Solstice/d99caee900e4400780d3177ac64402d2.html
    如何实现真正的随机数 
    http://www.cnblogs.com/idior/archive/2005/03/10/116345.html还有我整理的一些关于随机数的讨论
    http://onlytiancai.cnblogs.com/archive/2006/05/20/201842.html
      

  8.   

    我在做试题生成的时候是:
    先用一个二维数组用来保存试题的基本信息,如 a[i][0]=选择题 a[i][1]=10等等.
    当你生成试卷时,在循环里去读二组数组里的基本信息,一条一条的读,
    如,先在数据集里生成10个选择题,再一道道的插入到WORD中,再生成其它的题,再插入到WORD中.你是不是想把试卷所有的题一起放到一个数据集中???然后再集插入到WORD?
      

  9.   

    select top n * from YourTable order by newid()
      

  10.   

    我是把选择题,填空题,判断题等根据题类型放在不同的表里,让用户选择一定的条件选出题目,再把题目放到试卷库中的不同表,应该是很好实现的,用select top n * from Table1 where .... order by newid()应该是可以实现的,但该如何插入到试卷库中的表呢?刚学习,请各位高手指点指点啊
      

  11.   

    SQL里面在函数中不可以使用随机函数,但可以在视图中使用,所以可以在视图中生成随机数供调用...
      

  12.   

    Random R = new Random();
    int intRandomNumber = R.Next(1,1000); string str="Provider=Microsoft.Jet.OLEDB.4.0; Data source=db\\TestSystem.mdb ";
    OleDbConnection conn=new OleDbConnection(str);
    string sql="select top 4 * from chooseSubject order by rnd( "
    + (-1 * intRandomNumber).ToString() + "*id)";
    ////////////////请问下 最后一个* id 是什么?