Asp.net源码专业站
首页->尚未分类->Asp.net在线考试系统源码及毕业设计论文>>App-Code/Exam.cs>>源码在线查看
温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:Asp.net在线考试系统源码及毕业设计论文
当前文件:文件类型 ExamOnline/App_Code/Exam.cs[17K,2009-6-12 11:42:06]打开代码结构图
普通视图
		            
1using System; 2using System.Data; 3using System.Configuration; 4using System.Web; 5using System.Web.Security; 6using System.Web.UI; 7using System.Web.UI.WebControls; 8using System.Web.UI.WebControls.WebParts; 9using System.Web.UI.HtmlControls; 10using System.Data.SqlClient; 11using System.IO; 12 13 14namespace ExamOnline 15{ 16 //该源码下载自www.51aspx.com(51aspx.com) 17 18 /// <summary> 19 /// 和试卷读取相关的类 20 /// </summary> 21 public class Exam 22 { 23 string strcon = ""; //连接字符串 24 25 /// <summary> 26 /// 构造函数,连接字符串 27 /// </summary> 28 public Exam() 29 { 30 if (strcon == "") 31 { 32 if (HttpContext.Current.Application["strcon"] == null) 33 { 34 string path = HttpContext.Current.Request.PhysicalApplicationPath + "DBSet.ini";//获取文件物理路径 35 StreamReader sr = new StreamReader(path, System.Text.Encoding.Default); 36 strcon = sr.ReadLine();//读取文件内容 37 HttpContext.Current.Application["strcon"] = strcon; 38 } 39 else 40 { 41 strcon = HttpContext.Current.Application["strcon"].ToString(); 42 } 43 } 44 } 45 46 47 /// <summary> 48 /// 取得当前可以考试的试卷ID 49 /// </summary> 50 /// <returns></returns> 51 public int getCurrentPaperID() 52 { 53 SqlConnection con = new SqlConnection(strcon); 54 string strcmdExam = "select * from testpaper_list where paper_time > @dtNow and test=1 and audit=1 order by paper_time asc "; 55 SqlCommand cmdExam = new SqlCommand(strcmdExam, con); 56 cmdExam.Parameters.Add("@dtNow", SqlDbType.DateTime).Value =(new Login()).dsDelay(30);//调用自定义函数dsDelay() 57 con.Open(); 58 SqlDataReader drExam = cmdExam.ExecuteReader(); 59 if (drExam.Read()) 60 { 61 return drExam.GetInt32(0); 62 } 63 else 64 { 65 return 0; 66 } 67 68 } 69 70 /// <summary> 71 /// 取得当前考试试卷的名称 72 /// </summary> 73 /// <returns></returns> 74 public string getCurrentPageTitle() 75 { 76 SqlConnection con = new SqlConnection(strcon); 77 string strcmdExam = "select paper_name from testpaper_list where paper_id=@ID"; 78 SqlCommand cmdExam = new SqlCommand(strcmdExam,con); 79 cmdExam.Parameters.Add("@ID",SqlDbType.Int).Value = getCurrentPaperID(); 80 con.Open(); 81 string strExamTitle = "信息读取错误"; 82 SqlDataReader dr = cmdExam.ExecuteReader(); 83 if (dr.Read()) 84 { 85 strExamTitle = dr.GetString(0); 86 con.Close(); 87 } 88 return strExamTitle; 89 } 90 91 public string getCurrentPageTitle(int paperid) 92 { 93 SqlConnection con = new SqlConnection(strcon); 94 string strcmdExam = "select paper_name from testpaper_list where paper_id=@ID"; 95 SqlCommand cmdExam = new SqlCommand(strcmdExam, con); 96 cmdExam.Parameters.Add("@ID", SqlDbType.Int).Value = paperid; 97 con.Open(); 98 string strExamTitle = "信息读取错误"; 99 SqlDataReader dr = cmdExam.ExecuteReader(); 100 if (dr.Read()) 101 { 102 strExamTitle = dr.GetString(0); 103 con.Close(); 104 } 105 return strExamTitle; 106 } 107 108 /// <summary> 109 /// 取得考生详细信息,通过学号 110 /// </summary> 111 /// <param name="stu_id"></param> 112 /// <returns></returns> 113 public string getCurrentStudMessage(string stu_id) 114 { 115 SqlConnection con = new SqlConnection(strcon); 116 string strcmdExam = "select name,sex,grade,major,class from students where stu_id = @ID"; 117 SqlCommand cmdExam = new SqlCommand(strcmdExam,con); 118 cmdExam.Parameters.Add("@ID",SqlDbType.VarChar).Value = stu_id; 119 con.Open(); 120 SqlDataReader drExam = cmdExam.ExecuteReader(); 121 if (drExam.Read()) 122 { 123 string strName = drExam.GetString(0); 124 string strSex = drExam.GetString(1); 125 string strGrade = drExam.GetString(2); 126 string strMajor = drExam.GetString(3); 127 string strClass = drExam.GetString(4); 128 string strAll = "学号:<u>" + stu_id + "</u>;姓名:<u>" + strName + "</u>;性别:<u>" + strSex + "</u>;年级:<u>" + strGrade + "</u>;专业:<u>" + strMajor + "</u>;班级:<u>" + strClass + "</u>;"; 129 drExam.Close(); 130 con.Close(); 131 return strAll; 132 } 133 else 134 { 135 con.Close(); 136 string strMessage = "数据读取错误!"; 137 return strMessage; 138 } 139 140 } 141 142 /// <summary> 143 /// 通过试卷ID来统计该试卷的总题量 144 /// </summary> 145 /// <param name="paperID"></param> 146 /// <returns></returns> 147 public int getQuesNum(int paperID) 148 { 149 SqlConnection con = new SqlConnection(strcon); 150 string strcmdExam = "select count(*) from testpaper where paper_id=@paperID"; 151 SqlCommand cmdExam = new SqlCommand(strcmdExam,con); 152 cmdExam.Parameters.Add("@paperID",SqlDbType.Int).Value = paperID; 153 con.Open(); 154 SqlDataReader drExam = cmdExam.ExecuteReader(); 155 if(drExam.Read()) 156 { 157 int quesNum = drExam.GetInt32(0); 158 con.Close(); 159 return quesNum; 160 } 161 con.Close(); 162 return 0; 163 } 164 165 /// <summary> 166 /// 通过试卷ID来统计该试卷的总分 167 /// </summary> 168 /// <param name="paperID"></param> 169 /// <returns></returns> 170 public int getQuesScore(int paperID) 171 { 172 SqlConnection con = new SqlConnection(strcon); 173 string strcmdExam = "select qscore from testpaper where paper_id=@paperID"; 174 SqlCommand cmdExam = new SqlCommand(strcmdExam, con); 175 cmdExam.Parameters.Add("@paperID", SqlDbType.Int).Value = paperID; 176 con.Open(); 177 SqlDataReader drExam = cmdExam.ExecuteReader(); 178 int scoreAll = 0; 179 while (drExam.Read()) 180 { 181 scoreAll += drExam.GetInt32(0); 182 } 183 con.Close(); 184 return scoreAll; 185 } 186 187 /// <summary> 188 /// 通过试卷ID来取得试卷的题型 189 /// </summary> 190 /// <param name="paperID"></param> 191 /// <returns></returns> 192 public DataTable getStyles(int paperID) 193 { 194 SqlConnection con = new SqlConnection(strcon); 195 string strcmdExam = "select distinct q.sid,s.sname from styles s left join questions q on q.sid = s.sid left join testpaper t on t.qid = q.qid where t.paper_id =@paperID order by q.sid asc"; 196 SqlCommand cmdExam = new SqlCommand(strcmdExam, con); 197 cmdExam.Parameters.Add("@paperID", SqlDbType.Int).Value = paperID; 198 con.Open(); 199 SqlDataAdapter da = new SqlDataAdapter(cmdExam); 200 DataTable dt = new DataTable(); 201 DataSet ds = new DataSet(); 202 da.Fill(ds, "table"); 203 dt = ds.Tables["table"]; 204 con.Close(); 205 return dt; 206 } 207 208 /// <summary> 209 /// 通过试卷ID和题型ID来取得某一个题型题目table[q_num 题目顺序,qid 题目ID,content题目内容] 210 /// </summary> 211 /// <param name="paperID">试卷ID</param> 212 /// <param name="sID">题型ID</param> 213 /// <returns>返回该题型的题目datatable</returns> 214 public DataTable getQues(int paperID,int sID) 215 { 216 SqlConnection con = new SqlConnection(strcon); 217 string strcmdExam = "select tp.q_num,tp.qid,qs.content from testpaper tp left join questions qs on tp.qid=qs.qid where tp.paper_id=@paperID and qs.sid=@sID order by tp.q_num"; 218 SqlCommand cmdExam = new SqlCommand(strcmdExam, con); 219 cmdExam.Parameters.Add("@paperID", SqlDbType.Int).Value = paperID; 220 cmdExam.Parameters.Add("@sID", SqlDbType.Int).Value = sID; 221 con.Open(); 222 SqlDataAdapter da = new SqlDataAdapter(cmdExam); 223 DataTable dt = new DataTable(); 224 DataSet ds = new DataSet(); 225 da.Fill(ds, "table"); 226 dt = ds.Tables["table"]; 227 con.Close(); 228 return dt; 229 } 230 231 /// <summary> 232 /// 通过试卷ID和题目q_num来取得某个题目(选择题)的选项和正确答案标识 table[optionname,options,answer] 233 /// </summary> 234 /// <param name="paperID"></param> 235 /// <param name="q_num"></param> 236 /// <returns></returns> 237 public DataTable getOptions(int paperID,int q_num) 238 { 239 SqlConnection con = new SqlConnection(strcon); 240 string strcmdExam = "select a.optionsname,a.options,a.answer from answers a left join testpaper t on a.qid = t.qid where t.q_num =@q_num and t.paper_id =@paperID"; 241 SqlCommand cmdExam = new SqlCommand(strcmdExam, con); 242 cmdExam.Parameters.Add("@q_num", SqlDbType.Int).Value = q_num; 243 cmdExam.Parameters.Add("@paperID", SqlDbType.Int).Value = paperID; 244 con.Open(); 245 SqlDataAdapter da = new SqlDataAdapter(cmdExam); 246 DataTable dt = new DataTable(); 247 DataSet ds = new DataSet(); 248 da.Fill(ds, "table"); 249 dt = ds.Tables["table"]; 250 con.Close(); 251 return dt; 252 } 253 254 255 /// <summary> 256 /// 取得选择题的正确答案 257 /// </summary> 258 /// <param name="paperID"></param> 259 /// <param name="q_num"></param> 260 /// <returns></returns> 261 public string getSelectAnswer(int paperID, int q_num) 262 { 263 string answers = ""; 264 DataTable dt = getOptions(paperID, q_num); 265 int AnswersNum = Convert.ToInt32(dt.Rows.Count); 266 if (AnswersNum > 0) 267 { 268 for (int i = 0; i <= AnswersNum - 1;i++) 269 { 270 if(Convert.ToString(dt.Rows[i][2]) == "1") 271 { 272 answers += Convert.ToString(dt.Rows[i][0]); 273 } 274 } 275 } 276 return answers; 277 } 278 /// <summary> 279 /// 通过试卷ID和题目q_num来取得某个题目(简答题)正确答案 280 /// </summary> 281 /// <param name="paperID"></param> 282 /// <param name="q_num"></param> 283 /// <returns></returns> 284 public string getAnswer(int paperID, int q_num) 285 { 286 SqlConnection con = new SqlConnection(strcon); 287 string quesResult = ""; 288 string strcmdExam = "select t.q_num,a.options from answers a left join testpaper t on a.qid = t.qid where t.q_num =@q_num and t.paper_id =@paperID"; 289 SqlCommand cmdExam = new SqlCommand(strcmdExam, con); 290 cmdExam.Parameters.Add("@q_num", SqlDbType.Int).Value = q_num; 291 cmdExam.Parameters.Add("@paperID", SqlDbType.Int).Value = paperID; 292 con.Open(); 293 SqlDataReader dr = cmdExam.ExecuteReader(); 294 if (dr.Read()) 295 { 296 quesResult = dr.GetString(1).ToString(); 297 } 298 con.Close(); 299 return quesResult; 300 } 301 302 /// <summary> 303 /// 取得RadioButtonList被选中的项的value 304 /// </summary> 305 /// <param name="rbl"></param> 306 /// <returns></returns> 307 public string getSingleAns(RadioButtonList rbl) 308 { 309 string Answer = ""; 310 if (rbl.SelectedIndex != -1) 311 { 312 Answer = rbl.SelectedValue; 313 } 314 else 315 { 316 Answer = ""; 317 } 318 return Answer; 319 } 320 /// <summary> 321 /// 取得CheckBoxList被选中的项的value 322 /// </summary> 323 /// <param name="cbl"></param> 324 /// <returns></returns> 325 public string getMultiAns(CheckBoxList cbl) 326 { 327 string Answers = ""; 328 foreach(ListItem li in cbl.Items ) 329 { 330 if (li.Selected) 331 { 332 Answers += li.Value.ToString(); 333 } 334 } 335 return Answers; 336 } 337 338 /// <summary> 339 /// 通过试卷ID和题目序号来取得题目的真实ID 340 /// </summary> 341 /// <param name="qnum"></param> 342 /// <returns></returns> 343 public int getQuesID(int paperID,int qnum) 344 { 345 SqlConnection con = new SqlConnection(strcon); 346 con.Open(); 347 string strcmd = "select qid from testpaper where paper_id=@paper_id and q_num=@q_num"; 348 SqlCommand cmd = new SqlCommand(strcmd, con); 349 cmd.Parameters.Add("@paper_id",SqlDbType.Int).Value = paperID; 350 cmd.Parameters.Add("@q_num", SqlDbType.Int).Value = qnum; 351 int qid =Convert.ToInt32(cmd.ExecuteScalar()); 352 con.Close(); 353 return qid; 354 } 355 356 /// <summary> 357 /// 执行sql语句 358 /// </summary> 359 /// <param name="strcmd"></param> 360 public void exec(string strcmd) 361 { 362 SqlConnection con = new SqlConnection(strcon); 363 con.Open(); 364 SqlCommand cmd = new SqlCommand(strcmd, con); 365 try 366 { 367 cmd.ExecuteNonQuery(); 368 } 369 catch (Exception ee) 370 { 371 ExamOnline.Common.ShowMess(ee.Message); 372 } 373 finally 374 { 375 con.Close(); 376 } 377 } 378 379 /// <summary> 380 /// 取得考试还剩下的时间,没有用到,后来使用了WSEndTime.asmx里的函数。 381 /// </summary> 382 /// <returns></returns> 383 public string getTimeLeave() 384 { 385 SqlConnection con = new SqlConnection(strcon); 386 con.Open(); 387 string strcmd = "select endtime from testpaper_list where paper_id=" + (new ExamOnline.Exam()).getCurrentPaperID(); 388 //string strcmd = "select endtime from testpaper_list where paper_id=1"; //测试 389 SqlCommand cmd = new SqlCommand(strcmd, con); 390 DateTime dt = Convert.ToDateTime(cmd.ExecuteScalar()); 391 con.Close(); 392 TimeSpan ts = dt - DateTime.Now; 393 string hours = ""; 394 string minutes = ""; 395 if (ts.Hours < 10) 396 { 397 hours = "0" + ts.Hours.ToString(); 398 } 399 else 400 { 401 hours = ts.Hours.ToString(); 402 } 403 if (ts.Minutes < 10) 404 { 405 minutes = "0" + ts.Minutes.ToString(); 406 } 407 else 408 { 409 minutes = ts.Minutes.ToString(); 410 } 411 return hours + ":" + minutes; 412 } 413 414 /// <summary> 415 /// 取得考试结束的时间,供WSEndTime.asmx调用,控制考试时间 416 /// </summary> 417 /// <returns></returns> 418 public DateTime getEndTime() 419 { 420 SqlConnection con = new SqlConnection(strcon); 421 string strcmd = "select endtime from testpaper_list where paper_id=" + (new ExamOnline.Exam()).getCurrentPaperID(); 422 SqlCommand cmd = new SqlCommand(strcmd, con); 423 con.Open(); 424 DateTime dt = Convert.ToDateTime(cmd.ExecuteScalar()); 425 return dt; 426 } 427 428 /// <summary> 429 /// 绑定listbox,用于页面exerciselogin.aspx 430 /// </summary> 431 /// <param name="lb"></param> 432 /// <param name="selID">为0时绑定课程,其他时候绑定特定课程ID(selID)绑定练习卷</param> 433 public void bindListBox(ListBox lb, string selID) 434 { 435 SqlConnection con = new SqlConnection(strcon); 436 con.Open(); 437 string strcmd = ""; 438 if (selID == "0") 439 { 440 strcmd = "select cid,cname from course"; 441 } 442 else 443 { 444 strcmd = "select paper_id,paper_name from testpaper_list where test=0 and cid='" + selID + "'"; 445 } 446 SqlCommand cmd = new SqlCommand(strcmd, con); 447 SqlDataReader dr = cmd.ExecuteReader(); 448 while(dr.Read()) 449 { 450 ListItem li = new ListItem(); 451 li.Value =Convert.ToString(dr.GetValue(0)); 452 li.Text = dr.GetString(1); 453 lb.Items.Add(li); 454 } 455 con.Close(); 456 } 457 } 458 459} 460
还没有找到您心仪的内容?请用.net源码大搜捕
代码片断 打包下载该项目完整源码:Asp.net在线考试系统源码及毕业设计论文
51Aspx.com 版权所有 CopyRight © 2006-2010. 京ICP备06046876号 本站法律顾问:ITlaw-庄毅雄律师
返回顶部
客户服务:点击这里进行客户咨询 业务合作:点击这里洽谈业务合作 合作热线:010-68880146