示例#1
0
    protected bool JiaoJuan(out int zongfen, StringBuilder sb)//交卷,测试信息写入数据库,改卷
    {
        bool   chenggong = false;
        string tihaos    = HiddenField1.Value;

        string[]     tihaoshuzu = tihaos.Split(',');
        string       kechengid  = Session["kechengid"].ToString();
        string       ceshiname;
        CheckBoxList duoxuanCheckList;
        string       ceshizhishidian = Labelzhishidian.Text.Trim();

        if (ceshizhishidian.Length <= 100)
        {
            ceshiname = ceshizhishidian;
        }
        else
        {
            ceshiname = ceshizhishidian.Substring(0, 95) + "等知识点";
        }
        int timushuliang = int.Parse(DropDownList2.SelectedValue);
        int fenzhi       = 100 / timushuliang; //每题分值

        zongfen = 0;                           //总分
        string        tmptbname = "jj" + DateTime.Now.Ticks.ToString();
        SqlConnection conn      = new SqlConnection();

        conn.ConnectionString = ConfigurationManager.ConnectionStrings["kecheng2012ConnectionString"].ConnectionString;
        SqlCommand comm = conn.CreateCommand();

        comm.CommandText = "create table " + tmptbname + "(id int)";
        conn.Open();
        comm.ExecuteNonQuery();
        for (int i = 0; i < tihaoshuzu.Length - 1; i++)
        {
            comm.CommandText = "insert into " + tmptbname + "(id) values(" + tihaoshuzu[i] + ")";
            comm.ExecuteNonQuery();
        }
        comm.CommandText = "select questionid,timu,type,answer from tb_tiku inner join " + tmptbname + " on tb_tiku.questionid=" + tmptbname + ".id order by questionid,type asc";
        DataTable      tmtb = new DataTable();
        SqlDataAdapter sda  = new SqlDataAdapter(comm);

        sda.Fill(tmtb);
        try
        {
            comm.CommandText = "select count(name) from sysobjects where name='" + tmptbname + "' and type='U'";//判断表名是否存在
            if (((int)(comm.ExecuteScalar())) > 0)
            {
                comm.CommandText = "drop table " + tmptbname;
                comm.ExecuteNonQuery();
            }
        }
        finally
        {
            conn.Close();
        }
        string ceshitime = DateTime.Now.ToString();

        try
        {
            string answer;
            for (int i = 0; i < tmtb.Rows.Count; i++)
            {
                sb.Append((i + 1).ToString() + "(" + tmtb.Rows[i][2].ToString() + ")" + tmtb.Rows[i][1].ToString() + "<br/>");
                switch (tmtb.Rows[i][2].ToString().Trim())
                {
                case "单项选择题":
                case "判断题":
                    answer = ((RadioButtonList)(PlaceHolderceshitimu.FindControl("answer" + (i + 1).ToString()))).SelectedValue.Trim();
                    sb.Append("<font color='red'><b>您的选择是:" + answer + "</b></font><br/>");
                    if (answer == tmtb.Rows[i][3].ToString().Trim())
                    {
                        zongfen += fenzhi;
                    }
                    break;

                case "多项选择题":
                    answer           = "";
                    duoxuanCheckList = (CheckBoxList)(PlaceHolderceshitimu.FindControl("answer" + (i + 1).ToString()));
                    for (int j1 = 0; j1 < 5; j1++)
                    {
                        if (duoxuanCheckList.Items[j1].Selected)
                        {
                            answer += duoxuanCheckList.Items[j1].Value.ToString().Trim();
                        }
                    }
                    sb.Append("<font color='red'><b>您的选择是:" + answer + "</b></font><br/>");
                    if (answer == tmtb.Rows[i][3].ToString().Trim())
                    {
                        zongfen += fenzhi;
                    }
                    break;
                }
            }
            chenggong = true;
        }
        catch (Exception ex)
        {
            Labelfankui.Text = ex.Message;
            chenggong        = false;
        }
        finally
        {
            if (conn.State == ConnectionState.Open)
            {
                conn.Close();
            }
        }
        return(chenggong);
    }
示例#2
0
    protected bool JiaoJuan(out int zongfen, StringBuilder sb)//交卷,测试信息写入数据库,改卷
    {
        bool   chenggong = false;
        string tihaos    = HiddenField1.Value;

        string[]     tihaoshuzu = tihaos.Split(',');
        string       kechengid  = Session["kechengid"].ToString();
        string       ceshiname;
        CheckBoxList duoxuanCheckList;
        string       ceshizhishidian = Labelzhishidian.Text.Trim();

        if (ceshizhishidian.Length <= 100)
        {
            ceshiname = ceshizhishidian;
        }
        else
        {
            ceshiname = ceshizhishidian.Substring(0, 95) + "等知识点";
        }
        int timushuliang = int.Parse(DropDownList2.SelectedValue);
        int fenzhi       = 100 / timushuliang; //每题分值

        zongfen = 0;                           //总分
        string        username  = ((FormsIdentity)HttpContext.Current.User.Identity).Ticket.Name;
        string        tmptbname = "jj" + DateTime.Now.Ticks.ToString();
        SqlConnection conn      = new SqlConnection();

        conn.ConnectionString = ConfigurationManager.ConnectionStrings["kecheng2012ConnectionString"].ConnectionString;
        SqlCommand comm = conn.CreateCommand();

        comm.CommandText = "create table " + tmptbname + "(id int)";
        conn.Open();
        comm.ExecuteNonQuery();
        for (int i = 0; i < tihaoshuzu.Length - 1; i++)
        {
            comm.CommandText = "insert into " + tmptbname + "(id) values(" + tihaoshuzu[i] + ")";
            comm.ExecuteNonQuery();
        }
        comm.CommandText = "select questionid,timu,type,answer from tb_tiku inner join " + tmptbname + " on tb_tiku.questionid=" + tmptbname + ".id order by questionid,type asc";
        DataTable      tmtb = new DataTable();
        SqlDataAdapter sda  = new SqlDataAdapter(comm);

        sda.Fill(tmtb);
        try
        {
            comm.CommandText = "select count(name) from sysobjects where name='" + tmptbname + "' and type='U'";//判断表名是否存在
            if (((int)(comm.ExecuteScalar())) > 0)
            {
                comm.CommandText = "drop table " + tmptbname;
                comm.ExecuteNonQuery();
            }
        }
        finally
        {
            conn.Close();
        }
        string ceshitime = DateTime.Now.ToString();

        conn.Open();
        SqlTransaction st = conn.BeginTransaction();

        comm.Transaction = st;
        try
        {
            comm.CommandText = "insert into tb_zice(kechengid,username,ceshiname,ceshitime,fenshu) values(" + kechengid + ",'" + username + "','" + ceshiname + "','" + ceshitime + "',0) select @@identity as ziceid";
            int    ceshiid = Convert.ToInt32(comm.ExecuteScalar());//测试Id
            string answer;
            for (int i = 0; i < tmtb.Rows.Count; i++)
            {
                sb.Append((i + 1).ToString() + "(" + tmtb.Rows[i][2].ToString() + ")" + tmtb.Rows[i][1].ToString() + "<br/><font color='red'>本题的参考答案是:" + tmtb.Rows[i][3].ToString() + ";您的回答是:");
                switch (tmtb.Rows[i][2].ToString().Trim())
                {
                case "单项选择题":
                case "判断题":
                    answer = ((RadioButtonList)(PlaceHolderceshitimu.FindControl("answer" + (i + 1).ToString()))).SelectedValue.Trim();
                    sb.Append(answer);
                    if (answer == tmtb.Rows[i][3].ToString().Trim())
                    {
                        zongfen += fenzhi;
                        sb.Append(";本题得分:" + fenzhi.ToString() + "分。</font><br/><hr/>");
                    }
                    else
                    {
                        sb.Append(";本题得分:0分。</font><br/><hr/>");
                    }
                    comm.CommandText = "insert into tb_zicetimu(ziceid,questionid,huida,tihao) values(" + ceshiid + "," + tmtb.Rows[i][0].ToString() + ",'" + answer + "'," + (i + 1).ToString() + ")";
                    comm.ExecuteNonQuery();
                    break;

                case "多项选择题":
                    answer           = "";
                    duoxuanCheckList = (CheckBoxList)(PlaceHolderceshitimu.FindControl("answer" + (i + 1).ToString()));
                    for (int j1 = 0; j1 < 5; j1++)
                    {
                        if (duoxuanCheckList.Items[j1].Selected)
                        {
                            answer += duoxuanCheckList.Items[j1].Value.ToString().Trim();
                        }
                    }
                    sb.Append(answer);
                    if (answer == tmtb.Rows[i][3].ToString().Trim())
                    {
                        zongfen += fenzhi;
                        sb.Append(";本题得分:" + fenzhi.ToString() + "分。</font><br/><hr/>");
                    }
                    else
                    {
                        sb.Append(";本题得分:0分。</font><br/><hr/>");
                    }
                    comm.CommandText = "insert into tb_zicetimu(ziceid,questionid,huida,tihao) values(" + ceshiid + "," + tmtb.Rows[i][0].ToString() + ",'" + answer + "'," + (i + 1).ToString() + ")";
                    comm.ExecuteNonQuery();
                    break;
                }
            }
            comm.CommandText = "update tb_zice set fenshu=" + zongfen + " where ziceid=" + ceshiid;
            comm.ExecuteNonQuery();
            st.Commit();
            chenggong = true;
        }
        catch (Exception ex)
        {
            st.Rollback();
            Labelfankui.Text = ex.Message;
            chenggong        = false;
        }
        finally
        {
            if (conn.State == ConnectionState.Open)
            {
                conn.Close();
            }
        }
        return(chenggong);
    }