17.1 课前导读
17.2 课堂教学
17.3 上机练习
17.4 课后作业第 17课 网 上 购 物
17.1 课前导读本课的,网上超市,网页正是为实现用户在网上购物而设计的 。,网上超市,网页通过 ADO技术,以及
SQL语句的灵活运用,来实现对数据库的操作 。 最简单的,网上超市,需要有一个数据库文件 store.mdb和 4
个 asp文件,改进的,网上超市,则需要更多一些文件 。
上机练习则给出一个网上书店的实例,与,网上超市,有所不同的是,网上书店采用,框架,和,分页,技术,使用更为方便 。
17.2 课堂教学
17.2.1 最简单的“网上超市”
17.2.2 改进的“网上超市”
17.2.1 最简单的,网上超市,
1,数据库文件
2,网页文件
3,创建主页面
4,购物处理文件
5,创建购物车页面
6,删除处理文件最简单的,网上超市,需要的数据库文件和 asp文件如下 。
1,数据库文件数据库文件 store.mdb包括两个表:,商品,表和
,购物单,表,分别用来存放,网上超市,的库存商品和顾客所选商品的数据,它们的结构见表 17-1和表
17-2。
表 17-1,商品,表字段名 数据类型 必填 索引 说明商品编号 自动编号 是 无 商品的编号名称 文本 否 无 商品的名称生产商 文本 否 无 商品生产厂家定价 货币 否 无 商品的定价表 17-2,购物单,表字段名 数据类型 必填 索引 说明编号 自动编号 是 无 订单编号商品编号 数字 否 无 商品的编号名称 文本 否 无 商品的名称生产商 文本 否 无 商品生产厂家定价 货币 否 无 商品的定价数量 数字 否 无 购买该商品的数量金额 数字 否 无 购买该商品的金额
2,网页文件
,网上超市,包 括的 4个 asp文 件分 别 是,
Shop.asp,AddToCar.asp,ShoppingCar.asp,
Delete.asp。
① 主页面文件 Shop.asp显示商品列表,具有将购买商品放到,购物车,中的提交功能以及查看,购物车,页面的连接功能 。
② 购物处理文件 AddToCar.asp将购买商品的数据添加到数据表,购物单,中 。
③,购物车,页面文件 ShoppingCar.asp显示顾客所购买的商品,具有删除和返回主页面的连接功能 。
④ 删除处理文件 Delete.asp将不想购买的商品从
,购物车,(,购物单,表 ) 中删除 。
在浏览器中执行 Shop.asp将可以实现网上购物 。
3,创建主页面主页面 文件使用 ADO技术将,商品,表中的数据显示在网页的表格中 。 编写 代码,并将文件以 Shop.asp
为名存盘 。
说明:该程序包含四部分程序模块 。
① 数据库连接模块;建立一个数据库连接对象
objConn和一个记录集对象 objRS,然后通过 SQL语句实现商品信息的查询 。
② 通过 For循环读取数据表的字段名称作为表格的标题 。
③ 通过 Do循环读取数据并显示在表格内 。 进行订购所对应的提交按钮为 FORM所包含的内容 ( f1~ f5),
它将选中的商品提交给 AddToCar.asp页面 。
④ 关闭数据库 。
4,购物处理文件购物处理文件将顾客订购的商品添加到购物车
(,购物单,表 ) 中 。 编写 代码,并将文件以
AddToCar.asp为名存盘 。
说明:该程序包含 4个模块:
① 数据提取模块,首先将商品信息页面提交的信息变量进行赋值 。 提取 uid( 商品编号 ),name( 商品名称 ),company( 生产商 ),Price( 定价 ) 和
Quantity( 数量 ) 等变量值,并计算出 subTotal( 金额 ) 值 。
② 数据库连接模块;建立一个数据库连接对象
objConn和一个记录集对象 objRS。
③ 添加商品到,购物单,表中模块,使用记录集对象 AddNew方法添加记录 。
5,创建购物车页面购物车页面显示顾客所订购的商品信息 。 编写 代码,并将文件以 shoppingcar.asp为名存盘 。
说明:该程序包含 4个程序模块:
① 数据库连接模块;建立一个 objconn数据库连接对象和一个 objRS记录集对象,然后通过 SQL语句实现已经订购的商品信息的查询 。
② 显示订购信息模块,如果没有购买商品,给出提示;如果有商品则通过 For循环读取订购单数据库的记录,并显示在表格中 。
表格中包括一个记录删除链接选项:如果删除该商品,将执行删除处理文件 Delete.asp.
③ 统计总金额模块,显示订购信息的同时,统计总金额 Total,并且作为表格的标题显示 。
6,删除处理文件删除处理文件将顾客从购物车中删除的商品从
,购物单,表中删除 。 编写 代码,并将文件以
Delete.asp为名存盘 。
说明:该程序包含 3个模块:
① 数据提取模块,首先将购物车页面提交的删除信息变量进行赋值 。 提取 No( 编号 ) 作为删除记录的依据 。
② 数据库连接模块;建立一个数据库连接对象
objConn。
③ 删除记录模块,建立 SQL删除语句,使用连接对象的 Execute方法执行 SQL语句,并给出提示信息 。
17.2.2 改进的,网上超市,
1,修改数据表
2,创建登录页面
3,修改主页面
4,修改购物处理文件
5,修改购物车页面
17.2.2 改进的,网上超市,
使用上面的,网上超市,,如果在网上同时有其他顾客购物,则订购的商品将存放在同一个数据表中,
无法辨认 。 为此,改进上述程序,增加登录页面,提供顾客的姓名,以便区别 。
1,修改数据表为,购物单,表增加两个字段:顾客名和时间 。
其中顾客名字段存放登录时提供的顾客名;时间字段存放该顾客本次登录的时间 。 两者结合确定本次网上购物的商品 。
2,创建登录页面登录页面 Login.htm提供顾客的名称信息,其代码如下:
<HTML>
<BODY BGCOLOR="LightYellow">
<CENTER>
<FORM METHOD="POST" ACTION="Shop.asp">
请 输 入 您 的 名 字,<INPUT TYPE="TEXT" NAME="gukeName"
SIZE="20">
<INPUT TYPE="SUBMIT" VALUE="登录 ">
<INPUT TYPE="RESET" VALUE="重新输入 ">
</FORM></CENTER>
</BODY>
</HTML>
登录页面的 执行 。
3,修改主页面在主页面 Shop.asp中需要对登录页面提交的顾客名称进行保存,还要保存登录的时间 。 修改 代码 。
说明,<HTML>标记前面用 <%....%>括起来代码和最后一行代码都是新添加的,判断本网页是否首次进入 。 如果是首次进入则读取顾客名称和登录时间,存放于 Session变量中 。
4,修改购物处理文件只需在购物处理文件 AddToCar.asp中将增加记录的命令语句:
objRS.AddNew Array( "商品编号 ","名称 ","生产商 ","定价 ","数量
","金额 "),Array(uid,name,company,Price,Quantity,subTotal)
改为:
gukename = Session("gukename")
time0 = Session("time0")
objRS.AddNew Array( "商品编号 ","名称 ","生产商 ","定价 ","数量
","金额 ","顾客名 ","时间 "),
Array(uid,name,company,Price,Quantity,subTotal,gukename,time0)
5,修改购物车页面只需在购物车页面文件 shoppingcar.asp中将
SQL,无条件,查询语句:
strSQL = "SELECT * FROM 购物单 "
改为 SQL,条件,查询语句:
time0 = session("time0")
gukename = session("gukename")
strSQL = "SELECT * FROM 购 物 单 where ( 时间 =#" &
TimeValue(time0) & "#)"
strSQL = strSQL & " and (顾客名 ='" & gukename & "')"
说明:符号 #...#表示日期时间型的数据 。
17.3 上机练习
1,数据库
2,登录网页
3,框架网页
4,菜单网页
5,网上书店网页
6,购书处理
7,购书篮网页
8,删除处理
17.3 上机练习
【 练习 17-1】 设计一个网上书店,如图所示 。
与,网上超市,类似,,网上书店,需要有显示图书目录的,门店,网页,显示顾客订购图书的,购书篮,网页,以及相应的数据处理网页 。 在,门店,
网页中使用分页技术,将数据分成数页显示,避免了大量数据无法显示在同一页上,以及向客户端浏览器传输过多的数据 。 另外,使用框架技术使网上购书更加方便 。
1,数据库
,网上书店,使用一个数据库文件 Store.mdb,其中包含两个表:,网上书店,和,订购单,。 其表结构见表 17-3与表 17-4。
表 17-3,网上书店,表字段名 数据类型 必填 索引编号 自动编号 是 无书名 文本 否 无出版社 文本 否 无定价 货币 否 无表 17-4,订购单,表字段名 数据类型 必填 索引订单编号 自动编号 否 无客户 文本 否 无书名 文本 否 无出版社 文本 否 无定价 货币 否 无数量 数字 否 无金额 数字 否 无时间 日期 /时间 否 无
,网上书店,包括 Login.asp,Main.asp,
Menu.asp,Catalog.asp,ShoppinCar.asp,
AddToCar.asp,Remove.asp等 7个 asp文件 。
2,登录网页登录网页 Login.asp的代码如下:
<HTML>
<BODY BGCOLOR="LightYellow">
<CENTER>
<FORM METHOD="POST" ACTION="Main.asp">
请输入您的名字:
<INPUT TYPE="TEXT" NAME="Name" SIZE="20">
<INPUT TYPE="SUBMIT" VALUE="登录 ">
<INPUT TYPE="RESET" VALUE="重新输入 ">
</FORM></CENTER>
</BODY>
</HTML>
3,框架网页框架网页 Main.asp首先接受来自登录网页提交的顾客名称,并且将顾客名称和登录时间保存在
Session变量中 。 网页设置两个框架,上方框架显示操作菜单,来源网页为 Menu.asp;下方网页则显示图书目录,来源网页为 Catalog.asp。 其代码如下:
<%
Session("Name") = Request("Name")
Session("time0") = time() '读取登录时间
%>
<HTML>
<FRAMESET ROWS="60,*" BORDER="0">
<FRAME NAME="Top" NORESIZE SCROLLING="No" SRC="Menu.asp">
<FRAME NAME="Bottom" NORESIZE SRC="Catalog.asp">
</FRAMSET>
</HTML>
4,菜单网页菜单网页 Menu.asp用来显示,网上书店,和,查看购书篮,两个超级链接,分别链接到 Catalog.asp
和 ShoppinCar.asp上 。 其代码如下:
<HTML>
<BODY BGCOLOR="#9CCDCD">
<TABLE ALIGN="Center" WIDTH="60%" BORDER="0">
<TR HEIGHT="30" BGCOLOR="#EDF5F5" ALIGN="Center">
<TD><A HREF="Catalog.asp" TARGET="Bottom"> 网上书店
</A></TD>
<TD><A HREF="ShoppingCar.asp" TARGET="Bottom">查看购书篮 </A></TD>
</TR>
</TABLE>
</BODY>
</HTML>
说明:链接标记 <A>中的 TARGET="Bottom"参数表示连接文件显示框架的名称 。
5,网上书店网页网上书店网页 Catalog.asp是框架网页默认的下方框架网页,用来显示书店的图书目录 。 其功能包括:
打开数据库,读取图书记录,在表格中分页显示记录;
顾客可以在网页中输入定购图书的数量,并提交给
AddToCar.asp进行处理 。 Catalog.asp的 代码 。
6,购书处理当顾客在,网上书店,中输入订购数量并单击
,放入购书篮,按钮后,将调用 购书处理程序
AddToCar.asp,该程序实现将所购图书的信息增加到
,订购单,表中 。 其中 代码 。
7,购书篮网页购书篮网页 ShoppingCar.asp根据顾客名称以及登录时间读取,订购单,表中的相应记录并显示出来,
表格中的,删除,超级链接将调用 Remove.asp。
ShoppingCar.asp的 代码 。
8,删除处理当顾客在,购书篮,中单击,删除,超级链接后,
将调用删除处理程序 Remove.asp删除,订购单,中的相应记录 。 其中 代码 。