A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 石国庆 中级黑马   /  2013-3-14 20:32  /  2866 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 石国庆 于 2013-4-16 20:44 编辑

想做一个在线测试模块,数据库里面有很多选择题,不过如何做到随机出题那,大家有什么好的思路?

7 个回复

倒序浏览
selct count(*) from table 能得到 数据库中一共有多少个选择题,在c#中用int count 来接收吧 用 Random rand=new Rndom(count) 随机返回一个rand ,然后利用这个rand 做ID查询出来这道选择题,不好意思,初次回答问题,叙述不太清楚,不懂得欢迎再来问我,希望能帮到你,如果数据库中ID不连续,可以试着用这个查询一下select * from (select row_number() over(order by id) row_id,* from book) book1 where book1.row_id=2
回复 使用道具 举报
马胜骁 发表于 2013-3-16 18:20
selct count(*) from table 能得到 数据库中一共有多少个选择题,在c#中用int count 来接收吧 用 Random ra ...

from里面的语句能具体的解释一下吗?
回复 使用道具 举报
先得到总题数,然后用 Random 产生1到总题数之中的一个随机数,根据随机数,   Select 题目 from 表名 where 题目编号='随机数'   
回复 使用道具 举报
不知道我这思路行不行,你可以试试!
回复 使用道具 举报
from 里面的是ROW_namuber 函数,主要是用来表中生成一个从1开始连续的ID,这样方便你以为的输出。
回复 使用道具 举报
马胜骁 发表于 2013-3-18 10:26
from 里面的是ROW_namuber 函数,主要是用来表中生成一个从1开始连续的ID,这样方便你以为的输出。 ...

Select  top10 * from test where testcourse=’”+Session[‘NM’].ToString()+”’ order by newid()这是我以前见到的一个方法,主要靠newid()方法,然后输出到dataset.与大家分享一下
回复 使用道具 举报
王起 发表于 2013-3-16 21:07
不知道我这思路行不行,你可以试试!

Select  top10 * from test where testcourse=’”+Session[‘NM’].ToString()+”’ order by newid()这是我以前见到的一个方法,主要靠newid()方法,然后输出到dataset.与大家分享一下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马