.net程序随机抽取试卷改成按顺序抽取!

npatao 2011-05-27 12:10:51
请教大家,我有个随机的问题,我刚在学.net程序,有下到一个源码,就是随机抽取考卷的,下面是随机的,但是我想把随机改成不随机的,按输入考题的顺序排列,该怎么样呢?谁能解答下:

下面是部分代码,请问要改哪些?
tx_extime.Value = Kminfo[3];
string lst = roandow_data(mySet.Tables[0].Rows.Count, int.Parse(Kminfo[1]));
txID.Text = lst;
txVuale.Text = Kminfo[2];
string[] lsts=lst.Split(';');
for (int i=0;i<lsts.Length;i++)
{
Table ntb = new Table();
TD1.Controls.Add(ntb);
TableRow ntr = new TableRow();
ntb.Controls.Add(ntr);
TableCell ntc = new TableCell();
ntr.Controls.Add(ntc);
Label nlb = new Label();
nlb.Font.Bold = true;
nlb.Font.Size = 11;
nlb.Text = (i+1).ToString() + "、" + mySet.Tables[0].Rows[int.Parse(lsts[i])]["q_question"].ToString();
ntc.Controls.Add(nlb);
ntr = new TableRow();
ntb.Controls.Add(ntr);
ntc = new TableCell();
ntr.Controls.Add(ntc);
RadioButtonList nrbl = new RadioButtonList();
for (char ia = 'A'; ia <= 'D'; ia++)
{
ListItem li = new ListItem();
li.Text = ia.ToString() + "、" + mySet.Tables[0].Rows[int.Parse(lsts[i])]["q_key" + ia.ToString()].ToString();
li.Value = ia.ToString();
nrbl.Items.Add(li);
}
nrbl.ID = "q_" + mySet.Tables[0].Rows[int.Parse(lsts[i])]["q_id"].ToString();
ntc.Controls.Add(nrbl);
}
Button1.Visible = true;
}
private string roandow_data(int allcount, int thecount)
{
Random rnd = new Random();
List<int> lst = new List<int>();
int i = 0;
string str = "";
while (i < thecount)
{
int j = rnd.Next(allcount);
if (lst.IndexOf(j) == -1)
{
lst.Add(j);
i++;
}
}
foreach (int j in lst)
{
if (str.Length == 0)
{
str = j.ToString();
}
else
{
str = str + ";" + j.ToString();
}
}
return str;

哪位能够解答下!!
...全文
123 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
子夜__ 2011-05-27
  • 打赏
  • 举报
回复
其实可以在数据库里 select top x from table order by newid()来取随机的。
beckfun 2011-05-27
  • 打赏
  • 举报
回复
private string roandow_data(int allcount, int thecount)
{
Random rnd = new Random();
List<int> lst = new List<int>();
int i = allcount;
string str = "";

while (i < thecount)
{

/*int j = rnd.Next(allcount);*/

if (lst.IndexOf(i) == -1)
{
lst.Add(i);
i++;
}
}
foreach (int j in lst)
{
if (str.Length == 0)
{
str = j.ToString();
}
else
{
str = str + ";" + j.ToString();
}
}
return str;}
npatao 2011-05-27
  • 打赏
  • 举报
回复
有懂的没?

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