实验04简单考试测试页面11.docx

上传人:b****8 文档编号:9678143 上传时间:2023-05-20 格式:DOCX 页数:17 大小:101.45KB
下载 相关 举报
实验04简单考试测试页面11.docx_第1页
第1页 / 共17页
实验04简单考试测试页面11.docx_第2页
第2页 / 共17页
实验04简单考试测试页面11.docx_第3页
第3页 / 共17页
实验04简单考试测试页面11.docx_第4页
第4页 / 共17页
实验04简单考试测试页面11.docx_第5页
第5页 / 共17页
实验04简单考试测试页面11.docx_第6页
第6页 / 共17页
实验04简单考试测试页面11.docx_第7页
第7页 / 共17页
实验04简单考试测试页面11.docx_第8页
第8页 / 共17页
实验04简单考试测试页面11.docx_第9页
第9页 / 共17页
实验04简单考试测试页面11.docx_第10页
第10页 / 共17页
实验04简单考试测试页面11.docx_第11页
第11页 / 共17页
实验04简单考试测试页面11.docx_第12页
第12页 / 共17页
实验04简单考试测试页面11.docx_第13页
第13页 / 共17页
实验04简单考试测试页面11.docx_第14页
第14页 / 共17页
实验04简单考试测试页面11.docx_第15页
第15页 / 共17页
实验04简单考试测试页面11.docx_第16页
第16页 / 共17页
实验04简单考试测试页面11.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

实验04简单考试测试页面11.docx

《实验04简单考试测试页面11.docx》由会员分享,可在线阅读,更多相关《实验04简单考试测试页面11.docx(17页珍藏版)》请在冰点文库上搜索。

实验04简单考试测试页面11.docx

实验04简单考试测试页面11

实验04-简单考试测试页面11

实验04简单考试页面

设计并实现一个用于单项选择题和多项选择题的测试页面

数据库表的定义如下

单选题表(question)

多选题表(questioncheck)

成绩表(score)

1.首先在web.config文件中添加数据库连接语句

或者下面的连接语句

2.公共数据连接类代码为:

publicclassDataConn

{

publicDataConn(){}

publicstaticstringstrconn=ConfigurationManager.ConnectionStrings["shiticonn"].ConnectionString;

publicstaticSqlConnectionCreateConn()

{

SqlConnectionconn=newSqlConnection(strconn);

returnconn;

}

publicstaticSqlDataReaderExecuterRead(stringcmdtext,SqlConnectionconn)

{

SqlCommandcmd=newSqlCommand();

cmd.Connection=conn;

cmd.CommandText=cmdtext;

SqlDataReaderdr=cmd.ExecuteReader();

returndr;

}

publicstaticSqlDataReaderExecuterRead(stringcmdtext,SqlConnectionconn,paramsSqlParameter[]array1)

{

SqlCommandcmd=newSqlCommand();

cmd.Connection=conn;

cmd.CommandText=cmdtext;

foreach(SqlParameterparainarray1)

cmd.Parameters.Add(para);

SqlDataReaderdr=cmd.ExecuteReader();

returndr;

}

publicstaticintExecuteNonRead(stringcmdtext)

{

SqlConnectionconn=CreateConn();

conn.Open();

SqlCommandcmd=newSqlCommand(cmdtext,conn);

inti=cmd.ExecuteNonQuery();

conn.Close();

returni;

}

publicstaticintExecuteNonRead(stringcmdtext,paramsSqlParameter[]array)

{

SqlConnectionconn=CreateConn();

conn.Open();

SqlCommandcmd=newSqlCommand(cmdtext,conn);

foreach(SqlParameterparainarray)

cmd.Parameters.Add(para);

inti=cmd.ExecuteNonQuery();

conn.Close();

returni;

}

publicstaticobjectExecuteQueryValue(stringcmdtext,paramsSqlParameter[]array)

{

SqlConnectionconn=CreateConn();

conn.Open();

SqlCommandcmd=newSqlCommand(cmdtext,conn);

foreach(SqlParameterparainarray)

cmd.Parameters.Add(para);

objecto=cmd.ExecuteScalar();

conn.Close();

returno;

}

publicstaticobjectExecuteQueryValue(stringcmdtext)

{

SqlConnectionconn=CreateConn();

conn.Open();

SqlCommandcmd=newSqlCommand(cmdtext,conn);

objecto=cmd.ExecuteScalar();

conn.Close();

returno;

}

}

3.登录页面设计

3.1开始考试按钮的事件代码为:

protectedvoidButtonStartExam_Click(objectsender,EventArgse)

{

SqlConnectionconn=DataConn.CreateConn();

conn.Open();

//stringcmdtext="select*fromusertablewherename='"+TextBoxName.Text+"'";

//SqlDataReaderdr=dataconn.ExecuterRead(cmdtext,conn);

stringcmdtext="select*from用户信息where用户名=@username";

SqlDataReaderdr=DataConn.ExecuterRead(cmdtext,conn,newSqlParameter("@username",TextBoxName.Text));

if(dr.Read())

{

if(dr["密码"].ToString().Trim()==TextBoxPassword.Text.Trim())

{

dr.Close();

cmdtext="select*fromscorewhere用户名=@username1";

if(DataConn.ExecuterRead(cmdtext,conn,newSqlParameter("@username1",TextBoxName.Text)).Read())

Response.Write("");

else

{

Session["username"]=TextBoxName.Text;

Response.Redirect("exam.aspx");

}

}

else

Response.Write("");

}

else

{

Response.Write("");

}

conn.Close();

}

3.2注册新用户按钮的事件代码为:

protectedvoidButtonRegister_Click(objectsender,EventArgse)

{

//stringcmdtext="insertintousertable(name,password)values('"+TextBoxName.Text+"','"+TextBoxPassword.Text+"')";

SqlConnectionconn=DataConn.CreateConn();

conn.Open();

stringcmdtext="select*from用户信息where用户名=@username";

SqlParameterpara=newSqlParameter("@username",TextBoxName.Text);

SqlDataReaderdr=DataConn.ExecuterRead(cmdtext,conn,para);

if(dr.Read())

{

Response.Write("");

conn.Close();

}

else

{

cmdtext="insertinto用户信息(用户名,密码)values(@username,@password)";

SqlParameterp1=newSqlParameter("@username",TextBoxName.Text);

SqlParameterp2=newSqlParameter("@password",TextBoxPassword.Text);

if(DataConn.ExecuteNonRead(cmdtext,p1,p2)==1)

Response.Write("");

}

}

3.3查看成绩按钮的事件代码为:

protectedvoidButtonLookOverScore_Click(objectsender,EventArgse)

{

SqlConnectionconn=DataConn.CreateConn();

conn.Open();

//stringcmdtext="select*fromusertablewherename='"+TextBoxName.Text+"'";

//SqlDataReaderdr=dataconn.ExecuterRead(cmdtext,conn);

stringcmdtext="select*from用户信息,scorewhere用户信息.用户名=@usernameand用户信息.用户名=score.用户名";

SqlParameterpara=newSqlParameter("@username",TextBoxName.Text);

SqlDataReaderdr=DataConn.ExecuterRead(cmdtext,conn,para);

if(dr.Read())

{

if(dr["密码"].ToString().Trim()==TextBoxPassword.Text.Trim())

{

Session["username"]=TextBoxName.Text;

Response.Redirect("LookOverScore.aspx");

}

else

Response.Write("");

}

else

{

Response.Write("");

}

conn.Close();

}

3.4清除考试信息按钮的事件代码为:

protectedvoidButtonClearExamInfo_Click(objectsender,EventArgse)

{

stringcmdtext="selectcount(*)fromscorewhere用户名=@username";

objectobj=DataConn.ExecuteQueryValue(cmdtext,newSqlParameter("@username",TextBoxName.Text));

if(int.Parse(obj.ToString())==1)//首先判断该用户是否参加过考试

{

cmdtext="droptabledanxuandaan"+TextBoxName.Text;

DataConn.ExecuteNonRead(cmdtext);//清除该考生的单选答案表

cmdtext="droptableduoxuandaan"+TextBoxName.Text;

DataConn.ExecuteNonRead(cmdtext);//清除该考生的多选答案表

cmdtext="deletefromscorewhere用户名=@username";

DataConn.ExecuteNonRead(cmdtext,newSqlParameter("@username",TextBoxName.Text));

//清除该考生的考试成绩

}

else

Response.Write("");

}

4.考试页面设计

在设计界面上添加2个PlaceHolder,一个用于添加单选题,一个用于添加多选题。

放置一个label控件LabelUserName,用户显示用户名信息

4.1考试页面的初始化代码为

protectedvoidPage_Load(objectsender,EventArgse)

{

if(!

IsPostBack)

{

if(Session["username"]==null)

Response.Redirect("login.aspx");

LabelUserName.Text=LabelUserName.Text+Session["username"].ToString();

}

LoadDanXuanExam();

LoadDuoXuanExam();

}

4.1.1加载单选题

privatevoidLoadDanXuanExam()

{

SqlConnectionconn=DataConn.CreateConn();

conn.Open();

stringcmdtext="select*fromquestion";

SqlCommandcmd=newSqlCommand(cmdtext,conn);

SqlDataReaderdr=cmd.ExecuteReader();

while(dr.Read())

{

Labellblquestion=newLabel();

lblquestion.ID="lblquestiondan"+dr["序号"].ToString();

lblquestion.Text=dr["序号"].ToString()+"."+dr["题目名"].ToString().Trim()+"()";

PlaceHolder1.Controls.Add(lblquestion);

RadioButtonListrbl=newRadioButtonList();

rbl.Items.Add(newListItem("A."+dr["选项A"].ToString(),"A"));

rbl.Items.Add(newListItem("B."+dr["选项B"].ToString(),"B"));

rbl.Items.Add(newListItem("C."+dr["选项C"].ToString(),"C"));

rbl.Items.Add(newListItem("D."+dr["选项D"].ToString(),"D"));

PlaceHolder1.Controls.Add(rbl);

}

conn.Close();

}

4.1.2加载多选题

privatevoidLoadDuoXuanExam()

{

SqlConnectionconn=DataConn.CreateConn();

conn.Open();

stringcmdtext="select*fromquestioncheck";

SqlCommandcmd=newSqlCommand(cmdtext,conn);

SqlDataReaderdr=cmd.ExecuteReader();

while(dr.Read())

{

Labellblquestion=newLabel();

lblquestion.ID="lblquestionduo"+dr["序号"].ToString();

lblquestion.Text=dr["序号"].ToString()+"."+dr["题目名"].ToString().Trim()+"()";

PlaceHolder2.Controls.Add(lblquestion);

CheckBoxListcbl=newCheckBoxList();

cbl.Items.Add(newListItem("A."+dr["选项A"].ToString(),"A"));

cbl.Items.Add(newListItem("B."+dr["选项B"].ToString(),"B"));

cbl.Items.Add(newListItem("C."+dr["选项C"].ToString(),"C"));

cbl.Items.Add(newListItem("D."+dr["选项D"].ToString(),"D"));

cbl.Items.Add(newListItem("E."+dr["选项E"].ToString(),"E"));

PlaceHolder2.Controls.Add(cbl);

}

conn.Close();

}

4.2提交按钮的事件代码为

protectedvoidButtonSubmit_Click(objectsender,EventArgse)

{

Submitdanxuan();

Submitduoxuan();

intduoxuanscore=0;intdanxuanscore=0;

stringcmdtext="selectsum(分值)fromquestioncheck,duoxuandaan"+Session["username"].ToString()+"where序号=xuhaoanddaan=正确答案";

objectobj=DataConn.ExecuteQueryValue(cmdtext);

if(obj.ToString()!

="")duoxuanscore=int.Parse(obj.ToString());//通过判断避免没有一个正确答案时,obj的值为空字符串时产生错误

//计算多选分值

cmdtext="selectsum(分值)fromquestion,danxuandaan"+Session["username"].ToString()+"where序号=xuhaoanddaan=正确答案";

obj=DataConn.ExecuteQueryValue(cmdtext);

if(obj.ToString()!

="")danxuanscore=int.Parse(obj.ToString());

//计算单选分值

cmdtext="insertintoscore(用户名,成绩)values(@username,@score)";

SqlParameterp1=newSqlParameter("@username",Session["username"].ToString());

SqlParameterp2=newSqlParameter("@score",danxuanscore+duoxuanscore);

DataConn.ExecuteNonRead(cmdtext,p1,p2);

//存储成绩信息

}

4.2.1多选题提交

privatevoidSubmitduoxuan()

{

stringcmdtext="createtableduoxuandaan"+Session["username"].ToString()+"(xuhaoint,daannchar(10))";

DataConn.ExecuteNonRead(cmdtext);

inti=1;

foreach(ControlcontrolinPlaceHolder2.Controls)

{

if(controlisLabel)

{

i=int.Parse(((Label)control).ID.Substring(14));

}

if(controlisCheckBoxList)

{

stringdaan="";

foreach(ListItemccin((CheckBoxList)control).Items)

{

if(cc.Selected)daan=daan+cc.Value.ToString();

}

cmdtext="insertintoduoxuandaan"+Session["username"].ToString()+"(xuhao,daan)values(@xuhao,@daan)";

SqlParameterp1=newSqlParamete

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2