
你用的什么数据库,不同的数据库查询语句是不一样的
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分等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)