📄 examonline.aspx.cs
字号:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class Students_examonline : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
HttpContext.Current.Application.Remove("EndTime");
//------------------------------------------------防止直接访问
string strCheck = "exam";
if (Session["checkUser"].ToString() != strCheck.ToString())
{
Response.Redirect("login.aspx");
}
//--------------------------------------------------------
//Session["userID"] = "0301095"; //测试学号
lblExamTitle.Text = (new ExamOnline.Exam()).getCurrentPageTitle(); //取得试卷的标题
lblStuInfo.Text = (new ExamOnline.Exam()).getCurrentStudMessage(Session["userID"].ToString()); //取得考生的详细信息
int paperID = (new ExamOnline.Exam()).getCurrentPaperID(); //取得当前试卷的ID
//int paperID = 2; //测试试卷
hidPaperID.Value = Convert.ToString(paperID);
hidUserID.Value = Convert.ToString(Session["userID"]);
//--------------------------------------------------------------取得试卷的题型
DataTable dtStyles = (new ExamOnline.Exam()).getStyles(paperID);
if (dtStyles.Rows.Count > 0)
{
for (int i = 0; i < dtStyles.Rows.Count; i++)
{
int styles = Convert.ToInt32(dtStyles.Rows[i][0]);
if (styles ==Convert.ToInt32(ExamOnline.examEnum.quesStyles.quesJudge)) //判断题
{
Label lblStyles = new Label();
lblStyles.Text = "<br>判断题:<br>";
lblStyles.Font.Bold = true;
panelContext.Controls.Add(lblStyles);
DataTable dtQues = (new ExamOnline.Exam()).getQues(paperID, styles);
int qnumStart = Convert.ToInt32(dtQues.Rows[0][0]); //该题型的题目的开始序号
int qnumAll = dtQues.Rows.Count; //题型的题目总量
for (int qnum = qnumStart; qnum < qnumStart + qnumAll; qnum++)
{
Literal litTitle = new Literal();
litTitle.Text = "<br>" + Convert.ToString(dtQues.Rows[qnum - qnumStart][0]) + "、" + Server.HtmlEncode(Convert.ToString(dtQues.Rows[qnum - qnumStart][2])) + "<br>";
DataTable dtOptions = (new ExamOnline.Exam()).getOptions(paperID, qnum);
int optionsAll = Convert.ToInt32(dtOptions.Rows.Count); //取得选项的数量
RadioButtonList rbl = new RadioButtonList();
rbl.RepeatDirection = RepeatDirection.Horizontal;
rbl.ID = "rbl" + qnum.ToString();
for (int j = 0; j <= optionsAll - 1; j++)
{
string strABC = Convert.ToString(dtOptions.Rows[j][0]);
string strOption = Convert.ToString(dtOptions.Rows[j][1]);
ListItem li = new ListItem();
li.Value = strABC;
li.Text = strABC + "、" + strOption;
rbl.Items.Add(li);
}
panelContext.Controls.Add(litTitle);
panelContext.Controls.Add(rbl);
}
}
else if (styles == Convert.ToInt32(ExamOnline.examEnum.quesStyles.quesSingle)) //单选题
{
Label lblStyles = new Label();
lblStyles.Text = "<br>单选题:<br>";
lblStyles.Font.Bold = true;
panelContext.Controls.Add(lblStyles);
DataTable dtQues = (new ExamOnline.Exam()).getQues(paperID, styles);
int qnumStart = Convert.ToInt32(dtQues.Rows[0][0]); //该题型的题目的开始序号
int qnumAll = dtQues.Rows.Count; //题型的题目总量
for (int qnum = qnumStart; qnum < qnumStart + qnumAll; qnum++)
{
Literal litTitle = new Literal();
litTitle.Text = "<br>" + Convert.ToString(dtQues.Rows[qnum - qnumStart][0]) + "、" + Server.HtmlEncode(Convert.ToString(dtQues.Rows[qnum - qnumStart][2])) + "<br>";
DataTable dtOptions = (new ExamOnline.Exam()).getOptions(paperID, qnum);
int optionsAll = Convert.ToInt32(dtOptions.Rows.Count); //取得选项的数量
RadioButtonList rbl = new RadioButtonList();
rbl.ID = "rbl" + qnum.ToString();
for (int j = 0; j <= optionsAll - 1; j++)
{
string strABC = Convert.ToString(dtOptions.Rows[j][0]);
string strOption = Convert.ToString(dtOptions.Rows[j][1]);
ListItem li = new ListItem();
li.Value = strABC;
li.Text = strABC + "、" + strOption;
rbl.Items.Add(li);
}
panelContext.Controls.Add(litTitle);
panelContext.Controls.Add(rbl);
}
}
else if (styles == Convert.ToInt32(ExamOnline.examEnum.quesStyles.quesMulti)) //多选题
{
Label lblStyles = new Label();
lblStyles.Text = "<br>多选题:<br>";
lblStyles.Font.Bold = true;
panelContext.Controls.Add(lblStyles);
DataTable dtQues = (new ExamOnline.Exam()).getQues(paperID, styles);
int qnumStart = Convert.ToInt32(dtQues.Rows[0][0]); //该题型的题目的开始序号
int qnumAll = dtQues.Rows.Count; //题型的题目总量
for (int qnum = qnumStart; qnum < qnumStart + qnumAll; qnum++)
{
Literal litTitle = new Literal();
litTitle.Text = "<br>" + Convert.ToString(dtQues.Rows[qnum - qnumStart][0]) + "、" + Server.HtmlEncode(Convert.ToString(dtQues.Rows[qnum - qnumStart][2])) + "<br>";
DataTable dtOptions = (new ExamOnline.Exam()).getOptions(paperID, qnum);
int optionsAll = Convert.ToInt32(dtOptions.Rows.Count); //取得选项的数量
CheckBoxList cbl = new CheckBoxList();
cbl.ID = "cbl" + qnum.ToString();
for (int j = 0; j <= optionsAll - 1; j++)
{
string strABC = Convert.ToString(dtOptions.Rows[j][0]);
string strOption = Convert.ToString(dtOptions.Rows[j][1]);
ListItem li = new ListItem();
li.Value = strABC;
li.Text = strABC + "、" + strOption;
cbl.Items.Add(li);
}
panelContext.Controls.Add(litTitle);
panelContext.Controls.Add(cbl);
}
}
else if (styles == Convert.ToInt32(ExamOnline.examEnum.quesStyles.quesOther)) //主观题
{
Label lblStyles = new Label();
lblStyles.Text = "<br>主观题:<br>";
lblStyles.Font.Bold = true;
panelContext.Controls.Add(lblStyles);
DataTable dtQues = (new ExamOnline.Exam()).getQues(paperID, styles);
int qnumStart = Convert.ToInt32(dtQues.Rows[0][0]); //该题型的题目的开始序号
int qnumAll = dtQues.Rows.Count; //题型的题目总量
for (int qnum = qnumStart; qnum < qnumStart + qnumAll; qnum++)
{
Literal litTitle = new Literal();
litTitle.Text = "<br>" + Convert.ToString(dtQues.Rows[qnum - qnumStart][0]) + "、" + Server.HtmlEncode(Convert.ToString(dtQues.Rows[qnum - qnumStart][2])) + "<br>";
string strAnswer = (new ExamOnline.Exam()).getAnswer(paperID, qnum);
TextBox tb = new TextBox();
tb.TextMode = TextBoxMode.MultiLine;
tb.Width = 600;
tb.Height = 80;
tb.ID = "tb" + qnum.ToString();
panelContext.Controls.Add(litTitle);
panelContext.Controls.Add(tb);
}
}
}
}
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
int paperID = Convert.ToInt32(hidPaperID.Value);
string userID = hidUserID.Value;
DataTable dtQues1 = (new ExamOnline.Exam()).getQues(paperID, Convert.ToInt32(ExamOnline.examEnum.quesStyles.quesJudge)); //取得判断题
DataTable dtQues2 = (new ExamOnline.Exam()).getQues(paperID, Convert.ToInt32(ExamOnline.examEnum.quesStyles.quesSingle)); //取得单选题
DataTable dtQues3 = (new ExamOnline.Exam()).getQues(paperID, Convert.ToInt32(ExamOnline.examEnum.quesStyles.quesMulti)); //取得多选题
DataTable dtQues4 = (new ExamOnline.Exam()).getQues(paperID, Convert.ToInt32(ExamOnline.examEnum.quesStyles.quesOther)); //取得主观题
int SingleNum = dtQues1.Rows.Count + dtQues2.Rows.Count; //取得判断题和单选题的题量
int MultiNum = dtQues3.Rows.Count; //取得多选题的题量
int OtherNum = dtQues4.Rows.Count; //取得主观题的题量
//--------------------------------------------------
try
{
if (SingleNum > 0) //添加判断题和单选题
{
for (int i = 1; i <= SingleNum; i++)
{
RadioButtonList rbl = new RadioButtonList();
rbl = (RadioButtonList)panelContext.FindControl("rbl" + i.ToString());
string SingleAnswer = (new ExamOnline.Exam()).getSingleAns(rbl);
int qid = (new ExamOnline.Exam()).getQuesID(paperID, i);
string strexec = "insert into paper_done(paper_id,stu_id,qid,q_num,answer) ";
strexec += "values(" + paperID + ",'" + userID + "'," + qid + "," + i + ",'" + SingleAnswer + "')";
ExamOnline.Exam exam = new ExamOnline.Exam();
exam.exec(strexec);
}
}
if (MultiNum > 0) //添加多选题
{
for (int i = SingleNum + 1; i <= SingleNum + MultiNum; i++)
{
CheckBoxList cbl = (CheckBoxList)panelContext.FindControl("cbl" + i.ToString());
string MultiAnswers = (new ExamOnline.Exam()).getMultiAns(cbl);
int qid = (new ExamOnline.Exam()).getQuesID(paperID, i);
string strexec = "insert into paper_done(paper_id,stu_id,qid,q_num,answer) ";
strexec += "values(" + paperID + ",'" + userID + "'," + qid + "," + i + ",'" + MultiAnswers + "')";
ExamOnline.Exam exam = new ExamOnline.Exam();
exam.exec(strexec);
}
}
if (OtherNum > 0) //添加主观题
{
for (int i = SingleNum + MultiNum + 1; i <= SingleNum + MultiNum + OtherNum; i++)
{
TextBox tb = (TextBox)panelContext.FindControl("tb" + i.ToString());
string Answer = tb.Text.ToString();
int qid = (new ExamOnline.Exam()).getQuesID(paperID, i);
string strexec = "insert into paper_done(paper_id,stu_id,qid,q_num,answer) ";
strexec += "values(" + paperID + ",'" + userID + "'," + qid + "," + i + ",'" + Answer + "')";
ExamOnline.Exam exam = new ExamOnline.Exam();
exam.exec(strexec);
}
}
}
catch(Exception ee)
{
ExamOnline.Common.ShowMess(ee.Message);
}
finally
{
string strEnd = "update paper_students set stu_state=1 where paper_id='" + hidPaperID.Value + "' and stu_id='" +hidUserID.Value +"'";
(new ExamOnline.Exam()).exec(strEnd);
Response.Redirect("end.htm");
}
//------------------------------------------------------
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -