

如果其中不存在,则访问者将被重定向到搜索页面:
如果同时传递表单中包含的变量Action不为空,则表明访问者正借阅该图书:
if Not isempty(Request.QueryString("Action")) then
在这种情况下,需要将图书状态改为 Checkout, 同时需要将Checkedoutto 字段修改为该访问者:
conn.Execute "update LibBooks set Status = 'Checked Out', " _
& "CheckedOutTo = " & Session("EmpID") & " where BookID = " _
& Request.QueryString("BookID")
Response.Redirect "./library_menu.asp"
end if
然后将该访问者重定到图书馆菜单页面:
下一步,利用图书的状态来确定不同的链接
未借出时链接如下:
if RSBooks("status") = "Available" then
LinkText = "<A HREF=""../html/book.asp?Action=CheckOut&BookID=" _
& Request.QueryString("BookID") & """>借这本书</A>"
如果图书已经借出,就创建一个不同的消息,并将链接设置为指向Library menu 页面:
LinkText = "<A HREF=""../html/library_menu.asp"">图书已出借,返回主菜单。</A>"
最后根据是否是管理员,显示管理员菜单链接。
<% If Session("Manager") = 1 then %><A HREF="../html/management_menu.asp?title=<% response.write RSBooks("Title") %>&BOOKID=<% response.write RSBooks("BOOKID") %>">管理员菜单</A><% end if %>
3.3网上评优投票系统
3.3.1功能:
能实现全校性的评选,快捷、公平,且有效,不允许做票。
3.3.2组成构造
这个系统由3个部分组成——投票页面vote.htm ,处理投票结果的脚本,显示投票页面 。
3.3.3数据表的设计:
3.3.4界面设计与重点、难点代码设计
投票页面
该页面是一个纯HTML文件,它让用户选择自己想选举的候选人,并填写自己的详细资料,以确认投票的有效性。页面显示如图所示。
表单处理脚本
在vote.htm中各项数据都填写完毕后,单击确定投票按钮,表单的数据就被提交,
本次评优共有4个候选人,但只能选两个。故用复选框。
投票的有效性通过是否是本校学生,且是否投过票来判断。
if request("passno")<>"" then
sql="select * from stud where password="&"'"&request("passno")&"'" &"and yitu=0"
set rs=cn.execute(sql)
if rs.eof then%>
<h2 align=center><%response.write"你无权投票"%></h2>
本设计允许少选,不允许多选。通过判断Vote投票界面传递过来的复选按纽值的长度看是否多选。
vo=request("cand")
if len(vo)>4 then%>
<h2 align=center><%response.write "多选了,无效"%></h2>
然后根据所投的票将对应候选人的投票结果字段加1,同时将该投票人的已投字段置为1。
sqq="update stud set yitu=1 where password="&"'"&request("passno")&"'"
cn.execute(sqq)
if instr(vo,"1") then
cn.execute("update stud set result=result+1 where name='李宁'")
end if
if instr(vo,"2") then
cn.execute("update stud set result=result+1 where name='杨兰'")
end if
if instr(vo,"3") then
cn.execute("update stud set result=result+1 where name='江道明'")
end if
if instr(vo,"4") then
cn.execute("update stud set result=result+1 where name='段启文'")
end if%>
显示当前投票情况show.asp
由于投票处理页面已经完成了绝大部分的工作,所以 显示结果页面就很简单了,其功能是从 Stud表文件中读取候选人所得票数,显示在页面上。
页面显示如图
值得注意的代码主要有以下几处:
该页面有自动刷新功能,使在线用户可以尽快的看到最新的选举情况。我们这里设定每隔30秒钟自动刷新一次。
<meta http-equiv="refresh" content="10;URL=show.asp">
显示投票时,我们采用了while循环,把候选人及其得票数,整齐地显示在一个表格中,这种技术在数据库查询结果的显示中也经常用到。代码如下:
<%while not hs.eof %>
<tr>
<td width="100%"><center>
<font color="#8000ff"><big>
<%=hs("name")&" "&hs("result")&"票"%>
</big> </font>
</center>
</td>
</tr>
<%hs.movenext%>
<%wend%>
3.4达级考试在线查分系统与计数器的制作
3.4.1功能:
它提供了在线查看成绩。考生可以在网上使用这一系统,通过输入准考证编号来查询达级考试的结果。
3.4.2数据表的设计
与评优系统共用STUd表,表设计同上。
3.4.3界面设计与重点难点代码的设计
该模块需要查询者输入准考证号后来查看结果。若ID1不为空时,表示有表单输入,开始查询数据库。使用 SELECT的SQL指令查询数据库的数据。先设定SQL指令,查询ID符合准考证编号Request.Form("ID1")的数据,下个“Execute”指令,即可开始执行存取、查询数据的动作了。并将查询结果储存到Recordsets组件RS中。
IF Request.Form("ID1")<>"" THEN
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("FILEDSN=c:\Program Files\Common Files\ODBC\Data Sources\ms access database.dsn")
SQL = "SELECT name,id,score FROM stud WHERE id='" & Request.Form("ID1") & "'"
Set RS = Conn.Execute(SQL)
若考试通过,则显示考试的结果,包括姓名、准考证编号、总分和考试结果,分别由RecordSets 组件的RS(0)、RS(1)、RS(2)、RS(3)得到。FS.Field.Count表示RecordSets组件的域的总数,由“for I=0 to RS.Fields.count-1”,取得RS(I)各域的数据。配合 <Table> 表格的HTML语法,将结果填入表格的各单元格中。 若还有下一个数据,就使用RS.MoveNext 移到下一个位置。 转贴于 酷文网-论文下载中心 http://www.coolwen.net