简单的asp.net考试系统, 获取题库怎么判读用户选择的是否正确,学生有很多不懂请多多指教。
新手希望大家帮忙下,现在主要的问题是,当我点击Button控件的时候怎么对用户选择的进去判断是否正确,正确就加分,错就保持就好。
希望提供代发,怎么把取出来的数据进行判断。
题库表
以下是随机抽取5条的题库记录,
并且绑定到DataList1控件中显示。
string connstring = "server=.;database=Exam;integrated security=true";
con = new SqlConnection(connstring);
con.Open();
string cmdstring = "SELECT TOP(5) * FROM [Tb_Radio] Order By NewID()";
da = new SqlDataAdapter(cmdstring, con);
ds = new DataSet();
da.Fill(ds);
DataList1.DataSource = ds.Tables[0];
DataList1.DataBind();
以下是DataList1模版里面添加了RadioButton控件做选择用。
用户运行效果如下:
--------------------编程问答-------------------- 遍历了DataList中每个题目,找到它的ruid的值以及用户选择的值,然后到数据库里按照ruid找到一条对应的记录,判断用户选择的值跟数据库中的Rcorrect是否一致,如果一致则计分。
似乎是很平铺直叙的,不需要任何技术。 --------------------编程问答-------------------- 这要按照软件架构的思路去理解程序。
读取源代码,假设它就是普通的asp.net程序,那么这里关键地是你要会用DataList控件,知道其内部机制,知道如何遍历其各个Item,知道从Item中如何找到内部绑定的子控件(如RadioButtonList)。如果不会用控件、只会写点无关的javascript的话,那么忘掉你的javascript去从头学习asp.net、看懂这个程序的源代码,就会读取结果了。相反地,对于那些被“赶鸭子上架”让学院半途而废地去看这类“考试系统”代码、死记硬背知识点的培训机构,你没有机会真正从头学习软件设计思路,反而困难。 --------------------编程问答--------------------
protected void Button1_Click(object sender, EventArgs e)--------------------编程问答--------------------
{
int num = DataList1.Items.Count;//记录有多少行数据
for (int i = 0; i < num; i++)
{
string tnum;
RadioButtonList rbtnlist = (RadioButtonList)(DataList1.Items[i].FindControl("RadioButtonList1"));
//string answer = rbtnlist.SelectedValue.ToString();
if (rbtnlist.SelectedIndex > -1)//判断是否被选择
{
tnum= rbtnlist.SelectedItem.Text.ToString();
}
else
{
tnum = "N";
}
Label lb1=(Label)(DataList1.Items[i].FindControl("Label2"));//visible为false,记录Id
Label lb2 = (Label)(DataList1.Items[i].FindControl("Label3"));//visible为false,记录正确答案
lb2.Visible = true;
string s = lb1.Text;
Response.Write(s+":"+tnum+ "</br>");
//将答案插入表中,(注意:必须放在for循环之内)
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "insert into Answer1 values(" + s + ",'" + tnum + "')";
cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
///如果是多选题(放进循环中记得将i换为j或其他)
string s = "";
for (int j = 0; j < CheckBoxList2.Items.Count; j++)
{
if (CheckBoxList2.Items[j].Selected)//选中的
{
s += CheckBoxList2.Items[j].Text;
}
else if (CheckBoxList2.SelectedIndex == -1)//没有选择的
{
s = "N";
}
}
Response.Write(s);//一定要放在循环外
}
}
这是将用户选择的正确答案打印出来,你可以放进数据库中~! --------------------编程问答--------------------
恩,谢谢您! --------------------编程问答-------------------- 以前毕业设计就是做的这个,可以把学生做的题目答案存进数据库, --------------------编程问答--------------------
那还有没有,提供下, 想是很简单,就代码不知道怎么写。 --------------------编程问答-------------------- --------------------编程问答-------------------- 题库里肯定有正确的答案啊。 --------------------编程问答--------------------
这个还是不复杂的哒,把获取到的答案存进数据库,然后和正确答案进行比照,我的程序应该是不在了 --------------------编程问答-------------------- 点击按钮的时候,对比下单选框选中的和正确答案,不知道这样是不是你要的
补充:.NET技术 , ASP.NET