第六章 编码设计 6.1 引言 编码设计问题是一个科学管理的问题。设计出一个好的编码方案对于系统的开发工作是一件极为有利的事情。它可以使很多机器处理变得十分方便,另外还把一些现阶段计算机很难处理的工作变成很简单的处理。 内容来自www.paper51.com 6.2 设计技巧(引用外部程序实现重复功能) paper51.com
系统中有许多页面都会对数据库表进行操作,在每个页面中都要使用到数据库的打开操作,所以使用<--include file=”conn.asp”-->语句可以完成数据库打开操作,这样可以简化代码的编写。Conn.asp代码如下所示: http://www.paper51.com <% http://www.paper51.com //定义数据库连接对象 http://www.paper51.com dim conn http://www.paper51.com //定义数据库连接字符串 paper51.com dim connstr http://www.paper51.com setconn=server.createobject("ADODB.CONNECTION") paper51.com if err then paper51.com
err.clear http://www.paper51.com
else copyright paper51.com conn.open Application("ConnectString") 内容来自www.paper51.com
iferr then copyright paper51.com err.clear 内容来自论文无忧网 www.paper51.com endif paper51.com end if paper51.com %> 内容来自www.paper51.com 其中Application("ConnectString")在global.asa 中声明,如下: paper51.com
//数据库连接字符串: 内容来自论文无忧网 www.paper51.com Application("ConnectString") = paper51.com "DRIVER={SQL SERVER};SERVER=cy; 内容来自www.paper51.com Initial Catalog=eshop;UID=sa;PWD=123" http://www.paper51.com 6.3代码实现(在线购物模块) paper51.com 当点击“购买”或“察看购物车”时页面效果如下,该页面的主要功能是对购物车进行管理,可以更改商品数量,也可以删除已购买的商品. paper51.com
copyright paper51.com 页面代码分析: copyright paper51.com <%@LANGUAGE="VBSCRIPT" %> 内容来自论文无忧网 www.paper51.com //util.asp完成将选购商品的ID添加进商品列表 内容来自论文无忧网 www.paper51.com <!--#includefile="util.asp" --> 内容来自www.paper51.com
<!--#includefile="conn.asp" --> 内容来自www.paper51.com <% http://www.paper51.com //得到选购商品的商品ID 内容来自www.paper51.com strCpbm= Request("cpbm") copyright paper51.com //从Session中读取商品列表 copyright paper51.com ProductList= Session("ProductList") 内容来自论文无忧网 www.paper51.com //将商品列表串拆分至一商品数组中 内容来自www.paper51.com Products= Split(Request("cpbm"),", ") paper51.com //对数组中的每个商品ID,重新组合成新的商品列表 paper51.com
ForI=0 To UBound(Products) 内容来自www.paper51.com PutToShopBag Products(I),ProductList 内容来自www.paper51.com Next 内容来自论文无忧网 www.paper51.com //更新Session商品列表值 copyright paper51.com Session("ProductList")= ProductList 内容来自论文无忧网 www.paper51.com Head="以下是您所选购的物品清单" paper51.com ProductList= Session("ProductList") paper51.com
//如果商品列表串长度为0 内容来自www.paper51.com
IfLen(ProductList) =0 Then 内容来自www.paper51.com Response.Redirect "nothing.asp" paper51.com response.end http://www.paper51.com endif copyright paper51.com IfRequest("MySelf") = "Yes" Then copyright paper51.com ProductList = "" copyright paper51.com Products = Split(Request("cpbm"), ",") paper51.com For I=0 To UBound(Products) copyright paper51.com PutToShopBagProducts(I), ProductList copyright paper51.com Next paper51.com Session("ProductList") =ProductList 内容来自论文无忧网 www.paper51.com EndIf copyright paper51.com IfLen(ProductList) = 0 Then paper51.com Response.Redirect "nothing.asp" http://www.paper51.com response.end 内容来自www.paper51.com endif copyright paper51.com setrs=server.createobject("adodb.recordset") 内容来自www.paper51.com sql= "Select * From Product" 内容来自论文无忧网 www.paper51.com sql= sql & " Where Product_Id In (" & ProductList &")" paper51.com rs.opensql,conn,3,3 copyright paper51.com %> 内容来自www.paper51.com
functionFrontPage_Form1_Validator(theForm) http://www.paper51.com
{ 内容来自www.paper51.com var checkOK = "0123456789-"; 内容来自论文无忧网 www.paper51.com var checkStr =theForm.<%="Q_" & rs("Product_Id")%>.value; 内容来自www.paper51.com var allValid = true; 内容来自www.paper51.com var decPoints = 0; http://www.paper51.com var allNum = ""; paper51.com for (i = 0; i < checkStr.length; i++) paper51.com { 内容来自www.paper51.com ch = checkStr.charAt(i); copyright paper51.com for (j = 0; j < checkOK.length; j++) copyright paper51.com if (ch ==checkOK.charAt(j)) paper51.com break; 内容来自www.paper51.com if (j == checkOK.length) 内容来自论文无忧网 www.paper51.com { 内容来自论文无忧网 www.paper51.com allValid =false; 内容来自论文无忧网 www.paper51.com
break; copyright paper51.com
} paper51.com allNum += ch; copyright paper51.com
} 内容来自论文无忧网 www.paper51.com if (!allValid) paper51.com { paper51.com alert("请输入正确的商品数量!"); 内容来自论文无忧网 www.paper51.com theForm.<%="Q_"& rs("Product_Id")%>.focus(); copyright paper51.com return (false); paper51.com } 内容来自www.paper51.com return (true); paper51.com
} 内容来自论文无忧网 www.paper51.com <% 内容来自www.paper51.com Sum = 0 paper51.com
While Not rs.EOF http://www.paper51.com //得到购买数量 内容来自www.paper51.com Quatity = CInt( Request("Q_" & rs("Product_Id")) ) paper51.com
//如果数量小于等于0,更正数量 内容来自论文无忧网 www.paper51.com If Quatity <= 0Then copyright paper51.com
Quatity = CInt( Session(rs("Product_Id")) ) 内容来自论文无忧网 www.paper51.com
IfQuatity <= 0 Then Quatity = 1 http://www.paper51.com
End If copyright paper51.com //置Session商品ID的购买数量 paper51.com Session(rs("Product_Id")) = Quatity 内容来自论文无忧网 www.paper51.com //购物车的总价值 paper51.com Sum = Sum +ccur(rs("P_NewPrice")) * Quatity 内容来自www.paper51.com %> paper51.com |