论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 ASP Java Web .NET VB6.0 JAVA VC VF DELPHI PB 计算机网络 计算机科学与技术 PHP 安卓APP 其他 C# 代写论文
当前位置: > 计算机 > 计算机科学与技术 >

网上书店(论文+程序)

5.2 数据库的连接

数据库系统往往是一个大型WEB应用程序的核心。同其他WEB应用程序的编写方法相比,强大的数据库访问能力,简单一致的数据库访问方式正是ASP的突出优点之一。在ASP中,我们可以轻松的利用Microsoft提供的强大的ADO技术对各种各样的数据库进行访问,当然可以访问ACCSEE这样的文件型数据库。

内容来自www.paper51.com

ADO提供的对象接口主要为有Connection,我们可以利用Connection,Command,Recordset三个对象访问数据库。Connection对象就是使ADO与数据库之间建立一个通道,起到一个类似拨号连线的作用,任何对数据库的造作必须先建立Connection,然后才能进行。本系统数据库连接代码如下所示: paper51.com

 <%

copyright paper51.com

dim conn

http://www.paper51.com

dim connstr

copyright paper51.com

dim db‘声明变量 http://www.paper51.com

db="../Databases/0791idc.mdb" '数据库文件位置 内容来自论文无忧网 www.paper51.com

on error resume next 内容来自论文无忧网 www.paper51.com

connstr="DBQ="+server.mappath(""&db&"")+";DefaultDir=;DRIVER={MicrosoftAccess Driver (*.mdb)};"‘用server.mappath方法将当前目录下的数据库相对路径转换成服务器的真实路径

http://www.paper51.com

setconn=server.createobject("ADODB.CONNECTION")‘创建名为conn的Connection

内容来自www.paper51.com

if err then 内容来自www.paper51.com

err.clear

copyright paper51.com

else

内容来自论文无忧网 www.paper51.com

conn.open connstr‘使用open方法打开数据库连接 内容来自论文无忧网 www.paper51.com

end if paper51.com

sub CloseConn() 内容来自论文无忧网 www.paper51.com

       conn.close

paper51.com

       setconn=nothing‘在使用conn对象后应该关闭连接,释放资源 http://www.paper51.com

end sub

paper51.com

%> http://www.paper51.com

5.3 用户登陆模块的实现 http://www.paper51.com

用户只有通过index.asp登录界面才能进入主页面进行相应的操作。

内容来自www.paper51.com

进入登录界面:通过注册页面让用户提交注册并保存在user表里,并通过登录页面读取用户提交的登录信息与保存在数据库中的数据进行比较以验证是否成功登录。

http://www.paper51.com

用户登录界面如下图5-1所示: 内容来自www.paper51.com

paper51.com

           http://www.paper51.com

图5-1用户登录界面 copyright paper51.com

用户登录模块主要是通过数据库连接来实现。数据库的连接必须使用ADO的内置Connection对象,并且调用Recordset对象来进行与数据库的查找、删除、更改等功能,在数据库中添加User表,用来保存用户信息。User ID列,用于保存用户名,设置为主键,可以标识每个用户。PWD列用于保存用户的密码,email用于保护用户的email地址,当然还有其他列,可以根据自己需要添加一些保存用户信息的列。

copyright paper51.com

如果用户还未注册,可以点新用户注册注册,进入注册页面,填写注册信息,提交后显示注册成功,进入会员中心,可以修改自己的资料,修改密码,查询订单处理情况等。注册页面如下图5-2所示:

内容来自论文无忧网 www.paper51.com

图5-2新用户注册页面

内容来自论文无忧网 www.paper51.com

5.4 用户查询模块的实现

内容来自论文无忧网 www.paper51.com

书的查询:注册会员可以根据书的名称,或者书的作者查找,也可以根据大小类分类查找。 paper51.com

查询效果图如下图5-3所示: 内容来自www.paper51.com

图5-3 书的查询

copyright paper51.com

