当前位置:编程学习 > C#/ASP.NET >>

简单的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);//一定要放在循环外
                
            }           
        }
--------------------编程问答--------------------
引用 3 楼 cnceohjm 的回复:
C# code
?



12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152

        protected void Button1_Click(object sender, EventArgs e)         {         ……

这是将用户选择的正确答案打印出来,你可以放进数据库中~! --------------------编程问答--------------------
引用 2 楼 sp1234 的回复:
这要按照软件架构的思路去理解程序。

读取源代码,假设它就是普通的asp.net程序,那么这里关键地是你要会用DataList控件,知道其内部机制,知道如何遍历其各个Item,知道从Item中如何找到内部绑定的子控件(如RadioButtonList)。如果不会用控件、只会写点无关的javascript的话,那么忘掉你的javascript去从头学习asp.net、看……

 
恩,谢谢您! --------------------编程问答-------------------- 以前毕业设计就是做的这个,可以把学生做的题目答案存进数据库, --------------------编程问答--------------------
引用 6 楼 yueliangzhi11233 的回复:
以前毕业设计就是做的这个,可以把学生做的题目答案存进数据库,

那还有没有,提供下, 想是很简单,就代码不知道怎么写。 --------------------编程问答-------------------- --------------------编程问答-------------------- 题库里肯定有正确的答案啊。 --------------------编程问答--------------------
引用 7 楼 lrb19911004 的回复:
引用 6 楼 yueliangzhi11233 的回复:以前毕业设计就是做的这个,可以把学生做的题目答案存进数据库,
那还有没有,提供下, 想是很简单,就代码不知道怎么写。


这个还是不复杂的哒,把获取到的答案存进数据库,然后和正确答案进行比照,我的程序应该是不在了 --------------------编程问答-------------------- 点击按钮的时候,对比下单选框选中的和正确答案,不知道这样是不是你要的
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,