关闭数据对象和链接对象
在使用了ADO对象之后要关闭它,因为它使用了一定的服务器资源。通过调用方法close实现关闭,然后再释放它。
RecordSet.close
SetRecordSet=Nothing
/关闭创建的数据对象
mConn.close
SetmConn=Nothing
/关闭创建的链接对象
第三章需求分析
3.1系统功能描述
3.1.1客户界面部分
1.通过首页购书,可以通过关键字或者出版商进行查询
2.可以查看热门图书和打折图书
3.购物车功能
4.查看图书详细说明
5.用户注册
6.用户登录
7.查看订单情况
8.修改个人信息
9.找回密码
10.购物车帮助
3.1.2管理界面部分
1.出版商维护:增加、修改和删除出版商
2.现有图书维护:修改、删除、查看和增加新书
3.用户管理:查看、修改和删除
4.订单管理:查看订单情况,更新订单付款,出货状态和删除订单等功能
5.购物车帮助:增加、修改和删除购物帮助
3.2系统性能需求
开发工具:MicrosoftOfficeAccess2000
MacromediaDreamWeaverMX2004,FlashMX2004,FireWorkMX2004,PhotoShop。
开发语言:ASP+Access.
开发技术:基于IIS等服务器的ASP技术
面向对象:需求者
第四章总体设计
4.1系统模块结构设计
4.1.1功能模块图
用户模块划分如图4.1.1所示:
图4.1.1
用户的管理功能划分如图4.2.3所示:
4.1.2网站流程图
4.2数据库设计
4.2.1概念机构设计
网上商城可简单的划分为2个部分,如图4.1.1所示:
图4.1.1
4.2.2数据库逻辑结果设计
1.管理员信息表
2.会员信息表
3.图书类型信息表
4.图书信息表
5.订单详细信息表
6.订单列表信息表
7.常见问题表
4.3链接数据库
程序清单4.1数据库链接文件的实现conndb.asp
<%
OptionExplicit '要求变量声明,这样所有包含此文件的都需要声明变量
dimconn '数据库连接
dimconnstr '连接字符串
dimdb '数据库文件路径
db="../Database/bookshop.mdb" '演示时用ACCESS数据库
connstr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&Server.MapPath(db)
Setconn=Server.CreateObject("ADODB.Connection")
iferrThen
err.clear
endif
conn.Openconnstr
'关闭数据库连接,在每页中调用此函数,将连接放入连接池
subCloseConn()
conn.Close()
Setconn=Nothing
endsub
'替换单引号
functionRealString(strSrc)
RealString=Replace(Trim(strSrc),"'","''")
endfunction
%>
第五章详细设计
5.1前台的管理
前台主要实现图书目录的分类显示和在线购物功能以及注册登陆
5.1.1首页主要代码如下:
程序清单5.11.1客户端首页结构定义default.asp
<%ShowHeadAndMenu()%>
cellPadding=0width="100%"bgColor=#666666
borderColorLight=#aaaaaaborder=1ID="Table6">
<%callShowTheBest()%>
cellPadding=0width="100%"bgColor=#666666
borderColorLight=#aaaaaaborder=1ID="Table18">
style="border-collapse:collapse"bordercolor="#111111"ID="Table19">
<%callShowSearchForm("","")%>
cellPadding=0width="100%"bgColor=#666666
borderColorLight=#aaaaaaborder=1ID="Table2">
<%callShowNewProductPreview("Top","","","")%>
程序清单5.1.1.2ShowMemberLogin过程实现memberbase.asp
<%
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'显示会员登录框
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
functionShowMemberLogin2()
%>
会员登陆
<%callShowUserLogin()%>
<%endfunction
%>
<%
'=================================================
'过程名:ShowUserLogin
'作用:显示会员登录表单
'参数:无
'=================================================
subShowUserLogin()
dimstrLogin
IfSession("memberID")=""Then
%>
会员名:
密码:
新会员注册,<%=conPopHeight%>)">忘记密码?
<%
Else%>
欢迎您!<%=Session("memberID")%>
查看我的资料注销
<%
endif
endsub
'=================================================
'过程名:ShowMemberLogin
'作用:显示会员登录表单
'参数:无
'=================================================
subShowMemberLogin()
dimstrLogin
IfSession("memberID")=""Then
%>
会员名:
密码:
[注册]
,<%=conPopHeight%>)">忘记密码?
<%
Else%>
欢迎您,<%=Session("memberID")%>!
[查看我的资料][注销]
<%
endif
endsub
%>
程序清单5.1.1.3左侧快捷菜单实现代码left.asp
width="100%"borderColorLight=#aaaaaaborder=2ID="Table1">
width="100%"borderColorLight=#aaaaaaborder=1ID="Table2">
<%
'显示购买率最高的前6本书,需要传入参数"Hot"和6
callShowSpecialProduct("Hot",6)
%>
width="100%"borderColorLight=#aaaaaaborder=1ID="Table9">
<%
'显示最优惠的前6种图书,需要传入参数"Cheap"和6
callShowSpecialProduct("Cheap",6)
%>
程序清单5.1.1.4ShowManufacturer过程的实现代码
SubShowManufacturer()
dimstrSQL,strTemp,rsObj,i
Response.Write""
strSQL="SELECT*FROMProductTypeWHERESuperID=0"
i=0
setrsObj=conn.Execute(strSQL)
dowhilenot(rsObj.eoforerr)
Response.Write""
Response.Write""
Response.Write""&rsObj("Name")&""
Response.Write""
i=i+1
ifi>100thenexitdo
rsObj.MoveNext
loop
'关闭集合,但不能关闭连接,因为其他地方可能要用
SetrsObj=Nothing
Response.Write""
endsub
%>
程序清单5.1.1.5热卖图书过程实现代码
SubShowSpecialProduct(strFilter,nCount)
dimstrSpecialText
ifstrFilter="Hot"then
strSpecialText="热卖图书"
elseifstrFilter="Recommended"then
strSpecialText="推荐图书"
elseifstrFilter="Cheap"then
strSpecialText="最优惠图书"
else
strFilter="Hot"
strSpecialText="热卖图书"
endif
%>
<%=strSpecialText%>
<%callShowSpecialProductList(strFilter,nCount)%>
<%
endsub
'=================================================
'过程名:ShowSpecialProductList
'作用:显示热卖图书列表数据(无修饰)
'参数:
'strFilter:选择条件,有以下可选项:
' "Hot":购买次数最高的图书
' "Recommended":推荐度
' "Cheap":最优惠图书
' 其他默认为"Hot"
'nCount:最大显示数量
'=================================================
SubShowSpecialProductList(strFilter,nCount)
dimstrSQL,rsObj,productName,i
'检查nCount的合法性
nCount=CInt(nCount)
ifnCount>20thennCount=20
ifnCount<1thennCount=1
Response.Write""
'根据strFilter参数组织SQL语句,
'要在排序条件的最后加入以id排序,
'否则可能因为多个记录在前面排序字段处的值相同,使得筛选出的记录数超过nCount
ifstrFilter="Hot"then
strSQL="SELECTTOP"&nCount&"ID,[Name]FROMproduct"
strSQL=strSQL&"ORDERBYbuyNumdesc,iddesc"
elseifstrFilter="Recommended"then
strSQL="SELECTTOP"&nCount&"ID,[Name]FROMproduct"
strSQL=strSQL&"ORDERBYrecommenddesc,recommenddatedesc,iddesc"
elseifstrFilter="Cheap"then
'因为用到了除法,所以要加上对分母不为0的判断
strSQL="SELECTTOP"&nCount&"ID,[Name],memberPrice/marketPriceASDiscount"
strSQL=strSQL&"FROMProductWHEREmarketPrice<>0"
strSQL=strSQL&"ORDERBYmemberPrice/marketPrice,iddesc"
else
strSQL="SELECTTOP"&nCount&"ID,[Name]FROMProduct"
strSQL=strSQL&"ORDERBYbuyNumdesc,iddesc"
endif
setrsObj=conn.Execute(strSQL)
ifrsObj.EOFAndrsObj.BOFthen
Response.Write"目前没有此类数据......"
endif
i=1
'输出列表,在这里尤其要注意避免字符串拼接
dowhilenot(rsObj.eoforerr)
Response.Write""
Response.Write""
'如果是显示最优惠图书,则显示此图书的打的程度,否则直接显示图书名字
ifstrFilter="Cheap"then
productName=i&"."&rsObj("name")&"("&FormatNumber(rsObj("Discount")*10,1)&"折)"
else
productName=rsObj("name")
'如果名字太长,将其截断
iflen(productName)>14then
productName=left(productName,9)&"..."
endif
endif
Response.Write""&productName&""
Response.Write""
i=i+1
ifi>100thenexitdo
rsObj.MoveNext
loop
'关闭集合,但不要关闭连接,因为其他地方可能要用
rsObj.Close()
SetrsObj=Nothing
Response.Write""
endsub
'=================================================
'过程名:ShowTheBest
'作用:显示最新推荐图书
'参数:无
'=================================================
SubShowTheBest()
dimstrSQL,rsObj
dimstrTemp,strSrc,strIntro
strSQL="SELECTtop1*FROMproduct"
strSQL=strSQL&"WHERERecommend>0"
strSQL=strSQL&"ORDERbyRecommendDateDESC,buyNumDESC,IDDESC"
setrsObj=conn.execute(strSQL)
'如果没有找到图书,则退出此过程
ifrsObj.EOFandrsObj.BOFthen
Response.Write"出错啦!可能是没有检索到数据或者检索过程出错。"
rsObj.Close()
SetrsObj=Nothing
ExitSub
endif
'如果找到图书,则输出信息
'确定大图片URL
ifrsObj("bigImg")="nothing"then
strSrc="images/noBigImg.gif"
else
strSrc="bigImg/"&rsObj("bigImg")
上一篇:ASP+ACCESS深水蓝文学网站(论文和程序)
下一篇:试析影响公路路面平整度的因素及应采取的施工措施