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提供顾客的名称信息,其代码如下:HTMLBODYBGCOLOR=LightYellowCENTERFORMMETHOD=POSTACTION=Shop.asp请输入您的名字:INPUTTYPE=TEXTNAME=gukeNameSIZE=20INPUTTYPE=SUBMITVALUE=登录INPUTTYPE=RESETVALUE=重新输入/FORM/CENTER/BODY/HTML登录页面的执行。3.修改主页面在主页面Shop.asp中需要对登录页面提交的顾客名称进行保存,还要保存登录的时间。修改代码。说明:HTML标记前面用%....%括起来代码和最后一行代码都是新添加的,判断本网页是否首次进入。如果是首次进入则读取顾客名称和登录时间,存放于Session变量中。4.修改购物处理文件只需在购物处理文件AddToCar.asp中将增加记录的命令语句:objRS.AddNewArray(商品编号,名称,生产商,定价,数量,金额),Array(uid,name,company,Price,Quantity,subTotal)改为:gukename=Session(gukename)time0=Session(time0)objRS.AddNewArray(商品编号,名称,生产商,定价,数量,金额,顾客名,时间),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的代码如下:HTMLBODYBGCOLOR=LightYellowCENTERFORMMETHOD=POSTACTION=Main.asp请输入您的名字:INPUTTYPE=TEXTNAME=NameSIZE=20INPUTTYPE=SUBMITVALUE=登录INPUTTYPE=RESETVALUE=重新输入/FORM/CENTER/BODY/HTML3.框架网页框架网页Main.asp首先接受来自登录网页提交的顾客名称,并且将顾客名称和登录时间保存在Session变量中。网页设置两个框架,上方框架显示操作菜单,来源网页为Menu.asp;下方网页则显示图书目录,来源网页为Catalog.asp。其代码如下:%Session(Name)=Request(Name)Session(time0)=time()'读取登录时间%HTMLFRAMESETROWS=60,*BORDER=0FRAMENAME=TopNORESIZESCROLLING=NoSRC=Menu.aspFRAMENAME=BottomNORESIZESRC=Catalog.asp/FRAMSET/HTML4.菜单网页菜单网页Menu.asp用来显示“网上书店”和“查看购书篮”两个超级链接,分别链接到Catalog.asp和ShoppinCar.asp上。其代码如下:HTMLBODYBGCOLOR=#9CCDCDTABLEALIGN=CenterWIDTH=60%BORDER=0TRHEIGHT=30BGCOLOR=#EDF5F5ALIGN=CenterTDAHREF=Catalog.aspTARGET=Bottom网上书店/A/TDTDAHREF=ShoppingCar.aspTARGET=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删除“订购单”中的相应记录。其中代码。