/// <summary>
        /// 获得数据列表
        /// </summary>
        public List <Model.tbAnswerOfPaper> DataTableToList(DataTable dt)
        {
            List <Model.tbAnswerOfPaper> modelList = new List <Model.tbAnswerOfPaper>();
            int rowsCount = dt.Rows.Count;

            if (rowsCount > 0)
            {
                Model.tbAnswerOfPaper model;
                for (int n = 0; n < rowsCount; n++)
                {
                    model = new Model.tbAnswerOfPaper();
                    if (dt.Rows[n]["id"].ToString() != "")
                    {
                        model.id = int.Parse(dt.Rows[n]["id"].ToString());
                    }
                    if (dt.Rows[n]["arrangeid"].ToString() != "")
                    {
                        model.arrangeid = int.Parse(dt.Rows[n]["arrangeid"].ToString());
                    }
                    if (dt.Rows[n]["answerid"].ToString() != "")
                    {
                        model.answerid = int.Parse(dt.Rows[n]["answerid"].ToString());
                    }
                    if (dt.Rows[n]["userid"].ToString() != "")
                    {
                        model.userid = int.Parse(dt.Rows[n]["userid"].ToString());
                    }
                    model.useranswer = dt.Rows[n]["useranswer"].ToString();
                    if (dt.Rows[n]["getscore"].ToString() != "")
                    {
                        model.getscore = decimal.Parse(dt.Rows[n]["getscore"].ToString());
                    }
                    if (dt.Rows[n]["allscore"].ToString() != "")
                    {
                        model.allscore = decimal.Parse(dt.Rows[n]["allscore"].ToString());
                    }


                    modelList.Add(model);
                }
            }
            return(modelList);
        }
		/// <summary>
		/// 获得数据列表
		/// </summary>
		public List<Model.tbAnswerOfPaper> DataTableToList(DataTable dt)
		{
			List<Model.tbAnswerOfPaper> modelList = new List<Model.tbAnswerOfPaper>();
			int rowsCount = dt.Rows.Count;
			if (rowsCount > 0)
			{
				Model.tbAnswerOfPaper model;
				for (int n = 0; n < rowsCount; n++)
				{
					model = new Model.tbAnswerOfPaper();					
													if(dt.Rows[n]["id"].ToString()!="")
				{
					model.id=int.Parse(dt.Rows[n]["id"].ToString());
				}
																																if(dt.Rows[n]["arrangeid"].ToString()!="")
				{
					model.arrangeid=int.Parse(dt.Rows[n]["arrangeid"].ToString());
				}
																																if(dt.Rows[n]["answerid"].ToString()!="")
				{
					model.answerid=int.Parse(dt.Rows[n]["answerid"].ToString());
				}
																																if(dt.Rows[n]["userid"].ToString()!="")
				{
					model.userid=int.Parse(dt.Rows[n]["userid"].ToString());
				}
																																				model.useranswer= dt.Rows[n]["useranswer"].ToString();
																												if(dt.Rows[n]["getscore"].ToString()!="")
				{
					model.getscore=decimal.Parse(dt.Rows[n]["getscore"].ToString());
				}
																																if(dt.Rows[n]["allscore"].ToString()!="")
				{
					model.allscore=decimal.Parse(dt.Rows[n]["allscore"].ToString());
				}
																										
				
					modelList.Add(model);
				}
			}
			return modelList;
		}
 /// <summary>
 /// 更新一条数据
 /// </summary>
 public bool Update(Model.tbAnswerOfPaper model)
 {
     return(dal.Update(model));
 }
 /// <summary>
 /// 增加一条数据
 /// </summary>
 public int  Add(Model.tbAnswerOfPaper model)
 {
     return(dal.Add(model));
 }
