protected void Page_Load(object sender, EventArgs e) { if (!this.IsPostBack) { if (PrjPub.CurrentLoginUser == null) { Response.Redirect("/RailExamBao/Common/Error.aspx?error=Session过期请重新登录本系统!"); return; } // QueryString id stands for EXAM_RESULT_ID string strId = Request.QueryString.Get("id"); if (!string.IsNullOrEmpty(strId)) { FillHeading(strId); } } string strJudgeData = hfJudgeData.Value; if (!string.IsNullOrEmpty(strJudgeData)) { string strExamResultId = Request.QueryString.Get("id"); string[] strItmes = strJudgeData.Split('$'); string[] strJudges = new string[3]; ExamResultBLL bll = new ExamResultBLL(); ExamResultAnswer answer = null; IList <ExamResultAnswer> answers = new List <ExamResultAnswer>(); decimal judgeScore = 0M; foreach (string item in strItmes) { strJudges = item.Split('|'); answer = new ExamResultAnswer(); answer.ExamResultId = int.Parse(strExamResultId); answer.PaperItemId = int.Parse(strJudges[0]); answer.JudgeStatusId = int.Parse(strJudges[1]); answer.JudgeScore = decimal.Parse(strJudges[2]); answer.JudgeRemark = strJudges[3]; answers.Add(answer); judgeScore += answer.JudgeScore; } string strCause = Server.UrlDecode(HiddenFieldUpdateCause.Value); string[] strCauses = strCause.Split('|'); string strResultCause = strCauses[0]; string strRemark = strCauses[1]; decimal oldScore = decimal.Parse(ViewState["Score"].ToString()); int examResultId = int.Parse(strExamResultId); bll.UpdateExamResultAnswers(examResultId, answers, strResultCause, strRemark, oldScore, RailExamWebApp.Common.Class.PrjPub.CurrentLoginUser.EmployeeName); bll.UpdateJudgeId(examResultId, RailExamWebApp.Common.Class.PrjPub.CurrentLoginUser.EmployeeID); lblScore.Text = judgeScore.ToString(); lblScore.Text += "分"; } }
/// <summary> /// 更新考试考生结果答案 /// </summary> /// <param name="examResultAnswer"></param> /// <returns></returns> public int UpdateExamResultAnswer(ExamResultAnswer examResultAnswer) { Database db = DatabaseFactory.CreateDatabase(); string sqlCommand = "USP_EXAM_RESULT_ANSWER_U"; DbCommand dbCommand = db.GetStoredProcCommand(sqlCommand); db.AddInParameter(dbCommand, "p_exam_result_id", DbType.Int32, examResultAnswer.ExamResultId); db.AddInParameter(dbCommand, "p_paper_item_id", DbType.Int32, examResultAnswer.PaperItemId); db.AddInParameter(dbCommand, "p_answer", DbType.String, examResultAnswer.Answer); db.AddInParameter(dbCommand, "p_exam_time", DbType.Int32, examResultAnswer.ExamTime); db.AddInParameter(dbCommand, "p_judge_score", DbType.Decimal, examResultAnswer.JudgeScore); db.AddInParameter(dbCommand, "p_judge_status_id", DbType.Int32, examResultAnswer.JudgeStatusId); db.AddInParameter(dbCommand, "p_judge_remark", DbType.String, examResultAnswer.JudgeRemark); int nRecordAffected = db.ExecuteNonQuery(dbCommand); return(nRecordAffected); }
/// <summary> /// 查询给定考卷、试题编号的考生结果答案 /// </summary> /// <param name="examResultId"></param> /// <param name="paperItemId"></param> /// <returns></returns> public ExamResultAnswer GetExamResultAnswer(int examResultId, int paperItemId) { ExamResultAnswer examResultAnswer = null; Database db = DatabaseFactory.CreateDatabase(); string sqlCommand = "USP_EXAM_RESULT_ANSWER_G"; DbCommand dbCommand = db.GetStoredProcCommand(sqlCommand); db.AddInParameter(dbCommand, "p_exam_result_id", DbType.Int32, examResultId); db.AddInParameter(dbCommand, "p_paper_item_id", DbType.Int32, paperItemId); using (IDataReader dataReader = db.ExecuteReader(dbCommand)) { while (dataReader.Read()) { examResultAnswer = CreateModelObject(dataReader); break; } } return(examResultAnswer); }
public int UpdateExamResultAnswer(ExamResultAnswer examResultAnswer) { return(dal.UpdateExamResultAnswer(examResultAnswer)); }
public int AddExamResultAnswer(ExamResultAnswer examResultAnswer) { return(dal.AddExamResultAnswer(examResultAnswer)); }
protected void FillPaper() { // QueryString id stands for EXAM_RESULT_ID string strId = Request.QueryString.Get("id"); // Not pass id if (string.IsNullOrEmpty(strId)) { return; } PaperItemBLL kBLL = new PaperItemBLL(); PaperSubjectBLL kBSLL = new PaperSubjectBLL(); ExamResultBLL examResultBLL = new ExamResultBLL(); ExamResultAnswerBLL examResultAnswerBLL = new ExamResultAnswerBLL(); RailExam.Model.ExamResult examResult = examResultBLL.GetExamResult(int.Parse(strId)); // Not found if (examResult == null) { return; } IList <PaperSubject> PaperSubjects = kBSLL.GetPaperSubjectByPaperId(examResult.PaperId); PaperSubject paperSubject = null; IList <PaperItem> PaperItems = null; IList <ExamResultAnswer> examResultAnswers = examResultAnswerBLL.GetExamResultAnswers(examResult.ExamResultId); if (PaperSubjects != null) { for (int i = 0; i < PaperSubjects.Count; i++) { paperSubject = PaperSubjects[i]; PaperItems = kBLL.GetItemsByPaperSubjectId(paperSubject.PaperSubjectId); Response.Write("<table width='100%'>"); Response.Write(" <tr > <td class='ExamBigTitle' >"); Response.Write(" " + GetNo(i) + ""); Response.Write(". " + paperSubject.SubjectName + ""); Response.Write(" (共" + paperSubject.ItemCount + "题,共" + paperSubject.TotalScore + "分)</td></tr >"); // 用于前台JS判断是否完成全部试题 hfPaperItemsCount.Value = paperSubject.ItemCount.ToString(); if (PaperItems != null) { for (int j = 0; j < PaperItems.Count; j++) { PaperItem paperItem = PaperItems[j]; int k = j + 1; Response.Write("<tr > <td class='ExamResultItem'> " + k + ". " + paperItem.Content + " (" + paperItem.Score + "分)</td></tr >"); // 组织用户答案 ExamResultAnswer theExamResultAnswer = null; string[] strUserAnswers = new string[0]; string strUserAnswer = string.Empty; foreach (ExamResultAnswer resultAnswer in examResultAnswers) { if (resultAnswer.PaperItemId == paperItem.PaperItemId) { theExamResultAnswer = resultAnswer; break; } } // 若子表无记录,结束页面输出 if (theExamResultAnswer == null) { SessionSet.PageMessage = "数据错误!"; return; } // 否则组织考生答案 if (theExamResultAnswer.Answer != null) { strUserAnswers = theExamResultAnswer.Answer.Split(new char[] { '|' }); } for (int n = 0; n < strUserAnswers.Length; n++) { string strN = intToString(int.Parse(strUserAnswers[n]) + 1); if (n == 0) { strUserAnswer += strN; } else { strUserAnswer += "," + strN; } } //多选 if (paperSubject.ItemTypeId == 2) { string[] strAnswer = paperItem.SelectAnswer.Split(new char[] { '|' }); for (int n = 0; n < strAnswer.Length; n++) { string strN = intToString(n + 1); string strij = "-" + paperItem.PaperItemId + "-" + i.ToString() + "-" + j.ToString() + "-" + n.ToString(); string strName = i.ToString() + j.ToString(); Response.Write(" <tr ><td class='ExamItemAnswer'> " + "<input type='checkbox' id='Answer" + strij + "' name='Answer" + strName + "' " + (Array.IndexOf(strUserAnswers, n) > -1 ? "checked" : "") + " disabled/> " + strN + "." + strAnswer[n] + "</td></tr >"); } } else { //单选 string[] strAnswer = paperItem.SelectAnswer.Split(new char[] { '|' }); for (int n = 0; n < strAnswer.Length; n++) { string strN = intToString(n + 1); string strij = "-" + paperItem.PaperItemId + "-" + i.ToString() + "-" + j.ToString() + "-" + n.ToString(); string strName = i.ToString() + j.ToString(); Response.Write("<tr > <td class='ExamItemAnswer'> " + "<input type='Radio' id='RAnswer" + strij + "' name='RAnswer" + strName + "' " + (Array.IndexOf(strUserAnswers, n) > -1 ? "checked" : "") + " disabled/> " + strN + "." + strAnswer[n] + "</td></tr >"); } } // 组织正确答案 string[] strRightAnswers = paperItem.StandardAnswer.Split(new char[] { '|' }); string strRightAnswer = ""; for (int n = 0; n < strRightAnswers.Length; n++) { string strN = intToString(int.Parse(strRightAnswers[n]) + 1); if (n == 0) { strRightAnswer += strN; } else { strRightAnswer += "," + strN; } } Response.Write(" <tr><td class='ExamAnswer'> ★标准答案:" + "<span id='span-" + paperItem.PaperItemId + "-0' name='span-" + paperItem.PaperItemId + "'>" + strRightAnswer + "</span> 考生答案:" + "<span id='span-" + paperItem.PaperItemId + "-1' name='span-" + paperItem.PaperItemId + "'>" + strUserAnswer + "</span></td></tr>"); Response.Write(" <tr score='" + paperItem.Score + "'><td class='ExamJudge'>★评分结果:" + GetJudgeInputs(paperItem.PaperItemId, theExamResultAnswer.JudgeStatusId) + " " + "得分<input type='text' id='txtScore" + "-" + paperItem.PaperItemId + "' name='txtScore" + "-" + paperItem.PaperItemId + "' value='" + theExamResultAnswer.JudgeScore.ToString(".00") + "' size='8'></input> " + "评语<input type='text' id='txtMemo" + "-" + paperItem.PaperItemId + "' name='txtMemo" + "-" + paperItem.PaperItemId + "' size='40' value='" + theExamResultAnswer.JudgeRemark + "'></input>" + "</td></tr>"); } } Response.Write(" </table> "); } } }