📄 exampage.aspx.vb
字号:
Imports System.Data
Imports System.Data.SqlClient
Imports Exam.Module1
Public Class ExamPage
Inherits System.Web.UI.Page
#Region " Web 窗体设计器生成的代码 "
'该调用是 Web 窗体设计器所必需的。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
Protected WithEvents pnl1 As System.Web.UI.WebControls.Panel
Protected WithEvents pnl2 As System.Web.UI.WebControls.Panel
Protected WithEvents pnl3 As System.Web.UI.WebControls.Panel
Protected WithEvents lbl As System.Web.UI.WebControls.Label
Protected WithEvents lblTime As System.Web.UI.WebControls.Label
Protected WithEvents btnCancel As System.Web.UI.WebControls.Button
Protected WithEvents btnBack As System.Web.UI.WebControls.Button
Protected WithEvents SingleUC1 As New SingleUC
Protected WithEvents MultiUC1 As New MultiUC
Protected WithEvents btnEnter As System.Web.UI.WebControls.Button
'Protected WithEvents btnYes1 As System.Web.UI.WebControls.Button
Protected WithEvents btnYes As System.Web.UI.WebControls.Button
'注意: 以下占位符声明是 Web 窗体设计器所必需的。
'不要删除或移动它。
Private designerPlaceholderDeclaration As System.Object
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
'不要使用代码编辑器修改它。
InitializeComponent()
End Sub
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'对页面进行有效性判断
If Session("Stuname") Is Nothing And Session("AdminName") Is Nothing Then
Response.Write("<script language='javascript'>alert('用户不存在或者操作错误,请确认已登录.');window.location.href('index.aspx')</script>")
End If
If Request("class") <> Nothing Then
'验证是否出现一门多考现象
IsExamed()
'读取课程的信息
ReadSubjectInfo()
End If
End Sub
Sub IsExamed()
'获取Session中保存的当前学生姓名
Dim StuName As String = Session("StuName")
'Request获取参加考试的课程ID号
Dim SubjectID As Integer = Request("class")
'设置SQL语句
strsql = "SELECT score.id,score.subjectname FROM score INNER JOIN subject ON score.subjectname =subject.subject "
strsql += "Where score.studentname='" & StuName & "' AND subject.id=" & SubjectID
'定义SQLCommand对象准备执行SQL语句
readcmd = New SqlClient.SqlCommand(strsql, appconn)
Dim sqldrReadUser As SqlClient.SqlDataReader
'打开数据库连接
appconn.Open()
sqldrReadUser = readcmd.ExecuteReader()
If sqldrReadUser.Read Then
'如果有该课程的信息,则使用全局变量 Subject 保存课程名
Subject = sqldrReadUser("subjectname").ToString
'提示学生该科目已考,返回考生须知页面 Know.aspx
Response.Write("<script language='javascript'>alert('对不起,您已经参加了" & Subject & "科目的考试,不能再考。');window.location.href('Know.aspx')</script>")
End If
'清理现场,关闭连接
appconn.Close()
End Sub
Public Hours, Minutes, i As Integer
'
'如果考生未参加该课程的考试,则读取该课程的信息并显示考试规则
Sub ReadSubjectInfo()
strsql = "select * from subject where id=" & Request("class")
appconn.Open()
readcmd = New SqlClient.SqlCommand(strsql, appconn)
Dim sqldrReadUser As SqlClient.SqlDataReader
sqldrReadUser = readcmd.ExecuteReader()
If sqldrReadUser.Read() Then
lbl.Text = sqldrReadUser("subject").ToString
lblTime.Text = sqldrReadUser("testtime").ToString
Session("Subject") = lbl.Text
'设置单选题用户控件
SingleUC1.vSingle = sqldrReadUser("singlescore").ToString
SingleUC1.vSingleNumber = sqldrReadUser("singlenum").ToString
SingleUC1.Visible = True
'设置多选题用户控件
MultiUC1.vMulti = sqldrReadUser("multiscore").ToString
MultiUC1.vMultiNumber = sqldrReadUser("multinum").ToString
MultiUC1.Visible = True
Hours = CLng(lblTime.Text) \ 60
Minutes = CLng(lblTime.Text) Mod 60
Else
Response.Write("暂无此课程的信息!")
End If
appconn.Close()
End Sub
'
'单击"取消"按钮返回课程表页面
Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click
Response.Redirect("admin/ClassIntro.aspx")
End Sub
'
'单击"确定开始考试"按钮开始显示考试试题
Private Sub btnEnter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnter.Click
pnl1.Visible = False
pnl2.Visible = True
End Sub
Public SingleScore, MultiScore, Score As Integer
'
'保存得分
Sub SaveToDataBase()
strsql = "insert into score values('" & Session("StuName") & "','" & lbl.Text & "'," & Score & ",'" & Now & "')"
ExeSQL(strsql)
End Sub
'
'单击"交卷"按钮对答卷进行提交,显示考试结果
Private Sub btnYes_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnYes.Click
'提交单选题
SingleUC1.Submit1()
'提交多选题
MultiUC1.Submit2()
'获取单选题得分
SingleScore = SingleUC1.Sscore
'获取多选题得分
MultiScore = MultiUC1.Mscore
'计算总得分
Score = SingleScore + MultiScore
'清空试题列表
Session("Qlist") = Nothing
Session("MQlist") = Nothing
'将考生的考试成绩保存到数据库
SaveToDataBase()
'设置面板显示顺序 ,显示考试结果
pnl1.Visible = False
pnl2.Visible = False
pnl3.Visible = True
End Sub
'返回显示课程页面
Private Sub btnBack_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBack.Click
Response.Redirect("Know.aspx")
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -