书签 分享 收藏 举报 版权申诉 / 22

类型第8章 数据库应用系统设计实例习题解答.docx

  • 文档编号:16302373
  • 上传时间:2023-07-12
  • 格式:DOCX
  • 页数:22
  • 大小:73.31KB
"

elseIfRequest("submit")<>EmptyThen

Setconn=GetSQLServerConnection("(local)","sa","sa","netclass")

Setrs=GetSQLServerStaticRecordset(conn,"student")%>

***/如果当学生用户输入相关登录身份时,连接数据库,并打开student表/***

<%i=0

whilenot(rs.eofori=1)***/如果该身份在记录中存在,将获得的“id”传递给打开的记录集rs

(2),

ifrs

(2)=request("id")then并且与该记录集中的“password”字段对应的内容做比较/***

 ifrequest("password")=rs

(1)theni=1

 endif

rs.movenext

wend

ifi=1then

rs.moveprevious***/如果用户名与密码相匹配,那么显示“id欢迎你的到来”/***

response.Writerequest("id")

response.write"欢迎你的到来

"

session("id")=rs

(2)***/并且把rs

(2)中对应的内容传递给对象(session(“id”)),在下面页面跳转中该变量不会改变。

/***

Elseresponse.write"

用户名错误或密码错误
"***/否则登录失败/***

endif%>

开课情况与选课内容分析:

<%ifrs2.eof<>truethen

sql="select*fromgradewhere学号='"&session("id")&"'"

setrs5=server.CreateObject("adodb.recordset")

rs5.opensql,conn,1,1***/根据学生登录身份,打开该学生的选课记录表/***

i=rs5.recordcount

ifi>=5then%>***/判断记录集是否超过5条/***

***/若大于5,不能再选修课程了/***

MsgBox"你已修满课程,不能再修了!

"

history.back()

<%elseifrs3.eof=truethen***/否则,有权行选课操作。

但需要有以下几个约束条件。

当前所选的课程号不能与记录集中的相同。

/***

ifdate>=rs

(2)then***/当前选课时间要符合开课时间和结束选课时间的要求。

/***

ifrs(0)

(1)then  ***/选择的课程中不能选报已被报满的课程。

/***

ifdate

 rs3.addnew   ***/若满足以上几个约束条件,那么从rs(选课表)中获取相关课程

rs3

(2)=rs2(0)内容添加到rs3记录集中(学生选课记录表)。

/***

rs3

(1)=request("课程号")

…………….

…………….

rs3(4)=rs2(4)

rs3.update

rs(0)=rs(0)+1***/在学生选课成功后,对于选课表中的“实招人数”一栏要做相  rs.update      应的修改。

/***

 response.write"选课成功
" ***/然后,显示“选课成功”,并提示你已有几条选

 response.write"你已选了"     课记录。

/***

 response.Write""&i+1&""

 response.write"门课
"

 response.write"返回"

else%>

MsgBox"你来迟哦,已错过选课时间!

"

history.back()

<%endif

 else%> ***/否则一一提示没能成功选课的理由,让用户容易明白失败的原因,这在

 scriptlanguage="vbscript">  代码中能直接反应,这里不做解释/***

MsgBox"对不起,该课程已报满!

"

history.back()

<%endif

Else%>

MsgBox"你早到啦,还没开始选课呢!

"

history.back()

<%endif

Else

response.write"

你已经选了这门课
"

endif

endif

endif%>

选课记录:

<%Fori=0tors3.Fields.Count-1

Response.Write""&rs3(i).Name&""

Next

whilenotrs3.eof  ***/根据session("id")的传递,在学生选课记录表中找出对应的

response.Write""     记录集,并通过循环的方式在页面中显示数据库的内容:

response.Writers3(0)学生名,课程名,课程号,班级,系别等/***

………………….

………………….

………………….

response.Write"" 

response.Writers3(4)

response.Write""%>

rs3.movenext

wend%>

学生报名管理:

<%

dimstu

stu="SELECTstudent.学生名,class.课程名,student.班级,student.系别FROMstudentINNERJOINgradeONstudent.学号=grade.学号INNERJOINclassONgrade.课程号=class.课程号WHEREclass.任课老师='"&session("teacher")&"'"

Setconn=GetSQLServerConnection("(local)","sa","sa","netclass")

Setrs=GetSQLServerStaticRecordset(conn,stu)

ifrs.eofthen

response.write"

"

response.Write"对不起暂时还没有学生选你的课程如有意见请跟管理员联系"

response.write"

"

else

session("class")=rs

(1)

%>

***/通过student表中的学号与grade表中的学号连接使得student表与grade表相连,同时grade表中的课程号与class表中的课程号连接使得grade表与class表相连。

然后,又通过session的变量“teacher”传递登录教师名。

打开符合上述几个条件的记录集,如果找不到与上述几条相符的记录集,那么显示“对不起暂时还没有学生选你的课程如有意见请跟管理员联系”/***

<%

Fori=0tors.Fields.Count-1

Response.Write""&rs(i).Name&""

Next

Response.Write"【删除此学生】【打印】"

whilenotrs.eof

response.Write""***/用循环的方式将对应的记集在页面中显示出来,并且在

response.Writers(0)    每一条记录后增加【删除此学生】与【打印】的链接/***

………………

………………

response.Writers(3)

response.Write""

%>

rs.movenext

wend

%>

【打印】

此功能本系统中巧妙的运用了ASP中调用word打印语句实现打印功能。

这一设计简单又有效。

<%

dimstu

stu="SELECTstudent.学生名,class.课程名,student.班级,student.系别FROMstudentINNERJOINgradeONstudent.学号=grade.学号INNERJOINclassONgrade.课程号=class.课程号WHEREclass.任课老师='"&session("teacher")&"'"

Setconn=GetSQLServerConnection("(local)","sa","sa","netclass")

Setrs=GetSQLServerStaticRecordset(conn,stu)

%>

<%

Response.ContentType="application/msword"

response.AddHeader"content-disposition","inline:

filename=report.doc"

%>

***/通过用SQL内联语句找出符合打印的的记录集,然后调用ASP中通过连接word打印的语句准备打印。

/***

<%

Fori=0tors.Fields.Count-1

Response.Write""&rs(i).Name&""

Next

whilenotrs.eof

response.Write""

response.Writers(0)

…………………..***/在WORD页面中,通过用循环打印的方式,将符合条件的记录

…………………..集打印出来/***

…………………..

response.Write""

%>

<%

rs.movenext

wend

%>

【删除】

主要用到request对象的session数据集合来获取searchuser与class的值。

这里涉及到三张表:

student,class,grade。

通过rs.delete,rs.update达到实现效果。

主要代码与解释:

<%

dimstu

stu="SELECTgrade.*FROMgradeINNERJOINstudentONstudent.学号=grade.学号INNERJOINclassONgrade.课程号=class.课程号WHEREstudent.学生名='"&request("searchuser")&"'ANDclass.课程名='"&session("class")&"'"

Setconn=GetSQLServerConnection("(local)","sa","sa","netclass")

Setrs=GetSQLServerStaticRecordset(conn,stu)

ifnotrs.eofthen

rs.delete

rs.update

%>

***/通过对象session中的变量searchuser与class传递,找到合乎该条件的记录,如果存在

配套讲稿:

如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

特殊限制:

部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

关 键  词:
第8章 数据库应用系统设计实例习题解答 数据库 应用 系统 设计 实例 习题 解答
提示  冰点文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:第8章 数据库应用系统设计实例习题解答.docx
链接地址:https://www.bingdoc.com/p-16302373.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


收起
展开