随机数的问题(.net)我在做一个随机出题的模块!数据库里有20道题,我要随机出来6 个,Sql 语句应该怎么

随机数的问题(.net)我在做一个随机出题的模块!数据库里有20道题,我要随机出来6 个,Sql 语句应该怎么,第1张

你用的什么数据库,不同的数据库查询语句是不一样的

SQL Server:

Select TOP 6 From TABLE Order By NewID();

Access:

Select TOP 6 From TABLE Order By Rnd(ID) ; //其中ID为表的主键,也可以是其他排序字段

MySql:

Select From TABLE Order By Rand() Limit 6

不知道你的数据库是那种 假如是access的吧

string subjectName=ComboxTagToString(); //// combox的tag属性存储数据库科目对应的表名

string strConnection = @"Provider=MicrosoftACEOLEDB120;Data Source=" + @"你的数据库路径";

OleDbConnection oleDBcon = new OleDbConnection(strConnection);

oleDBconOpen();

DataTable dt = new DataTable();

OleDbDataAdapter odbAdapter = null;

string strSQL = stringFormat("select from {0}", subjectName);

if (oleDBconState == SystemDataConnectionStateClosed)

{

oleDBconOpen();

}

try

{

string sDatetime = SystemDateTimeNowToString("mmss");

OleDbCommand oleDBcmd = new OleDbCommand(strSQL, oleDBcon);

odbAdapter = new OleDbDataAdapter(oleDBcmd);

odbAdapterFill(dt); //// 获取对应的表

DataRow pRow=null;

for (int i = 0; i < dtRowsCount; i++)

{

pRow = dtRows[i]; //// 第i道题目

}

}

自己和自己连接 ,连接条件 Ascore+Bscore=90

select  from table  A, table B where Ascore+Bscore=90

然后抽取一条(因为是你需求是随机抽两条,做过自连接所以抽一条含有两个问题)

select top 1  from 

 (select  from table  A, table B where Ascore+Bscore=90) A

order by newid()

一下把200道都拿出来放到ArrayList,每次抽取10个200以内的随机数(最好取listsize())从list拿对应的题给出去。

另一种是用数据库,每个用户有自己的考试记录表,每做完10题提交一次记录到做过的题里再从数据库中随机取10个没做过的再记录到数据库,直到200题都做完。

两种方法思路基本一致。

区别就是在内存里搞还是在数据库里搞

以上就是关于随机数的问题(.net)我在做一个随机出题的模块!数据库里有20道题,我要随机出来6 个,Sql 语句应该怎么全部的内容,包括:随机数的问题(.net)我在做一个随机出题的模块!数据库里有20道题,我要随机出来6 个,Sql 语句应该怎么、winform窗体中,随机抽取数据库表中的问题。假设有三个科目的问题,当选中某个科目时,自动抽取对应的值、SQL 随机2道取题,要求题目总分等于90分等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/sjk/10152176.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存