?? exam.cs
字號:
/// <summary>
/// 通過試卷ID和題目q_num來取得某個題目(選擇題)的選項和正確答案標識 table[optionname,options,answer]
/// </summary>
/// <param name="paperID"></param>
/// <param name="q_num"></param>
/// <returns></returns>
public DataTable getOptions(int paperID,int q_num)
{
SqlConnection con = new SqlConnection(strcon);
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";
SqlCommand cmdExam = new SqlCommand(strcmdExam, con);
cmdExam.Parameters.Add("@q_num", SqlDbType.Int).Value = q_num;
cmdExam.Parameters.Add("@paperID", SqlDbType.Int).Value = paperID;
con.Open();
SqlDataAdapter da = new SqlDataAdapter(cmdExam);
DataTable dt = new DataTable();
DataSet ds = new DataSet();
da.Fill(ds, "table");
dt = ds.Tables["table"];
con.Close();
return dt;
}
/// <summary>
/// 取得選擇題的正確答案
/// </summary>
/// <param name="paperID"></param>
/// <param name="q_num"></param>
/// <returns></returns>
public string getSelectAnswer(int paperID, int q_num)
{
string answers = "";
DataTable dt = getOptions(paperID, q_num);
int AnswersNum = Convert.ToInt32(dt.Rows.Count);
if (AnswersNum > 0)
{
for (int i = 0; i <= AnswersNum - 1;i++)
{
if(Convert.ToString(dt.Rows[i][2]) == "1")
{
answers += Convert.ToString(dt.Rows[i][0]);
}
}
}
return answers;
}
/// <summary>
/// 通過試卷ID和題目q_num來取得某個題目(簡答題)正確答案
/// </summary>
/// <param name="paperID"></param>
/// <param name="q_num"></param>
/// <returns></returns>
public string getAnswer(int paperID, int q_num)
{
SqlConnection con = new SqlConnection(strcon);
string quesResult = "";
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";
SqlCommand cmdExam = new SqlCommand(strcmdExam, con);
cmdExam.Parameters.Add("@q_num", SqlDbType.Int).Value = q_num;
cmdExam.Parameters.Add("@paperID", SqlDbType.Int).Value = paperID;
con.Open();
SqlDataReader dr = cmdExam.ExecuteReader();
if (dr.Read())
{
quesResult = dr.GetString(1).ToString();
}
con.Close();
return quesResult;
}
/// <summary>
/// 取得RadioButtonList被選中的項的value
/// </summary>
/// <param name="rbl"></param>
/// <returns></returns>
public string getSingleAns(RadioButtonList rbl)
{
string Answer = "";
if (rbl.SelectedIndex != -1)
{
Answer = rbl.SelectedValue;
}
else
{
Answer = "";
}
return Answer;
}
/// <summary>
/// 取得CheckBoxList被選中的項的value
/// </summary>
/// <param name="cbl"></param>
/// <returns></returns>
public string getMultiAns(CheckBoxList cbl)
{
string Answers = "";
foreach(ListItem li in cbl.Items )
{
if (li.Selected)
{
Answers += li.Value.ToString();
}
}
return Answers;
}
/// <summary>
/// 通過試卷ID和題目序號來取得題目的真實ID
/// </summary>
/// <param name="qnum"></param>
/// <returns></returns>
public int getQuesID(int paperID,int qnum)
{
SqlConnection con = new SqlConnection(strcon);
con.Open();
string strcmd = "select qid from testpaper where paper_id=@paper_id and q_num=@q_num";
SqlCommand cmd = new SqlCommand(strcmd, con);
cmd.Parameters.Add("@paper_id",SqlDbType.Int).Value = paperID;
cmd.Parameters.Add("@q_num", SqlDbType.Int).Value = qnum;
int qid =Convert.ToInt32(cmd.ExecuteScalar());
con.Close();
return qid;
}
/// <summary>
/// 執行sql語句
/// </summary>
/// <param name="strcmd"></param>
public void exec(string strcmd)
{
SqlConnection con = new SqlConnection(strcon);
con.Open();
SqlCommand cmd = new SqlCommand(strcmd, con);
try
{
cmd.ExecuteNonQuery();
}
catch (Exception ee)
{
ExamOnline.Common.ShowMess(ee.Message);
}
finally
{
con.Close();
}
}
/// <summary>
/// 取得考試還剩下的時間,沒有用到,后來使用了WSEndTime.asmx里的函數。
/// </summary>
/// <returns></returns>
public string getTimeLeave()
{
SqlConnection con = new SqlConnection(strcon);
con.Open();
string strcmd = "select endtime from testpaper_list where paper_id=" + (new ExamOnline.Exam()).getCurrentPaperID();
//string strcmd = "select endtime from testpaper_list where paper_id=1"; //測試
SqlCommand cmd = new SqlCommand(strcmd, con);
DateTime dt = Convert.ToDateTime(cmd.ExecuteScalar());
con.Close();
TimeSpan ts = dt - DateTime.Now;
string hours = "";
string minutes = "";
if (ts.Hours < 10)
{
hours = "0" + ts.Hours.ToString();
}
else
{
hours = ts.Hours.ToString();
}
if (ts.Minutes < 10)
{
minutes = "0" + ts.Minutes.ToString();
}
else
{
minutes = ts.Minutes.ToString();
}
return hours + ":" + minutes;
}
/// <summary>
/// 取得考試結束的時間,供WSEndTime.asmx調用,控制考試時間
/// </summary>
/// <returns></returns>
public DateTime getEndTime()
{
SqlConnection con = new SqlConnection(strcon);
string strcmd = "select endtime from testpaper_list where paper_id=" + (new ExamOnline.Exam()).getCurrentPaperID();
SqlCommand cmd = new SqlCommand(strcmd, con);
con.Open();
DateTime dt = Convert.ToDateTime(cmd.ExecuteScalar());
return dt;
}
/// <summary>
/// 綁定listbox,用于頁面exerciselogin.aspx
/// </summary>
/// <param name="lb"></param>
/// <param name="selID">為0時綁定課程,其他時候綁定特定課程ID(selID)綁定練習卷</param>
public void bindListBox(ListBox lb, string selID)
{
SqlConnection con = new SqlConnection(strcon);
con.Open();
string strcmd = "";
if (selID == "0")
{
strcmd = "select cid,cname from course";
}
else
{
strcmd = "select paper_id,paper_name from testpaper_list where test=0 and cid='" + selID + "'";
}
SqlCommand cmd = new SqlCommand(strcmd, con);
SqlDataReader dr = cmd.ExecuteReader();
while(dr.Read())
{
ListItem li = new ListItem();
li.Value =Convert.ToString(dr.GetValue(0));
li.Text = dr.GetString(1);
lb.Items.Add(li);
}
con.Close();
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -