网上书店销售系统的设计与实现_第1页
网上书店销售系统的设计与实现_第2页
网上书店销售系统的设计与实现_第3页
网上书店销售系统的设计与实现_第4页
网上书店销售系统的设计与实现_第5页
已阅读5页,还剩108页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

01学号100301065分类号TP393密级x毕业设计说明书院(系)名称专业名称学生姓名指导教师信息工程学院2012年5月12日摘要际需求,针对课题特点在MicrosoftVisualStudio2008环境下使用C#作为开发工具,经过实际测试达到了我对软件功能的需求。告管理、及系统退出六大模块,该系统具有界面友好,使用方便的特点。过程,最后对系统进行了运行和测试。TheDesignandImplementationoftheOnlineBookstoreSalesuthorstractThisarticleexpatiatedBooksalese-commercesystemdesignprocessfromneedsanalysis,design,detaileddesignandsystemtestingfouraspects,subjecttotheactualdemandputforwardareasonablesolution,afterproofthattheprogrammetomeetactualdemand,featurestopicsfortheMicrosoftVisualStudio2008useC#asatooltoachievearealtestsoftwareneeds.ThedesignandimplementationoftheonlinebookstoresalesIdidhasmainlyincludedmanagement、thebulletinmanagementandtheuserslogout.thefunctionofthissystemiscomplete,thecontactsurfaceisfriendly,operateeasily.Thisarticlemainlystartedwiththedemandanalysis,systemoutlinedesign,systemdetailedandrealization.Itmainlyintroducesthedevelopmentofthissystem,finallywecarriedonthemovementandtesttothissystem.eywordsBooksalesecommercesystemC 需求分析 2功能需求 3基本功能需求 3界面的需求 3系统维护需求 4性能的需求 4系统的灵活性 4系统的可扩展性 4系统的安全性 4开发工具及相关技术 5前端软件开发工具的选择 5后台数据库的选择 6软件开发平台的选择 7相关技术介绍 7 构设计 9 详细设计 12细设计与实现 16系统功能设计简介 161添加主功能面板 162添加欢迎控件 173添加分类导航面板 一八登录界面设计与实现 一八库存管理模块设计与实现 191书籍列表页面 192添加书籍界面 203设置特价书籍价格页面 214书籍详细信息查看页面 225书籍信息修改页面 23管理员管理模块设计实现 241管理员详细页面 272添加管理员页面 29订单管理模块设计实现 301订单列表页面 302订单详细信息查看及处理页面 31用户管理模块实现 331用户列表页面 332用户信息查看页面 34公告管理模块设计实现 351公告列表页面 352公告添加页面 37系统退出及出错提示模块设计出现 381系统退出功能实现 382出错提示页面 38 43 架构应运而生并在电子商务系统中得到广泛应用,网上购书的方式也越来越为广大的上网爱好者接受和喜爱。图书销售电子商务系统简单来说就是商业上的进销存管理系统,是为适应现代图书销售、管理而产生的。在各行各业竞争日益激烈的今天,加强工作管理,提高工作效率和工作质量是每一个企业必须面临并且必须解决的重大课题。图书销售业在面对图书进货、销售、存货,图书资料管理问题时,以前手工工作方式的管理已远不能够满足现今日益扩大的图书销售市场,企业只有采取信息化管理方式,才能够保证企业的最大赢利及可持续发展。图书销售系统的建成,将使得企业的管理工作跨上一个新的台阶,为商家的指挥决策提供更有价值、更具时效性的分析数据。系统还将以前单据所需的大量纸张文字信息转换成电子数据,简化了日后的查询步骤,工作人员不再用手工翻阅查找各种登记册和单据本,只需输入查询条件,计算机在很短的时间内就会查到所需记录,并将内容显示在屏幕上,大大加快了查询速度。提高生产数据统计的速度和准确性,减轻汇总统计人员的工作难度。同时图书销售电子商务系统通过数据统计,能够及时统计图书的种类和数量,对于拥有众多的分销点的大公司来说,这种统计不仅可以互相共享图书资源而且可以及时有效的方便顾客,争取更多的客源。实现了基于Windows系统环境的图书销售电子商务系统。统需求分析随着Internet的飞速发展,移动购物和网上购物越来越普及,此次课题的选题的初衷,其实主要是顺应时代潮流,用IT方面的科技成果来打造全新的购物方式改善现有当中购书方式不够经济快捷的缺点。书店如雨后春笋般涌现出来。其中最为有名的莫过于1999年1月1日开通的上海书城书的网上书店,恐怕很难统计完整。自从80年代中期以来,国际互联网(Internet)在美国得到迅猛发展并获得了巨大的成功,吸引了世界上许多国家和地区纷纷加入Internet的行列。Web是访问Internet用Web作为工具访问Internet的人数占了绝大多数,因此,网上购物得到了极大的商业发展,基于网上购物非常广阔的前景。发展Web下的图书销售电子商务系统已成为了现在很多书城的基础建设项目。中国即将成为世界第一网络大国,网民数量已超过一亿,近9000万人已经在网络紧时间把生意做到网络上去,这就是答案。电子商务(E-COMMERCE或E-BUSINESS)是信息时代商务模式的实质性变革,是未来贸易方式的发展方向。其实施牵涉到社会信用体系、法律环境、经济秩序诸方面,是一个与社会大环境息息相关并独具完整结构体系的系统工程。电子商务网站(网站商场)是整个电子商务的一个组成部分,它与传统商务相比具有五方面主要优势:(1)无需场;(4)实现24小时不间断营业,有]。分主要算作B2C商务网站模式,是一种企业面向消费者的服务模式,但是如果在文化传媒现产品的相互流通,从而扩展到B2B商务网站模式。同时随着将来互联网的飞速发展BC元化,同时可以方便顾客购买,实现电子商务网站的综合销售模式。能需求基本功能需求图书销售电子商务系统(后台设计)主要包含以下六大功能模块:库存管理、管理3]。 (1)库存管理:包括浏览现有书籍、浏览特价书籍、添加新书等; (2)管理员管理:包括添加管理员、删除管理员、管理员信息查看等; (3)订单管理:包括订单列表查看、订单详细信息处理(确定、发送、查收、删除及逆操作)等; (4)用户管理:用户(前台注册会员)列表查看、用户详细信息查看,用户删除等; (5)公告管理:公告列表浏览、公告详细信息查看、公告删除和公告添加; (6)系统退出:后台管理员退出系统。界面的需求大部作[4]。3系统维护需求 (1)数据无论对于用户还是系统本身来说都是非常宝贵的资产。数据是存放在计复数据库的运行,并使丢失的数据尽量减少到最小。对于该系统,有许多的账务数据,关系到双方的利益,所以,系统要能够备份数据和还原数据。 (2)为了信息安全,在管理员使用完毕时候要安全退出系统,所以系统要设置退n能的需求1系统的灵活性顺利的使用和推广,其灵活性是一个重要指标。在开发系统前,的动态性,这样既方便用户记忆使用,同时可以删除一些不必要的信息节约存储空间。2系统的可扩展性需求分析细分细化,对数据库的设计尤为慎重,为以后扩展留有余地。3系统的安全性理员实现系统管理的平台,其中用户(前台注册会员)信息和管理员信息都是一个重要同时对不同的用户进入系统,也应该加以区别对待,所以要有进入此系统的权限控制,途径都无法查看和修改系统的原始数据。可以访问整个系统的人员应具有更高的权限,他负责系统的维护及运行。里没有实现,介于将来系统的完善有必要在这里提到。发工具及相关技术前端软件开发工具的选择s2.0带来了简化、高性能且强大的Web开发体验。ASP.NET2.0具有一组新的控件和基础结构,可简化基于Web的数据访问,并且将包含能够促进代码重用、可视化一致性以及增强美感的功能。文件、中间层业务对象和其他来源)所需的查询逻辑。DataSource公开一组公共接口,都具有唯一的API。ASP.NET2.0还提供用于显示和操作数据的新控件。GridView控件是ASP.NETDataGrid的后继控件,它添加了自动处理数据的分页、排序、编辑和删除的功能。提供分页按钮,以便在记录之间进行导航。开发人员可以在主控件-详细信息控件方案显示记录。上述控件和其他控件的附加功能大大简化了生成动态的、数据驱动Web站点和Web应用程序[6]。ASPNETWeb性和代码重用的功眉和页脚位置的模板。与Windows窗体中的可视化继承类似,母版页使Web站点中进行更新。其他的平台工作效率增强功能包括一组可以简化很多常见Web方案(如身份验证、站点导航、管理、个性化等)的框架服务。这些增强功能可减少代码膨胀,增加可维护性,并简化大多数常见Web应用程序开发任务的实现。第三,使用ASP.NET2.0的Web应用程序,能够利用SQL缓存无效化来提高其应用程序性能。通过缓存从SQLServer数据库中检索的数据(更新该数据之前),这种数能。通过当前可用版本的SQLServer,ASP.NET将按照指定第四,通过使用VisualStudio2005IDE,Web应用程序可以在工作效率方面得到WebIDEVisualStudio目模型将消除解决方案文件的系统开销,同时通过对直接IIS枚举、FTP和文件系统访问的支持,使Web开发人员能够享受传统的基于文件系统的项目范型。最后,对ASP.NET代码隐藏模型的增强消除了对由脆弱工具生成的代码的依赖,ET能够轻松地以内联方式编写代码,从而遵守很多Web开发人员所熟悉的模型。其他对Web开发的IDE工作效率增强功能包括:设计时验证引擎、内联CSS支持、更灵活的调试等。通过在控件集、可视化设计器和编码体验中计划的改进,ASP.NET2.0完成常见编后台数据库的选择MicrosoftSQLServer是Microsoft公司开发的一个基于结构化查询语言(SQL)和T字节的外部存储器的对称的多处理器服务器。由于今天Windows操作系统占领着主导地位,选择SQLServer一定会在兼容性方面取得一些优势。另外,SQLServer2000除了具有扩展性,可靠性以外,还具有可以迅速开发新的因特网系统的功能。尤其是它可以直接存贮XML数据,可以将搜索结果以XML格式输出等特点,有利于构建系统的互操作性,奠定了面向互联网的企业应用MicrosoftSQLServer明显的改进就是增加了OLAP(联机分析处理)功能,这可以让很多中小企业用户也可以使用数据仓库的一些特性进行分析。OLAP杂数据集执行快速、高级的分析工作。数据挖据中获取价值。通过对现有数据进行有效分析,这一功能可以对未来的趋势进行预测。记语言(XML)的支持、综合分析服务以及便捷的数据库管理[8]。SQLServer2000是一种企业级的数据库管理系统,主要是被设计来支持大容量的其他方面的企业极的应用。因此选择了SQLServer2000作为自己的后台数据库。2软件开发平台的选择QLServer前电子商务系统对计算机硬件设备的实际情况,选择了现在主流的MicrosoftWindowsXP作为系统开发、测试和运行的平台。相关技术介绍ASP对象是ASP应用开发的强大工具,ASP共包含有7个对象,使用这7个对象Web应用设计所需的功能。在ASP中,对象相当于一个已经被封装好的CGI程序,它向使用者提供的只是属性和方法,Web设计人员无需了解对象的工作要直接调用对象的属性和方法就能完成Web应用程序的基本功能。ASP提供的7个对象为:Request:用于获取客户通过浏览器向服务器发送的信息。Response:用于将输出结果发送到浏览器。Session:用于在一个用户对话(Session)存r用于通过MicrosoftTransactionServer(MTS)来提交或终止一项交易。AsperrorObjectcontextASP0新增的对象。正确理解和掌握这些对象,b管理员管理订单管理公管理员管理订单管理公告管理库存管理图书销售电子商务系统(后台设计)其实是一个对数据库进行操作应用的系统,销以数据库的设计在图书销售电子商务系统(后台设计)的总体设计中起着举足轻重的作结构设计整个系统的运转。具体如图3.1所示。理图3.1图书销售电子商务系统(后台设计)添加管理员修改管理员删除管理员添加添加管理员修改管理员删除管理员添加书籍浏览书籍特价书籍书籍、特价书籍三个功能。管理员管理员编辑、删除管理员等功能。设计在图书销售电子商务系统(后台设计)的总体设计中起着举足轻重的作用。数据库设计是建立数据库及其应用系统的核心和基础,它要求对于指定的应用环境。设为确定设为发送设为查收订单查收添加管理员修改管理员删除公告浏览公告设为确定设为发送设为查收订单查收添加管理员修改管理员删除公告浏览公告订单管理发送、订单查收、删除订单等功能。管理员管理5显示的是用户管理的功能,其中包括用户查看和用户删除两个功能。公告管理添加公告,其中包括浏览公告、浏览添加和删除公告等信息的发布。设计没有权限的用户不能进入相关模块。境,用户的各种应用需求。数据表书籍信息(书籍编号,书籍名称,书籍类型,书籍加入时间,内容简介,订购描述,价格,书籍点击率,书籍描述的图片,是否是特价书籍,折扣价格)。书籍类型(书籍编号,类型名称,类型的父类型号,是否有子类型,添加时间)。管理员信息(管理员编号,管理员用户名,管理员密码,真实姓名,Email地址,加入时间)。细设计1、用户信息表(UserInfo)的设计l用户住址User_IDUserNameUserPswUserRealNameUserTelUserEmailUserAddressUserZipCodearchararchararchararchararchararchararchar4√2、管理员信息表(AdminInfo)的设计字段说明列名数据类型长度主键允许空编号AdminID4√用户名dminNamearchar-密码AdminPswarchar-dminRealNamearchar-Email地址dminEmailarchar-间dminAddDatedatetime8-3、公告信息表(BulletinInfo)的设计型公告编号公告标题公告内容间员公告的浏览量lIDTitlecontentaddDateAdminIDpointarchararchare40844√4、书籍信息表(GoodsInfo)的设计型价格DmeypeIDdDatetroducederDescricearcharearchararchararchar4480√5、书籍类型表(GoodsType)的设计型主键允许空称父类型号子类型peIDmeidveChildarchararchar442√间ddDatee86、订单信息表(OrderInfo)的设计表型收货人地址oimesConfirmnfirmTimenfirmAdminIDndStatuscUserNamedressipUseruserIDtalPriceailearcharearchararchararchararchararchar4828444√√有权限的用户不能进入相关模块。7、订单详细信息表(OrderDetail)的设计息表型tailIDrdernoDodsNumricearchar4444细设计与实现系统功能设计简介1添加主功能面板管理员所要做的工作可以分为以下几部分。登录:这是对管理员身份的确认。以及特价书籍管理。管理员管理:包括添加管理员,查看修改管理员信息,以及删除管理员。设置。用户管理:既查看已有注册用户信息,也要求能够删除用户。公告管理:发布当前商务信息公告,同时要求能够更改删除。 (1)在项目中添加一个文件夹,取名为Admin。在Admin文件夹中添加一个新的模板页,取名为admin.master。 (2)首先在模版页上添加一个表单,然后在这个表单上添加5个HyperLink控件,到其他页面。一个LinkButton控件用来完成退出功能。如下图4.1所示。2添加欢迎控件 (1)通过一个用户控件来显示欢迎信息。在Admin文件夹内添加一个新的用户控件,取名为AdminWelcome.ascx。 (2)打开该页面,在其中添加一个Table控件和一个Lable控件用来显示用户名,还有HyperLink控件用来链接到修改管理员信息的功能页面。界面如下图4.2所示。 (3)添加后台代码。WebServicewebServicenewWebService();protectedvoidPage_Load(objectsender,EventArgse){stringstrSql="SelectAdmin_namefromz_AdminInfowhereAdminID'"+Session["AdminID"].ToString()+"';";DataTabledtTablewebService.ExcuteSelect(strSql);thislblNameText=dtTable.Rows[0]["Admin_name"].ToString();}添加LinkButton的Click函数体,代码如下。protectedvoidLinkButton1_Click(objectsender,EventArgse){ResponseRedirectAdminInfoaspx?aid="+Session["AdminID"].ToString());} (5)将这个控件拖入模板页中相应的位置。3添加分类导航面板是前面提到的已经构建的SortTree.ascx控件,这里直接使用即可。最后的后台模块下整体界面如图4.3所示。登录界面设计与实现增加一个身份确认的模块页面。 (1)在Admin文件夹下添加一个新页面,取名为Admin_Login.aspx。这个页面不需要使用前面构建的模板页。 (2)往页面中添加一个表格,在表格中添加两个TextBox控件,用来得到用户的输来输出信息。最后界面如下图4.4所示。 (3)双击“提交”按钮,添加其Click事件函数体 (4)双击“重填”按钮,添加其Click事件函数,代码如下。protectedvoidbtnCancel_Click(objectsender,EventArgse){this.tbUserName.Text="";this.tbPsw.Text="";库存管理模块设计与实现.1书籍列表页面为了方便管理员管理书籍商品,需要有个页面来显示出书籍的列表。 (1)在Admin中添加一个新的页面,取名为Goods_List.aspx。注意选择其模板页adminMaster。 板,往其中添加3个label控件,既一个Image控件,两个LinkButton控件,注意其中图4.5所示。 (3)界面完成后添加后台代码,最后代码参照附录源代码书籍列表页面代码。 (4)增加对“详细信息”这个LinkButton控件的处理代码,然后添加其Command事件处理函数,代码如下。ResponseRedirectGoodsInfo.aspx?gid="+exmandArgument);通过CommandArgument参数把被点击查看详细信息的商品的ID传递过去。 (5)添加对删除这个LinkButton的处理代码。同样需要确认其CommandArgument参数已经绑定到Goods_ID上,然后在其中Command事件处理函数中添加如下代码。protectedvoidlbtnDel_Command(objectsender,CommandEventArgse){stringstrSql="Deletefromz_GoodsInfowhereGoods_ID='"+xmandArgumentwebServiceExcuteSqlstrSql);ResponseRedirectGoodsList.aspx"); (6)新建一个页面Goods_Special.aspx来显示特价书籍列表,对特价书籍的列表方一样,但这里不需要对其处理SortTree.Ascx控件传来的Type参数,品,所以其SQL语句变为:Selectz_GoodsInfo.*,z_GoodsType.*fromz_GoodsInfoINNERJOINz_GoodsTypeONz_GoodsInfo.Type_typeID=z_GoodsType.Type_typeIDwherezGoodsInfoGoodsisSpecial'y''orderbyGoods_addDatedesc;2添加书籍界面Admin夹下添加一个新页面,取名为Goods_Add.aspx,往其中添加4个TextBox控件,一个DropDownList控件和一个Fileupload控件,然后添加8个TextBoxImageTextBox相关信息,不能修来表示“提交”和“取消”。(2)添加一个SqlDataSource控件来获得DropDownList控件的数据,最后页面如下图4.6所示。添加“提交”按钮的事件处理函数,当管理员单击“提交”按钮后,首先获得用户的各项输入,然后将获得的信息插入到z_GoodsInfo表中。(3)添加“取消”按钮的事件处理函数,功能是返回“书籍列表”页面,代码如下。protectedvoidbtnCancel_Click(objectsender,EventArgse){ResponseRedirectGoodsList.aspx");}.3设置特价书籍价格页面(1)在Admin文件夹中添加一个新页面,取名为Goods_SpecialPrice.aspx,同样是在页面中添加一个表格,然后添加8个TextBox控件和一个Image控件,注意前7个eadonlytrue用来表示提交和取消获得相应的显示信息,最后界面如下图4.7所示。(2)添加“确认”按钮的Click事件方法,即获得管理员输入的新价格,代码如下。ageIsValid{gstrSpecialPricethistbIsSpecialTextGoodsisSpecialyGoodsspecialPrice+strSpecialPrice+"'whereGoodsIDgid+"';";webServiceExcuteSqlstrSql);ResponseRedirectGoodsSpecial.aspx");}(3)添加对“取消”按钮的Click事件方法,代码为。protectedvoidbtnCancel_Click(objectsender,EventArgse){ResponseRedirectGoodsList.aspx");}4书籍详细信息查看页面(1)添加一个新页面,取名为Goods_Info.aspx。首先添加3个LinkButton作为导最后的界面如下图4.8所示。 (2)添加对两个Button控件的Click事件处理函数。对这两个按钮,当单击“编辑“按钮”时,页面会跳转到书籍信息编辑页面,代码如下。protectedvoidbtnEdit_Click(objectsender,EventArgse){ResponseRedirectGoodsEdit.aspx?gid="+gid);}当单击“设为特价书籍”按钮时,则跳转到设置特价书籍价格页面,代码如下。protectedvoidbtnSpecial_Click(objectsender,EventArgse){ResponseRedirectGoodsSpecialPriceaspx?gid="+gid);}.5书籍信息修改页面添加一个新页,取名为Goods_Edit.aspx。先往其中添加3个HyperLink控件,作为页面导航栏,然后往其中添加一个表格,往表格中添加7个TextBox控件、一个个TextBox的ReadOnly属性设为true,表示这3相不能被修改,其余的TextBox设为xButton控件,一个表示提交,一个表示取消,如下图4.9所示。(2)考虑到书籍的种类只能为叶子节点,即只能为没有子节点的类型,所以表示zGoodsTypeTypehaveChild值为n的属性,这里通过添加一个SqlDataSource控件来获得这些叶子的类型。设置其语句为:SELECT[Type_name],[Type_fid],[Type_typeID]FROM[z_GoodsType]WHEREypehaveChildxTypehaveChild下图4.10所示。然后设置“提交”按钮的Click事件方法,最后设置“取消”按钮的Click事件方法,当用户单击“取消”按钮之后,直接返回书籍列表页面。管理员管理模块设计实现个重要功能。(1)在Admin文件夹中添加一个新页,命名为Admin_Manage.aspx,在其中添加两个HyperLink控件,一个用来表示“添加管理员”,一个用来表示“管理员信息”这两个HyperLink控件构成一个管理员管理模块的导航栏,再往其中添加一个Label控件,用来显示错误信息。(2)往其中添加一个SqlDataSource控件,用来获得所有管理员的列表,设置其SQL语句为。SELECTAdminIDAdminnameAdminrealNameFROM[z_AdminInfo](3)添加一个GridView控件,在控件上单击右键,选择显示智能标记然后在urceGridView(4)添加一个新的TemplateField列,在其中添加一个LinkButton控件,显示为详Admin_ID字段,最后界面如下图4.12所示。(5)添加对表示详细信息的LinkButton的Command事件处理函数,代码如下。protectedvoidLinkButton1_Command(objectsender,CommandEventArgse){ResponseRedirectAdminInfoaspx?aid="+exmandArgument);}(6)在Admin_Manage.aspx页面中选中GridView控件,选择其属性切换到“事件”标签,添加其Row_Deleting事件。这个事件是发生在对数据源执行Delete命令之前激发,所以可以在这个事件处理函数中添加对删除行的判断代码,代码如下。protectedvoidGridView1_RowDeleting(objectsender,GridViewDeleteEventArgse){ifeRowIndex==0){thislblMsgText="超级管理员,不允许删除";celtrue}elseifeKeysAdminID.ToString()==Session["AdminID"].ToString()){thislblMsgText="不允许删除自己";celtrue}{ncelfalse}}是终止Deleteing命令的语句celtrue通过设置eCancel属性的真假,就能够很随意地设定是否删除当行。(7)在删除成功后就给出提示,这里需要用到的事件是Row_Deleted事件,这个事件发生在对数据源执行Delete命令之后激发,代码如下。protectedvoidGridView1_RowDeleted(objectsender,GridViewDeletedEventArgse){thislblMsgText="删除成功";}至此管理员列表页面就已经构建完成。1管理员详细页面(1)在Admin文件夹中添加一个新页,取名为admin_info.aspx,同前面一样往其中添加两个HyperLink控件来形成导航栏,然后往其中添加一个SqlDataSource控件,通过这个控件获得查看的管理员的详细信息,设置其SQL语句为:SELECT*FROM[z_AdminInfo]WHERE([Admin_ID]=xAdmin_ID)其中xAdmin_ID为在管理员列表页中传递过来的QueryString中的“aid”。(2)添加一个label控件,用来显示相应的信息,再添加一个DetailsView控件,n图4.一三添加字段设置eetailsViewDetailsView的数据源的UpdateQuery的命令,右键选中SqlDataSource控件,选择其属性,找到其UpdateQuery属性,如右上图3.14所示。(3)设定其属性,在弹出的命令和参数编辑器面板中添加相应的SQL命令,这里生成的Update语句为UPDATEz_AdminInfoSETAdmin_name=xAdmin_name,Admin_psw=xAdminpswAdminrealNamexAdminrealNameAdmin_email=xAdmin_emailWHEREAdminID=xAdmin_ID)这个语句是一个简单的Update语句,重要的是其中的参数,单击刷新参数按钮,所有的SQL语句中的参数都会在下面的参数框中显示出来,这里对于前面的表示新值下图4.一五所示。图4.一五命令和参数编辑器属性设置g单击“确定”按钮,这样SqlDataSource控件的UpdateQuery属性已经设置完毕,DetailsView控件就能够自动编辑了。在管理员列表页面的构建中已经使用了GridView的Row_Deleting和Row_deletedDetailsViewDetailsView的属性,在其“事件”标签下找到ItemUpdating事件,这个事件是在对数据源执行Update命令之前激发,在这里可以执行对输入的有效性检查。最后添加一个修改成功后的提示信息,同前面一样,这里用到ItemUpdated事件,代码如下。protectedvoidDetailsView1_ItemUpdated(objectsender,DetailsViewUpdatedEventArgse){thislblMsgText="修改成功";}这样管理员详细信息查看/修改页面就构建完成了。2添加管理员页面(1)在Admin文件夹中添加一个新页,命名为Add_Admin.aspx,先添加导航栏,Label显示信息,最后添加两个Buttonz_AdminInfo表中。(2)添加“取消”按钮代码,当管理员单击“取消”按钮时,就直接返回管理员列表页面,代码如下。protectedvoidbtnCancel_Click(objectsender,EventArgse){ResponseRedirectAdminManage.aspx");}至此管理员管理模块构建完成。订单管理模块设计实现5.1订单列表页面相似,只是查询的范围不同。(1)在Admin文件中添加一个新页,命名为Order_List.aspx。(2)往其中添加一个DataList控件,并向前面的用户订单列表页面中一样,添加息显示页面。最后界面如下图4.一八所示。图4.一八订单列表页面(3)添加其后台代码,代码参照附录源代码“订单列表”部分代码。(4)添加导向订单详细信息的页面的LinkButton的Command事件函数。protectedvoidLinkButton1_Command(objectsender,CommandEventArgse){ResponseRedirectOrderManageaspx?oid="+exmandArgument);}.2订单详细信息查看及处理页面详细息查看及处理页面,这里要完成两个功能,即确认订单/取消确认;设置订单的发送接收状态,包括未发送、已发送、已查收。 (1)在Admin文件夹中添加一个页面,命名为Order_Manage.aspx,往其中添加一SqlDataSourceSQL语句为SELECTz_OrderDetail.Order_DetailID,z_OrderDetail.Order_NoASExpr1,z_OrderDetail.Goods_ID,z_OrderDetail.Order_goodsNum,z_OrderDetail.Order_price,z_GoodsInfo.Goods_IDASExpr2,z_GoodsInfo.Goods_nameFROMz_GoodsInfoINNERJOINz_OrderDetailONz_GoodsInfo.Goods_ID=z_OrderDetail.Goods_IDWHEREzOrderDetailOrderNo=xOrder_No)“xOrder_No”是通过QueryString传递过来的“oid”。 (2)添加一个GridView控件,设置数据源为前面建立的SqlDataSource控件,但 (3)添加一个Table控件,并往其中添加9个Label控件,用来显示订单的详细信所示。(4)添加后台代码,首先是订单详细信息的显示代码,代码如参照附录源代码“订单详情查看页面”。订单状态控制按钮的事件代码,这里前5个按钮都是用来控制订单的状态的,每单击一个按钮,就需要更改订单的详细信息表z_OrderInfo中的条目,同时还要更改这些按钮的显示情况。(5)添加“删除该订单”按钮的事件处理函数,当管理员单击“删除该订单”按钮时,z_OrderInfo和z_OrderDetail表中删除,代码如下。protectedvoidbtnDel_Click(objectsender,EventArgse){strSqlDeletefromzOrderDetailwhereOrder_no='"+oid+"';";webServiceExcuteSqlstrSql);ResponseRedirectOrderList.aspx");}订单管理模块到此完成。用户管理模块实现.1用户列表页面构建方法如前(1)在Admin文件中添加一个新页,命名为User_Manage.aspx。往其中添加一个LabelSqlDataSource出其SQL语句为SELECTUserIDUsernameUserrealnameFROM[z_UserInfo](2)添加一个GridView控件,用来显示用户列表,同管理员列表页面一样,添加一个新的TemplateField列,往其中添加一个LinkButton控件,用来表示“详细”信息,示。(3)添加导向详细信息的LinkButton控件的Command事件处理方法,代码如下。protectedvoidLinkButton1_Command(objectsender,CommandEventArgse){ResponseRedirectUserInfo.aspx?uid="+exmandArgument);}(4)添加删除完毕后的提示信息,这个利用到GridView控件的Row_Deleted事件,代码如下。protectedvoidGridView1_RowDeleted(objectsender,GridViewDeletedEventArgse){thislblMsgText="删除成功";}.2用户信息查看页面管理员可以查看用户的详细信息,但是不能修改用户信息。设计如下。urceSQLSELECTDISTINCTFROMzUserInfoWHEREUserIDxUser_ID)“xUser_ID”为从QueryString上传来的参数“uid”。时注意设置列,不要显示用户密码这一列。最后界面如下图4.21所示。公告管理模块设计实现1公告列表页面(2)往其中添加一个GridView控件,但是这个GridView控件没有数据源,先在CommandArgument参数都绑定为Bul_ID字段,同时对这个GridView控件启用分页。。 (3)添加后台代码,首先是GridView控件的数据源,代码如下。WebServicewebServicenewWebService();SqlaTabledtTableprotectedvoidPage_Load(objectsender,EventArgse){if(Session["UserLevel"]==null||Session["UserLevel"].ToString()!={ResponseRedirecterroraspx");}strSql="SelectBul_ID,Bul_title,Bul_addDate,Bul_pointfromz_BulletinInforderbyBuladdDateDesctTablewebServiceExcuteSelectstrSqlDataColumncolumnnewDataColumn("no");TableColumnsAddcolumnforintii<dtTable.Rows.Count;i++){dtTableRowsino=(i+1);}thisGridViewDataSource=dtTable.DefaultView;thisGridViewDataBind();}然后是“详细”和“删除”这两个LInkButton控件的Command事件处理函数,代码如下。protectedvoidLinkButton2_Command(objectsender,CommandEventArgse){strSqlDeletefromzBulletinInfowhereBulID+exmandArgument;webServiceExcuteSqlstrSql);ResponseRedirectBulletinList.aspx");}protectedvoidLinkButton1_Command(objectsender,CommandEventArgse){ResponseRedirectBulletinInfo.aspx?bid="+exmandArgument);}2公告添加页面管理员可以通过添加公告页面来添加新的公告显示在主页上面,下面构建此页面。(1)在Admin文件夹中添加一个新页,命名为Bulletin_Add.aspx,首先添加同前面(2)添加“提交”按钮事件处理函数,代码如下。protectedvoidbtnSubmit_Click(objectsender,EventArgse){ageIsValid{webServiceExcuteSqlstrSql);ResponseRedirectBulletinList.aspx");}}(3)添加“取消”按钮事件处理函数,即跳转到公告列表页面,代码如下。protectedvoidbtnCancel_Click(objectsender,EventArgse){ResponseRedirectBulletinList.aspx");}系统退出及出错提示模块设计出现.1系统退出功能实现面板中还有一个“退出”这个LinkButton控件的Click事件处理函数还需要加上,代码如下。protectedvoidLinkButton1_Click(objectsender,EventArgse){UserLevelnulldminIDnullResponseRedirectAdminLogin.aspx");}8.2出错提示页面即将此管理员的所有Session都设为null,然后返回管理员登录页面。最后由于前下面添加一个简单的出错提示页面。并给出一个链接返回,界面如下图4.24所示。着是调试程序,最后完善总结。其中最重要的两步就是中间的两步。InfoAdminID有在删除管理员的时候,以前只考虑到判断“超级管理员不能删除”和“不能删除自己”两种情况,但没有考虑到有些管理员因为处理过订单,所以在数据库中存在外键关联情况,一旦删除这些管理员,程序就会出错,所以后来请教别人加了一个判断函数才解决这个问题。频繁出错[一三]。模块系统登录:输入正确的登录信息后进入系统,说明登录系统正常运行。览现有书籍、浏览特价书籍、添加新书等。此界面是一个重要的页面,通过自己逐一对书籍进行添加、查看、修改、删除,基本功能运行正常。理:包括添加管理员、删除管理员、管理员信息查看等。这一块的测试很简单,进行也很顺利,模块运行正常。订单管理:包括订单列表查看、订单详细信息处理(确定、发送、查收、删除及逆操作)等;主要测试订单的处理,这一块牵扯到的数据比较多而且繁琐,注意订单中的表项涉及到其它表的主键,通过测试运行正常。用户管理:用户(前台注册会员)列表查看、用户详细信息查看,用户删除等。这一块数据库比较简单,测试正常。库比较独立,测试正常。系统退出:即将此管理员的所有Session都设为null,然后返回管理员登录页面,此功能简单,测试顺利,功能正常。满足了系统的需要,优化了系统的性能。济效益。敏锐思维、严谨治学的风范和孜孜不倦的科研精神永远都是我学习的榜样。的关心和大力支持。[1]龙马工作室.ASP+SQLServer组建动态网站实例精讲[M].北京:人民邮电出版社,[3]郭馨君,孟清华.ASP.NET2.0动态网站设计实例[M].北京:机械工业出版社,[4]克罗恩科(美)著.数据库原理(第二版)[M].北京:清华大学出版社,2005.06:60-76.M.M[10]张固,汪晓平.ASP网络应用系统典型模块开发实例解析[M].北京:人民邮电出版[11]ChanSallyRiskyE-business.InternalAuditor,December2001,pp.62-64[12]Post,G.V.andDiltz,.J.D.,AStochasticDominanceApproachtoRiskAnalysisofComputerSystems,MISQuarterly,December,1986pp.363-375.[13]Beginning.ASP.NET2.0E-CommerceinC#2005:FromNovicetoProfessional;WatsonURLxxcristiandarie.ro/Chapters/4681ch02_Darie.pdf.网站起始页(Default.aspx.cs)程序代码。usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Collections;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;publicpartialclass_Default:System.Web.UI.Page{SqlWebServicewebServicenewWebService();aTabledtTablehtablehashCarprotectedvoidPage_Load(objectsender,EventArgse){strSqlSelectfromzGoodsInfoorderbyGoods_addDatedesc";dtTablewebServiceExcuteSelectstrSql/获得物品数据表inti0;foriidtTable.Rows.Count;i++)//获得第一个不是促销的最新书籍::价{ifdtTableRowsiGoodsisSpecial"].ToString()=="n")break;}thislblGoodsNameText=dtTable.Rows[i]["Goods_name"].ToString();thislblPriceText=dtTable.Rows[i]["Goods_price"].ToString();thislblGoodsDescText=dtTable.Rows[i]["Goods_introduce"].ToString();thisImageImageUrl=dtTable.Rows[i]["Goods_img"].ToString();this.lbtnGoodsInfoxmandArgument=dtTableRowsiGoodsID.ToString();thislbtnBuyxmandArgumentdtTable.Rows[i]["Goods_ID"].ToString();intj0;forjjdtTable.Rows.Count;j++)//获得第一个促销的书籍{ifdtTableRowsjGoodsisSpecial"].ToString()=="y")break;}hislblSpecialGoodsNameTextdtTableRowsjGoodsname.ToString();this.lblSpecialGoodsPrice.Text="dtTable.Rows[j]["Goods_price"].ToString()+"元dtTableRowsjGoodsspecialPrice.ToString()+"元";hislblSpecialGoodsDescTextdtTableRowsjGoodsintroduce.ToString();hisimgSpecailGoodsImgImageUrldtTableRowsjGoodsimg.ToString();islbtnSpecialGoodsInfoxmandArgumentdtTableRowsjGoodsID.ToString();原价促销="+thislbtnBuyxmandArgument=dtTable.Rows[j]["Goods_ID"].ToString();strSqlSelectfromzBulletinInfo/获得公告列表tTablewebServiceExcuteSelectstrSqlDataColumncolumnnewDataColumn("Url");//添加一个新的数据段TableColumnsAddcolumnforeachDataRowdrRowindtTableRows数据段赋值{drRow["Url"]=UserBulletinInfoaspxbiddrRowBulIDToString}thisDataListDataSource=dtTable.DefaultView;thisDataListDataBind();}protectedvoidlbtnGoodsInfo_Command(objectsender,CommandEventArgse){ResponseRedirectUserGoodsInfoaspx?gid="+exmandArgument);}protectedvoidlbtnSpecialGoodsInfo_Command(objectsender,mandEventArgse{ResponseRedirectUserGoodsInfoaspx?gid="+exmandArgument);}protectedvoidlbtnBuy_Command(objectsender,CommandEventArgse){ifSessionUserCar==null){hashCarnewHashtable();hashCar.Add(exmandArgument,1);serCarhashCar}{hashCar(Hashtable)Session["UserCar"];fhashCarContainsexmandArgument{intnumIntParse(hashCar[exmandArgument].ToString());hashCarexmandArgument=(num+1).ToString();}hashCar.Add(exmandArgument,1);}ResponseRedirectUserCar.aspx");}protectedvoidlbtnBuy2_Command(objectsender,CommandEventArgse){ifSessionUserCar==null){hashCarnewHashtable();hashCar.Add(exmandArgument,1);serCarhashCar}{hashCar(Hashtable)Session["UserCar"];fhashCarContainsexmandArgument{intnumIntParse(hashCar[exmandArgument].ToString());hashCarexmandArgument=(num+1).ToString();}hashCar.Add(exmandArgument,1);}ResponseRedirectUserCar.aspx");}}书籍列表(User_Goodslist.aspx.cs)界面程序代码。usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Collections;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;publicpartialclassDefault2:System.Web.UI.Page{WebServicewebServicenewWebService();SqlDataTabletable/用来存放分类表DataTabledtTable用来存放某分类的所有商品aTabledtTypeNamegedDataSourceobjPDShtablehashCarprotectedvoidPage_Load(objectsender,EventArgse){tTypeIDifRequestQueryStringtype!=null){intTypeIDIntParseRequest.QueryString["type"]);strSqlSelectFromzGoodsTypetablewebService.ExcuteSelect(strSql);//获得所有分类/得到该分类名称strSql="SelectType_typeID,Type_namefromz_GoodsTypewhereTypetypeIDintTypeID+"';";tTypeNamewebServiceExcuteSelectstrSqlifdtTypeNameRowsCount!=0)thisLabelText=dtTypeName.Rows[0]["Type_name"].ToString();thisLabelText="此分类暂无商品";/得到该分类的所有商品strSql="Selectz_GoodsInfo.*,z_GoodsType.*fromz_GoodsInfoINNERJOINzGoodsTypeONzGoodsInfoType_typeID=z_GoodsType.Type_typeIDwherezGoodsInfo.Type_typeID='"+intTypeID+"'orderbyGoods_addDatedesc;";tTablewebServiceExcuteSelectstrSqlableRowsClearreachDataRowdrRowintableRows{ifintdrRowType_typeID"])==intTypeID){ifdrRowTypehaveChildToString()=="y"){DataTablechildTabletable1.Clone();reachDataRowrowintableRows{if(row["Type_fid"].ToString()==drRowTypetypeIDToString){DataRownewRowchildTableNewRow();newRowItemArray=row.ItemArray;childTableRowsAdd(newRow);}}ildchildTable}{strSqlSelectz_GoodsInfo.*,z_GoodsType.*fromzGoodsInfoINNERJOINzGoodsTypeONz_GoodsInfo.Type_typeID=zGoodsTypeTypetypeIDwherez_GoodsInfo.Type_typeID='"+intTypeID+"';";tTablewebServiceExcuteSelectstrSql}}}}{trSqlSelectfromzGoodsInfotTablewebServiceExcuteSelectstrSqlthisLabelText="全部商品";}eachDataRowdrRowindtTableRows{ifdrRowGoods_isSpecial"].ToString()=="y"){eToString/font>";}}bjPDSnewPagedDataSourcePDSDataSourcedtTableDefaultViewPDSAllowPagingtrueobjPDSPageSize5;rPageifRequestQueryStringPage!=null){curPageIntParseRequestQueryString["Page"]);}curPage=1;objPDS.CurrentPageIndex=cur1;thislblPageNumText=curPage.ToString();thislblTotalPageText=objPDS.PageCount.ToString();bjPDSIsFirstPage{linkPre.NavigateUrl=Request.CurrentExecutionFilePath+"?Page="+ConvertToStringcur1);}objPDSIsLastPage{linkNext.NavigateUrl=Request.CurrentExecutionFilePath+"?Page="+ConvertToStringcurPage+1);}linkFirstPageNavigateUrlRequestCurrentExecutionFilePath"?Page=1";linkEndPage.NavigateUrl=Request.CurrentExecutionFilePath+"?Page="+DSPageCountToString/Response.Write(this.DataList1.Items.Count.ToString());thisDataList.DataSource=objPDS;thisDataListDataBind();}protectedvoidlbtnGoPage_Click(objectsender,EventArgse){intpageIndexIntParse(this.tbPageNum.Text);ifpageIndex=objPDS.PageCount&&pageIndex>0){thislblMsgText="";ifRequestQueryStringtype!=null){+ResponseRedirectUserGoodsListaspx?Page="+pageIndex+"&&type="+Request.QueryString["type"].ToString());}ResponseRedirectUserGoodsListaspx?Page="+pageIndex);}{thislblMsgText="输入页数错误";}}protectedvoidGet_Child(DataTablenewTable){eachDataRowdrRowinnewTableRows{ifdrRowType_haveChild"].ToString()=="y"){DataTablechildTabletable1.Clone();reachDataRowrowintableRows{if(row["Type_fid"].ToString()==drRowTypetypeIDToString){DataRownewRowchildTableNewRow();newRowItemArray=row.ItemArray;childTableRowsAdd(newRow);}}ildchildTable}{strSql="Selectz_GoodsInfo.*,z_GoodsType.*fromz_GoodsInfoINNERJOINzGoodsTypeONzGoodsInfoTypetypeIDz_GoodsType.Type_typeIDwherez_GoodsInfo.Type_typeID='"+drRow["Type_typeID"]+"';";ifdtTableRo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论