按书的名称进行查询,比如在书的名称中输入2008考研英语,所有大类中选择考研公共课,小类中选择英语,具体操作如下图5-4所示:

copyright paper51.com

图5-4 书的分类查询 内容来自www.paper51.com

5.5 订单模块的实现

内容来自www.paper51.com

在数据库中添加一个名为OrderList的表,订单号码用于标识每份订单,设为主键。Name用于存贮下单人ID,address用于保存定货人的地址,time保存下单时间,phone用于保存定货人的电话,status用于保存订单的处理状态,0为未处理,1为已经处理。购物车的实现模块具体代码如下:

内容来自论文无忧网 www.paper51.com

<% 内容来自www.paper51.com

UserName=session("UserName")                '登陆用户id

http://www.paper51.com

Receiver=request.form("Receiver")                    '必填字段‘从登录页面获取收货人地址

copyright paper51.com

Sex=request.form("Sex")                    '从登录页面获取性别

内容来自www.paper51.com

Phone=request.form("Phone")             '必填字段‘从登录页面获取电话 copyright paper51.com

Add=request.form("Add")     '必填字段‘从登录页面获取地址

paper51.com

Notes=request.form("Notes")                     ‘从登录页面获取记录 paper51.com

Email=request.form("Email")               ‘从登录页面获取邮箱

paper51.com

Subject=request.form("Subject")‘从登录页面获取主题

内容来自论文无忧网 www.paper51.com

CompanyName=request.form("CompanyName") ‘从登录页面获取公司名称        

paper51.com

Fax=request.form("Fax")             ‘从登录页面获取传真 http://www.paper51.com

if UserName="" then copyright paper51.com

    UserName="游客" ‘如果登录名称为空,则为游客 内容来自www.paper51.com

end if

内容来自论文无忧网 www.paper51.com

if Add="" then

paper51.com

       Add=null 内容来自论文无忧网 www.paper51.com

end if

copyright paper51.com

if Fax="" then

copyright paper51.com

       Fax=null

copyright paper51.com

end if

paper51.com

'判断购物车是否为空 http://www.paper51.com

ProductList =Session("ProductList") http://www.paper51.com

if productlist="" then

内容来自www.paper51.com

 response.redirect"error.asp?error=007"‘重新定位到error.asp

内容来自www.paper51.com

 response.end paper51.com

else copyright paper51.com

 sql_product="select * from Product where Product_Id in("&productlist&") order by Product_Id"‘从productlist表中按Product_Id排序来查找产品

http://www.paper51.com

 Set rs_order = conn.Execute(sql_product)‘将查询结果赋给rs_order

内容来自www.paper51.com

end if

http://www.paper51.com

BranchID="0022" paper51.com

CoNo="000040" copyright paper51.com

'交易日期,格式:YYYYMMDD 内容来自www.paper51.com

yy=right(year(date),2)

http://www.paper51.com

mm=right("00"&month(date),2) 内容来自www.paper51.com

dd=right("00"&day(date),2)

内容来自www.paper51.com

riqi=yy & mm & dd paper51.com

'生成订单号所有所需元素,格式为:小时,分钟,秒

内容来自论文无忧网 www.paper51.com

xiaoshi=right("00"&hour(time),2) 内容来自论文无忧网 www.paper51.com

fenzhong=right("00"&minute(time),2) paper51.com

miao=right("00"&second(time),2) http://www.paper51.com

'产生外部和内部定单号

内容来自www.paper51.com

BillNo=xiaoshi & fenzhong & miao copyright paper51.com

inBillNo=yy & mm & dd &"-" & xiaoshi & fenzhong & miao paper51.com

Setrsadd=server.createobject("adodb.recordset")‘创建名为rsadd的recordset对象

copyright paper51.com

rsadd.Open "select * fromOrderList" ,conn,1,3‘打开从OrderList查询返回的记录

http://www.paper51.com

Set rsdetail=server.createobject("adodb.recordset")‘创建名为rsdetail的recordset对象 copyright paper51.com

rsdetail.Open "select * fromOrderDetail" ,conn,1,3‘打开从OrderDetail查询返回的记录

http://www.paper51.com

'事务定义开始 内容来自论文无忧网 www.paper51.com

'conn.Begintrans

内容来自www.paper51.com

'操作之一开始写入订单列表信息

内容来自www.paper51.com

rsadd.AddNew ‘使用AddNew方法添加记录 http://www.paper51.com

rsadd("UserName")=UserName

paper51.com

rsadd("OrderNum")=inBillNo

http://www.paper51.com

rsadd("Receiver")=Receiver 内容来自论文无忧网 www.paper51.com

rsadd("Sex")=Sex 内容来自www.paper51.com

rsadd("Phone")=Phone paper51.com

rsadd("Add")=Add http://www.paper51.com

rsadd("RecTime")=now()

paper51.com

if Subject<>"" thenrsadd("Subject")=Subject

paper51.com

if Email<>"" thenrsadd("Email")=Email 内容来自论文无忧网 www.paper51.com

if CompanyName<>"" thenrsadd("CompanyName")=CompanyName

内容来自论文无忧网 www.paper51.com

if Fax<>"" then rsadd("Fax")=Fax paper51.com

if Notes<>"" thenrsadd("Notes")=Notes

内容来自论文无忧网 www.paper51.com

if error>0 then http://www.paper51.com

       response.write" 操作订单列表生成错误!!"

paper51.com

    return 内容来自www.paper51.com

end if

内容来自论文无忧网 www.paper51.com

rsadd("Flag")="No" paper51.com

rsadd.Update‘更新数据库中的当前记录

http://www.paper51.com

While Not rs_order.EOF '把购买的产品资料读出来,写入定单详细资料表中 paper51.com

rsdetail.AddNew ‘使用AddNew方法添加新的记录 内容来自论文无忧网 www.paper51.com

 rsdetail("UserName")=UserName        '下单用户号 paper51.com

 rsdetail("OrderNum")=inBillNo           '订单号码

内容来自论文无忧网 www.paper51.com

 rsdetail("Product_Id")=rs_order("Product_Id")         '产品编码 内容来自论文无忧网 www.paper51.com

 rsdetail("OrderTime")=date() http://www.paper51.com

IF ERROR>0 THEN

http://www.paper51.com

       response.write"操作订单详细信息表生成错误!!" 内容来自论文无忧网 www.paper51.com

       RETURN 内容来自论文无忧网 www.paper51.com

 END if

paper51.com

 rsdetail.Update

内容来自论文无忧网 www.paper51.com

 rs_order.MoveNext‘指向下一个记录 copyright paper51.com

Wend http://www.paper51.com

'事务操作结束 copyright paper51.com

'conn.CommitTrans

内容来自www.paper51.com

rsdetail.close paper51.com

set rsdetail=nothing http://www.paper51.com

rsadd.close

http://www.paper51.com

set rsadd=nothing http://www.paper51.com

rs_order.close

http://www.paper51.com

set rs_order=nothing ‘关闭对象,释放资源

内容来自论文无忧网 www.paper51.com

Session("ProductList")=""

http://www.paper51.com

%> 内容来自www.paper51.com

生成订单号码效果图如下图5-5所示: copyright paper51.com

paper51.com

图5-5生成订单号码

http://www.paper51.com

购买书的过程为:查看新书,查看书的详细信息,选取书,点击放入购物车,填写个人资料,提交后生成上图所示订单号码。购物车如下图5-6所示: copyright paper51.com

内容来自论文无忧网 www.paper51.com

图5-6购物车

copyright paper51.com

查看购物车,可以查看购买的书,总价等,还可以更新数量,如果用户想进行支付就点击开始支付,如果想继续购买书,点击继续购买,关闭当前页面,进入书的展示页面。效果图如下图5-7所示:

paper51.com

copyright paper51.com

 

内容来自www.paper51.com

------分隔线----------------------------
联系方式