5.2 数据库的连接 数据库系统往往是一个大型WEB应用程序的核心。同其他WEB应用程序的编写方法相比,强大的数据库访问能力,简单一致的数据库访问方式正是ASP的突出优点之一。在ASP中,我们可以轻松的利用Microsoft提供的强大的ADO技术对各种各样的数据库进行访问,当然可以访问ACCSEE这样的文件型数据库。 http://www.paper51.com
ADO提供的对象接口主要为有Connection,我们可以利用Connection,Command,Recordset三个对象访问数据库。Connection对象就是使ADO与数据库之间建立一个通道,起到一个类似拨号连线的作用,任何对数据库的造作必须先建立Connection,然后才能进行。本系统数据库连接代码如下所示: 内容来自www.paper51.com
<% http://www.paper51.com dim conn copyright paper51.com dim connstr 内容来自www.paper51.com dim db paper51.com
dim rs'声明几个变量 http://www.paper51.com db="db/db.mdb" '数据库文件位置 paper51.com '以下连接数据库,建立一个connection对象实例conn 内容来自论文无忧网 www.paper51.com Set conn=Server.CreateObject("ADODB.Connection") 内容来自www.paper51.com
Connstr="Provider=Microsoft.jet.OLEDB.4.0;DataSource="& Server.MapPath(""&db&"") paper51.com
Conn.Open connstr '打开数据库连接 内容来自论文无忧网 www.paper51.com
%> 内容来自www.paper51.com 5.3 用户登录模块的实现 内容来自论文无忧网 www.paper51.com 用户只有通过index.asp登录界面才能进入主页面进行相应的操作。 paper51.com 进入登录界面:通过注册页面让用户提交注册并保存在user表里,并通过登录页面读取用户提交的登录信息与保存在数据库中的数据进行比较以验证是否成功登录。 内容来自www.paper51.com 用户登录界面如下图5-1所示: http://www.paper51.com 图5-1用户登录界面 copyright paper51.com 用户登录模块主要是通过数据库连接来实现。数据库的连接必须使用ADO的内置Connection对象,并且调用Recordset对象来进行与数据库的查找、删除、更改等功能,在数据库中添加User表,用来保存用户信息。Userid列,用于保存用户编号,设置为主键,可以标识每个用户。Username列用来保存用户名。Password列用于保存用户的密码,Useremail用于保护用户的email地址,当然还有其他列,可以根据自己需要添加一些保存用户信息的列。 内容来自www.paper51.com
如果用户还未注册,可以点击注册,进入注册页面,填写注册信息,提交后显示注册成功,进入“我的帐户”,可以修改自己的资料,修改密码,查询订单处理情况等。注册页面如下图5-2所示: copyright paper51.com
copyright paper51.com
图5-2新用户注册页面 内容来自论文无忧网 www.paper51.com 5.4 用户查询模块的实现 内容来自论文无忧网 www.paper51.com 商品的搜索:注册会员可以根据商品的名称,或者商品类别进行快速搜索。查询效果图如下图5-3所示: 内容来自论文无忧网 www.paper51.com
paper51.com
图 5-3 商品搜索 copyright paper51.com 搜索结果如图5-4所示: paper51.com 内容来自论文无忧网 www.paper51.com 图 5-4 搜索结果 copyright paper51.com 也可以按商品名称,品牌名称,商品的出厂地址等详细信息查询,比如在商品名称中输入彩电,品牌名称输入长虹,出厂地址输入绵阳,具体操作如下图5-5所示: paper51.com
内容来自www.paper51.com 图5-5 商品的高级搜索 内容来自www.paper51.com 5.5 订单模块的实现 http://www.paper51.com 在数据库中添加一个名为Orders的表,编号actionid用于标识每份订单,设为主键。Username用于存储下单用户名,id存储产品编号,recepit存储收货人姓名,address用于存储收货人的地址,actiondate存储下单时间,usertel用于保存定货人的电话,state用于保存订单的处理状态,1到5表示步骤,6表示在购物篮。订单的实现模块具体代码如下: 内容来自论文无忧网 www.paper51.com
dim shijian,goods paper51.com dim userid,id,rs2,rs3 ‘定义变量 copyright paper51.com
id=request("id") ‘获取产品编号 copyright paper51.com userid=request("userid") ‘获取用户id http://www.paper51.com shijian=now() ‘获取当前时间 copyright paper51.com goods=year(shijian)&month(shijian)&day(shijian)&hour(shijian)&minute(shijian)&second(shijian) ‘订单号的组成元素:当前日期和时间构成 内容来自www.paper51.com set rs2=server.CreateObject("adodb.recordset") ‘建立数据集 paper51.com rs2.open "selectid,name,price1,price2,discount from product where id in("&id&") order by id ",conn,1,1 http://www.paper51.com goods=year(shijian)&month(shijian)&day(shijian)&hour(shijian)&minute(shijian)&second(shijian) http://www.paper51.com
do while not rs2.eof paper51.com setrs=server.CreateObject("adodb.recordset") 内容来自论文无忧网 www.paper51.com rs.open"select * from orders",conn,1,3 内容来自www.paper51.com rs.addnew ‘生成订单记录集 copyright paper51.com rs("username")=trim(request.cookies(cookieName)("username")) ‘获取用户名并赋给username字段 paper51.com rs("id")=rs2("id") ‘获取产品编号 copyright paper51.com rs("actiondate")=shijian ‘获取订单生成时间 paper51.com
rs("productnum")=CInt(Request("shop"&rs2("id"))) http://www.paper51.com rs("state")=1 内容来自论文无忧网 www.paper51.com rs("goods")=goods ‘订单编号 内容来自论文无忧网 www.paper51.com
rs("postcode")=int(request("postcode")) ‘获取邮编并赋给postcode字段 内容来自www.paper51.com
rs("recepit")=trim(request("recepit")) ‘获取收货人姓名并赋给recepit字段 http://www.paper51.com rs("address")=trim(request("address")) ‘获取收货地址赋给address字段 内容来自www.paper51.com rs("paymethord")=int(request("paymethord")) 内容来自www.paper51.com rs("deliverymethord")=int(request("deliverymethord")) ‘送货方式 http://www.paper51.com
rs("sex")=int(request("sex")) ‘收货人性别 内容来自www.paper51.com
rs("comments")=HTMLEncode2(trim(request("comments"))) ‘简单留言转化为HTML格式赋给comments字段 内容来自论文无忧网 www.paper51.com rs("paid")=rs2("price2")*CInt(Request("shop"&rs2("id"))) copyright paper51.com
rs("realname")=trim(request("realname")) paper51.com rs("useremail")=trim(request("useremail")) 内容来自论文无忧网 www.paper51.com rs("usertel")=trim(request("usertel")) paper51.com rs("userid")=userid http://www.paper51.com rs.update ‘更新记录 paper51.com rs.close ‘关闭数据集 内容来自论文无忧网 www.paper51.com conn.execute"delete from orders whereusername='"&request.cookies(cookieName)("username")&"'and id in ("&id&") and state=6" copyright paper51.com
rs2.movenext http://www.paper51.com
loop copyright paper51.com rs2.close http://www.paper51.com setrs=server.CreateObject("adodb.recordset") http://www.paper51.com rs.open "select product.id, product.name,product.price1, product.price2, orders.sex,orders.realname, orders.recepit, orders.goods, orders.postcode, orders.comments, orders.paymethord, orders.deliverymethord, orders.paid, orders.productnum from product inner join orders onproduct.id=orders.id where orders.username='"&request.cookies(cookieName)("username")&"'and state=1 and goods='"&goods&"' ",conn,1,1 paper51.com
%> 内容来自论文无忧网 www.paper51.com 购买商品的过程为:查看商品,查看商品的详细信息,点击放入购物车,填写个人资料,提交后生成订单。购物车如下图5-6所示: 内容来自论文无忧网 www.paper51.com
paper51.com
图5-6购物车 http://www.paper51.com 查看购物车,可以查看购买的商品,价格等,还可以删除商品,如果用户想下订单就点击去下订单,如果想继续购买商品,则点击继续采购,关闭当前页面,进入商品展示页面。效果图如下图5-7所示: paper51.com 内容来自论文无忧网 www.paper51.com 图5-7 查看购物车 http://www.paper51.com 点击去下订单后,系统将跳入下一个页面如图5-8,用户可以查看购买商品的价格和总价等一些东西,还能够修改要购买的商品的数量,修改完成查看无误后点击下一步就进入个人资料填写的页面如下图5-9所示: paper51.com
http://www.paper51.com 图5-8 查看修改购物车 copyright paper51.com http://www.paper51.com 图5-9填写个人资料 http://www.paper51.com 点击“提交订单”按钮后生成订单号码及其详细信息效果图如下图5-10所示: paper51.com 内容来自论文无忧网 www.paper51.com 图5-10生成订单号及其详细信息 paper51.com 5.6 后台管理模块的实现 http://www.paper51.com 管理员登录界面如下图5-11所示: paper51.com
copyright paper51.com
图5-11后台管理菜单 内容来自论文无忧网 www.paper51.com
管理员登录后就可以对后台进行有效管理,包括管理商品的分类,添加新商品,处理订单,管理注册会员,包括修改,删除等,后台管理菜单如下图5-12所示: 内容来自www.paper51.com
http://www.paper51.com 图5-12 后台管理菜单 http://www.paper51.com 管理员对商品的管理包括分类管理,添加大类,也可以删除大类;添加小类的同时要指定该小类属于的大类。效果图如下图5-13所示: http://www.paper51.com copyright paper51.com 图5-13添加大类 http://www.paper51.com |