示例#5
0
    /// <summary>
    /// 获取正确答案,计算分数,更新题库selectcount和rightcount
    /// </summary>
    /// <param name="studentAnswer"></param>
    /// <returns></returns>
    private PaperContent GetStandardAnswer(PaperContent studentAnswer)
    {
        PaperContent standardAnswer = new PaperContent();

        tbSingleDAL singleDAL = new tbSingleDAL();
        tbCheckDAL checkDAL = new tbCheckDAL();
        tbJudgeDAL judgeDAL = new tbJudgeDAL();
        tbBlankDAL blankDAL = new tbBlankDAL();
        tbAnswerDAL answerDAl = new tbAnswerDAL();
        tbAnswerOfPaperDAL answerOfPaperDAL = new tbAnswerOfPaperDAL();

        //取得数据库连接
        SqlConnection conn = SQLHelper.GetConnection();
        //打开数据库连接
        conn.Open();
        //创建事务
        SqlTransaction SqlTransaction = conn.BeginTransaction();

        try
        {
            //单选
            foreach (tbSingle item in studentAnswer.SRContent)
            {
                tbSingle single = singleDAL.GetModelTran(item.id, SqlTransaction);
                single.selectcount = single.selectcount + 1;
                if (single.ans == item.ans)
                {
                    //正确
                    sum += paper.sa_scoreofeach;
                    single.rightcount = single.rightcount + 1;
                }
                standardAnswer.SRContent.Add(single);
                singleDAL.UpdateTran(single, SqlTransaction);
            }
            //多选
            foreach (tbCheck item in studentAnswer.CBContent)
            {
                tbCheck check = new tbCheckDAL().GetModelTran(item.id, SqlTransaction);
                check.selectcount = check.selectcount + 1;
                if (check.ans == item.ans)
                {
                    //正确
                    sum += paper.cb_scoreofeach;
                    check.rightcount = check.rightcount + 1;
                }
                standardAnswer.CBContent.Add(check);
                checkDAL.UpdateTran(check, SqlTransaction);
            }
            //判断
            foreach (tbJudge item in studentAnswer.JDContent)
            {
                tbJudge judge = new tbJudgeDAL().GetModelTran(item.id, SqlTransaction);
                judge.selectcount = judge.selectcount + 1;
                if (judge.ans == item.ans)
                {
                    //正确
                    sum += paper.jd_scoreofeach;
                    judge.rightcount = judge.rightcount + 1;
                }
                standardAnswer.JDContent.Add(judge);
                judgeDAL.UpdateTran(judge, SqlTransaction);
            }
            //填空
            foreach (tbBlank item in studentAnswer.BFContent)
            {
                tbBlank blank = new tbBlankDAL().GetModelTran(item.id, SqlTransaction);
                blank.selectcount = blank.selectcount + 1;
                if (blank.ans == item.ans)
                {
                    //正确
                    sum += paper.bf_scoreofeach;
                    blank.rightcount = blank.rightcount + 1;
                }
                standardAnswer.BFContent.Add(blank);
                blankDAL.UpdateTran(blank, SqlTransaction);
            }
            //简答题 不比较答案,但返回正确答案 并记录学生答案
            foreach (tbAnswer item in studentAnswer.SAContent)
            {
                tbAnswer answer = new tbAnswerDAL().GetModelTran(item.id, SqlTransaction);
                standardAnswer.SAContent.Add(answer);
                if (arrange.arrangetype == 2)
                {
                    //插入学生答案
                    tbAnswerOfPaper answerOfPaper = new tbAnswerOfPaper();
                    answerOfPaper.answerid = answer.id;
                    answerOfPaper.arrangeid = arrange.id;
                    answerOfPaper.useranswer = item.ans;
                    answerOfPaper.userid = score.userid;
                    answerOfPaper.allscore = paper.sa_scoreofeach;
                    answerOfPaper.getscore = -1;//还没批改
                    
                    //删除已存在的
                    String deleteSql = "delete from tbAnswerOfPaper where answerid=" + answerOfPaper.answerid + " and arrangeid=" + answerOfPaper.arrangeid + " and userid=" + answerOfPaper.userid;
                    SqlHelper.ExecuteNonQuery(SqlTransaction, CommandType.Text, deleteSql);

                    answerOfPaperDAL.AddTran(answerOfPaper, SqlTransaction);
                }
            }
            SqlTransaction.Commit();
        }
        catch (Exception)
        {
            try
            {
                SqlTransaction.Rollback();
            }
            catch (Exception)
            {
                //事务回滚出错
            }
        }
        finally
        {
            //关闭各种资源
            SqlTransaction.Dispose();
            conn.Close();
        }
        return standardAnswer;
    }