📄 test.aspx.cs
字号:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Text.RegularExpressions;
using System.IO;
public partial class Student_ColTest_Test : System.Web.UI.Page
{
public String Sno;//学号
int readTestNumber = 4;//阅读题量
int synTestNumber = 30;//语法题量
int fullTestNumber = 1;//完型填空题量
int readQuesNumber = 5;//阅读每题题量
int fullQuesNumber = 20;//完型每题题量
public String[] strAnswer = new String[70];//答案
public static readonly string ConnectionString =
ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
public String TestNo;//试卷编号
protected void Page_Load(object sender, EventArgs e)
{
if (Session["USERSTYLE"] == "STUDENT")
{
}
else
{
Dialog("对不起,你没有权限访问这个页面!");
Response.Redirect("~/SystemManage/Login.aspx");
}
Sno = Request.QueryString["Sno"];
TestNo = Request.QueryString["TestNo"];
txtNo.Text = TestNo;
if (TestNo == null) TestNo = "test4";//=
String[] message ={ "题库阅读题量不够", "题库语法题量不够", "题库完型填空题量不够" };
String[] readMainKey = getMainKey("TAB_SAVETESTREAD", "TRNO","TESTNO", TestNo, readTestNumber);
if (readMainKey.Length < readTestNumber)
{
Dialog(message[0]);//题库阅读题量不够
}
txtReadBind(readMainKey);
txtReadQuesBind(readMainKey);
txtReadAnsBind(readMainKey);
String[] synMainKey = getMainKey("TAB_SAVETESTSYNTAX", "TSNO", "TESTNO", TestNo, synTestNumber);
if (synMainKey.Length < synTestNumber)
{
Dialog(message[1]);//题库语法题量不够
}
txtSynQuesBind(synMainKey);
txtSynAnsBind(synMainKey);
String[] fullMainKey = getMainKey("TAB_SAVETESTFULL", "TFNO", "TESTNO", TestNo, fullTestNumber);
if (fullMainKey.Length < fullTestNumber)
{
Dialog(message[2]);//题库完型填空题量不够
}
txtFullBind(fullMainKey);
txtFullAnsBind(fullMainKey);
}
private void Dialog(String Str)
{
Response.Write(@"<script type='text/JavaScript'>");
Response.Write(@"alert('" + Str + "');");
//Response.Write(@"window.location='./list_logingroup.aspx';");
Response.Write(@"</script>");
}
public String[] getMainKey(String TableName, String ColumnName1, String ColumnName2, String Str, int TestNumber)
{
SqlConnection myConnection = new SqlConnection(ConnectionString);
String conString = "SELECT "+ColumnName1+" FROM " + TableName + " where " + ColumnName2 + "='" + Str + "'";
String[] strMainKey = new String[TestNumber];
try
{
SqlDataAdapter myAdapter = new SqlDataAdapter(conString, myConnection);
DataSet myDateSet = new DataSet();
myAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
myAdapter.Fill(myDateSet, "getTest");
DataTable Table = myDateSet.Tables[0];
int i = Table.Rows.Count;
if (i < TestNumber)
{
TestNumber = i;//题库题目太少,出不了一张完整的试卷!
}
for (int j = 0; j < TestNumber; j++)
{
strMainKey[j] = (String)Table.Rows[j].ItemArray[0];
}
}
finally
{
myConnection.Close();
}
return strMainKey;
}
public void txtReadBind(String[] Str)
{
SqlConnection myConnection = new SqlConnection(ConnectionString);
try
{
String TableName = "TAB_TESTREAD";
String ColumnName1 = "TRCONTENT";
String ColumnName2 = "TRNO";
TextBox[] txtRead ={ TxtRead1, TxtRead2, TxtRead3, TxtRead4 };
for (int i = 0; i < readTestNumber; i++)
{
String conString = "SELECT " + ColumnName1 + " FROM " + TableName + " where " + ColumnName2 + "='" + Str[i] + "'";
SqlDataAdapter da = new SqlDataAdapter(conString, myConnection);
DataSet ds = new DataSet();
da.Fill(ds);
DataTable Table = ds.Tables[0];
if (Table.Rows.Count == 0)
continue;
String strTmp = (String)Table.Rows[0].ItemArray[0];
txtRead[i].Text = readData(strTmp,"\\Wed\\SubjectManage\\Read\\");
}
}
finally
{
myConnection.Close();
}
}
public void txtReadQuesBind(String[] Str)
{
SqlConnection myConnection = new SqlConnection(ConnectionString);
try
{
String TableName = "TAB_TESTREADKEY";
String ColumnName1 = "TRQESTION";
String ColumnName2 = "TRNO";
String ColumnName3 = "QNO";
String[] strQno ={ "1", "2", "3", "4", "5" }; //Str[0] = "1";
TextBox[] txtAnswer ={ txtAnswer1, txtAnswer2, txtAnswer3, txtAnswer4, txtAnswer5, txtAnswer6, txtAnswer7, txtAnswer8, txtAnswer9, txtAnswer10, txtAnswer11, txtAnswer12, txtAnswer13, txtAnswer14, txtAnswer15, txtAnswer16, txtAnswer17, txtAnswer18, txtAnswer19, txtAnswer20 };
for (int i = 0; i < readTestNumber; i++)
for (int j = 0; j < readQuesNumber; j++)
{
String conString = "SELECT " + ColumnName1 + " FROM " + TableName + " where " + ColumnName2 + "='" + Str[i] + "'and " + ColumnName3 + "='" + strQno[j] + "'";
SqlDataAdapter da = new SqlDataAdapter(conString, myConnection);
DataSet ds = new DataSet();
da.Fill(ds);
DataTable Table = ds.Tables[0];
if (Table.Rows.Count == 0)
continue;
String strTmp = (String)Table.Rows[0].ItemArray[0];
txtAnswer[i * readQuesNumber + j].Text = strTmp;
}
}
finally
{
myConnection.Close();
}
}
public void txtReadAnsBind(String[] Str)
{
SqlConnection myConnection = new SqlConnection(ConnectionString);
try
{
String TableName = "TAB_TESTREADKEY";
String ColumnName1 = "A";
String ColumnName2 = "B";
String ColumnName3 = "C";
String ColumnName4 = "D";
String ColumnName5 = "TRNO";
String ColumnName6 = "QNO";
String ColumnName7 = "TRKEY";
String[] strQno ={ "1", "2", "3", "4", "5" }; //Str[0] = "1";
String[] strOption ={ "A.", "B.", "C.", "D." };
RadioButtonList[] Rd ={ Rd1, Rd2, Rd3, Rd4, Rd5, Rd6, Rd7, Rd8, Rd9, Rd10, Rd11, Rd12, Rd13, Rd14, Rd15, Rd16, Rd17, Rd18, Rd19, Rd20 };
for (int i = 0; i < 4; i++)
for (int j = 0; j < readQuesNumber; j++)
{
String conString = "SELECT " + ColumnName1 + "," + ColumnName2 + "," + ColumnName3 + "," + ColumnName4 + "," + ColumnName7 + " FROM " + TableName + " where " + ColumnName5 + "='" + Str[i] + "'and " + ColumnName6 + "='" + strQno[j] + "'";
SqlDataAdapter da = new SqlDataAdapter(conString, myConnection);
DataSet ds = new DataSet();
da.Fill(ds);
DataTable Table = ds.Tables[0];
if (Table.Rows.Count == 0)
{
strAnswer[i * readQuesNumber + j] = "题为空";
continue;
}
for (int k = 0; k < 4; k++)
{
Rd[i * readQuesNumber + j].Items[k].Value = strOption[k] + (String)Table.Rows[0].ItemArray[k];
}
strAnswer[i * readQuesNumber + j] = (String)Table.Rows[0].ItemArray[4];
}
}
finally
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -