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); }
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); }