public int GetRandom()//得到随机数
{
int count = 你数据库中选择提题的个数;
Random rm = new Random();
int temp = rmNext(1, count-1); //产生1~n-1的随机数
return temp;
}
$mysql_server_name="localhost"; //数据库服务器名称
$mysql_username="root"; // 连接数据库用户名
$mysql_password=""; // 连接数据库密码
$mysql_database=""; // 数据库的名字
// 连接到数据库
$conn=mysql_connect($mysql_server_name, $mysql_username,$mysql_password);
// 从表中提取信息的sql语句
$strsql="SELECT FROM 表名 WHERE type='交友'";
// 执行sql查询
$result=mysql_db_query($mysql_database, $strsql, $conn);
// 获取查询结果
var_dump(array_rand($result));
随机读取可用newid(),取一条可用top 1
举例:如在表test中随机抽取一条未被读取的数据,执行语句为:
selecttop1fromtestorderbynewid()第一次执行结果:
第二次执行结果:
结论:两次执行结果有可能一样,也有可能不一样,也就是实现了随机的效果。
declare @n int=1,@i int
declare @tb table(i int)
declare @t table(m int )
while @n<100
begin
insert into @tb select @n
set @n=@n+1
end
select from @tb
select @i=i from @tb where i=cast(rand()100 as int)
insert into @t select @i
select from @t
select from @tb where i=@i
select from @tb where i=cast(rand()100 as int) and i not in (select from @t)
设置一个自增字段 用cast(rand()100 as int)随机 把查到的编号存到一张表中 下一次查询 not in那个取过的编号 例子如上
在数据库里加一列“自动编号” 属性为自动编号
再加一列 ,属性为“数字”,标题为“记录”
窗体里放一ADO控件
加一列 “题目”;文本
加一列“1”;文本
加一列“2”;文本
加一列“3”;文本
加一列“4”;文本
加一列“正确答案”;数字
Option Explicit
Private conn As adodbConnection
Private Rs As adodbRecordset
Private ACSS As String
Dim s As Long
Public Sub Connect() '随机读取一个题目、打乱
Set conn = New adodbConnection
Set Rs = New adodbRecordset
connOpen "Provider=MicrosoftJETOLEDB40;Data Source=" & AppPath & "\数据库名mdb;Jet OLEDB:Database Password="
ACSS = "select from 你的表 ORDER BY 自动编号 ASC"
RsOpen ACSS, conn, adOpenStatic, adLockOptimistic
Randomize Time
Do
s = Int(Rnd RsMaxRecords + 1)
RsFind ("自动编号='" & s & "'")
Loop until Rsfields("记录")=0
Dim R As Integer '正确答案编号
Dim ABCD(3) As String
Dim TiMu As String
Dim AA As Integer
Dim BB As Integer
Dim CC As Integer
Dim DD As Integer
AA = Int(Rnd 4 + 1)
Do
BB = Int(Rnd 4 + 1)
Loop Until BB <> AA
Do
CC = Int(Rnd 4 + 1)
Loop Until BB <> CC And AA <> CC
Do
DD = Int(Rnd 4 + 1)
Loop Until DD <> CC And AA <> DD And DD <> BB
ABCD(0) = RsFields(AA)
ABCD(1) = RsFields(BB)
ABCD(2) = RsFields(CC)
ABCD(3) = RsFields(DD)
R = RsFields("正确答案")
Select Case R
Case Is = AA
'ABCD(0)里的是正确答案
Case Is = BB
'ABCD(1)里的是正确答案
Case Is = CC
'ABCD(2)里的是正确答案
Case Is = DD
'ABCD(3)里的是正确答案
End Select
TiMu = RsFields("题目")
Rsfields("记录")=1
RsClose
connClose
手打,可能有小错
End Sub
个人觉得VS2010好用的多、、
public void randResultSet() {
HashSet<Integer> set = new HashSet<Integer>();
SessionFactory sf = HibernateSessionFactorygetSessionFactory();
Session s = sfopenSession();
List<user> list = screateQuery("from user")list();
int maxSize = listsize();
while (true) {
int randNumber = (int) (Mathrandom() maxSize + 1) - 1;
setadd(randNumber);
if (setsize() >= 10) {
break;
}
try {
Threadsleep(10);
} catch (InterruptedException e) {
eprintStackTrace();
}
}
for (int a : set) {
user u = (user) listget(a);
Systemoutprintln(ugetName());
}
}
insert
into
a(id,姓名,性别)
values
(trunc(dbms_randomvalue(1,100)),'小明','男');
commit;
----trunc(dbms_randomvalue(1,100))
随机生成一个1~100以内的整数。
以上就是关于我要用C#做一个模拟考试系统,怎样随机的从数据库中调用选择题啊!请高人指点啊全部的内容,包括:我要用C#做一个模拟考试系统,怎样随机的从数据库中调用选择题啊!请高人指点啊、php,选择“数据库表里”符合某个条件的多个数据,然后怎么再随机选取一个、如何从mysql数据库中随机获取任意条数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)