基于.NET的网上图书销售系统的设计与实现 毕业论文_第1页
基于.NET的网上图书销售系统的设计与实现 毕业论文_第2页
基于.NET的网上图书销售系统的设计与实现 毕业论文_第3页
基于.NET的网上图书销售系统的设计与实现 毕业论文_第4页
基于.NET的网上图书销售系统的设计与实现 毕业论文_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、 毕毕业业设设计计(论论文文)中中文文题题目目:网上图书销售系统网上图书销售系统 学学 院:院:北京交通大学远程与继续教育学院北京交通大学远程与继续教育学院 专专 业:业:计算机科学与技术计算机科学与技术 姓姓 名:名:于倩于倩 学学 号:号:0864857308648573 指导教师:指导教师: 张丽张丽 20102010 年年 1010 月月 2525 日日更多经典毕业论文:更多经典毕业论文:http:/ 秋层次专升本专业计算机科学与技术姓名于倩题目网上图书销售系统指导教师评阅意见成绩评定: 指导教师:年 月 日评阅教师意见 评阅教师:年 月 日答辩小组意见答辩小组负责人: 年 月 日北京

2、交通大学毕业设计(论文)任务书本任务书下达给: 设计(论文)题目:web 方向一、设计(论述)内容:本次设计课题是“基于.Net 平台的 WEB 应用程序开发设计” ,即使用微软.NET 技术开发应用程序。基于此大前提下,具体设计任务可在如下课题中选择或自行选择适当课题(需经指导教师批准). Web 新闻系统(多级新闻管理)目标:实现多级新闻管理,后台添加、编辑、删除新闻,前台新闻分类显示;用户管理、用户权限等功能.企业网站管理系统目标:实现企业新闻信息、产品信息的发布和站内搜索系统等功能.在线留言系统目标:实现发表留言、填好详细信息和内容即可留言管理留言; 必须管理员登陆,查看帖,对帖可以进

3、行回复和删除功能。等。.博客管理系统目标:实现基本博客功能.在线图书销售目标:图书在线销售,实现图书查询、添加、删除、客户订单操作等基本电子商务网站功能。.在线音乐网站目标:提供网络音乐在线收听、下载、查询、发布等服务。以上课题可以分组(每组 2 人)开发,亦可独立开发;二、基本要求:.所有课题尽量采用多层开发模型,即需体现界面层、业务逻辑层、数据库层;.对于基于网络的 web 应用程序必须实现所谓的前台呈现后台管理。原则上小组人员分别负责前台与后台的开发;.课题必须编写详细的需求分析文档,贴近客观现实,具有一定的实用价值;.功能上以实现基本目标为主要目的,对于扩展功能在时间允许的情况下尽量实

4、现,即功能开发的主次问题;对于无法实现但有必要的功能应在需求文档中体现出来。.分工合作,密切配合,小组课题必须构成统一整体;.对设计中出现的问题认真记录,并积极寻找解决的方法。三、重点研究的问题:、软件软件需求说明、源代码、可执行程序、简单的操作说明。、设计文档需求说明书、数据模型(ERD) 、功能结构图、数据库设计、主要界面设计。四、主要技术指标: PC 机、网络三剑客、Visual Studio.Net 开发平台、Access、SQL2000 数据库。五、其他要说明的问题毕业设计进度安排:第一周:查阅相关资料,软件需求分析。第二周:根据需求分析做项目详细设计。第三周:代码实现。第四周:代码

5、实现。第五周:项目发布与功能测试、毕业论文编写。第六周:完善毕业论文准备毕业答辩。下达任务日期:2010 年 08 月 10 日 要求完成日期:2010 年 10 月 25 日 答辩日期: 2010 年 11 月 13 日指导教师: 开 题 报 告题 目:基于.NET 的网上图书销售系统的设计与实现报告人:计算机科学与技术 于倩 2010 年 08 月 15 日一、文献综述随着 Internet 的迅速崛起,网络信息化的发展,在线图书销售作为一种典型的 Web 电子商务系统也迅速的发展并深入人们的日常生活中。更多的人更愿意足不出户就可以挑选购买自己喜欢的各种书籍,这样大大缩短了购书的时间,提高

6、了效率。而且,图书因其具有标识精晰、规格统一、特征容易描述、同种商品个体之间无差异等特性而能成为发展电子商务的最为理想的商品类型。可见,网上图书销售系统跨越了时间和空间的限制,给商业流通领域带来了不一样的变革,也给消费者带来了便捷。只要网络发展没有停止,网上图书销售的发展就不会停止。二、选题的目的和意义本课题的目标就是是将图书销售由传统的商店模式向在线销售的转变,同时还对销售的定单和图书的种类等信息进行在线管理,其意义就在于以此来实现人们不出门就能够便捷的买到自己喜欢的各种书籍,向客户展示出一种新颖的购书理念。网上购书的方式必将日趋被大家所接受。三、研究重点内容:本系统采用 B/S(Brows

7、er/Server)结构进行设计,使用 SQL Server 2000构建数据库,并在.NET 环境下使用 Visual C#.net 语言开发的一个功能完善的网上图书销售系统。其具有一定的实用性,用户可以在网上浏览图书信息,查找图书资料,将感兴趣的书籍加入收藏夹,或放入购物车并下订单购买;同时,管理员也可以对整个系统的信息和数据进行管理,可以管理库存书信息、分类信息、出版社信息、用户信息和订单信息。四、进度计划:8 月 15 日-8 月 22 日:查阅相关资料,软件需求分析。8 月 23 日-8 月 31 日:根据需求分析做项目详细设计。9 月 1 日-9 月 30 日:代码实现。 10 月

8、 1-10 月 7 日:项目发布与功能测试、毕业论文编写。 10 月 8 日-10 月 15:完善毕业论文准备毕业答辩。五、指导教师意见:指导教师: 2010 年 08 月 15 日中 期 报 告题 目:基于.NET 的网上图书销售系统的设计与实现报告人:计算机科学与技术 于倩1、总体设计 功能划分 本软件系统功能 可分为两大部分:(1)用户使用功能模块 (2)管理员管理功能模块 功能描述用户使用功能模块:为用户提供服务。客户进行登录或者注册,进入界面 后可进行图书浏览、查看、显示、收藏、订单、购物车等功能使用。 管理员管理功能模块:实现管理员对书籍的管理功能。管理员可对书籍进行库存、出版商、

9、订单、分类信息的管理,还可进行用户查询等功能。 2、框架(框图)系统基本结构功能模块结构用用户户功功能能模模块块图书搜索收藏夹购物车图书订单用户注册登录图书浏览图书显示管管理理员员功功能能模模块块库存书的信息管理分类信息管理用户信息查询处理订单出版商信息管理3、进展情况程序编制已基本完成,现在正在进行修改和调试。四、指导教师意见结 题 验 收1、完成日期 2010 年 9 月 27 日二、完成质量 整个系统采用了 B/S 结构进行设计,使用 SQL Server 2000 数据库,并在.NET 环境下使用 Visual C#.net 语言开发,是一个功能较完善的网上图书销售系统,具有一定的实用

10、性和安全性。3、存在问题 虽然整个系统实现了基本的一些功能,但是,要想成为一个完善的网上书籍销售系统,还有很多需要改进的地方,尤其是订单管理方面。目前网络上购物的付款方式以网上银行为主。但由于时间和所学有限并未添加此项功能接口,今后将进一步完善。四、结论随着互联网的普及,网上购物已经越来越受到大众的接受与喜爱。网上销售书籍将会逐渐进入人们的日常生活中,并为我们带来极大的乐趣与便捷。与此同时,ASP.NET 作为.NET 平台的重要组成部分,在网络系统开发上有着很大的优势。整个系统按照 B/S 结构设计,加之 SQL Server 数据库的使用,对于提高我们所学并将其应用于实际有着极其重要的帮助

11、。今后我会继续努力学习,进一步完善解决系统中存在的问题!指导教师:张丽 2010 年 10 月 25 日基于基于.NET.NET 的网上图书销售系统的设计与实现的网上图书销售系统的设计与实现摘摘 要要随着 Internet 的迅速崛起,网络信息化的发展,在线图书销售作为一种典型的 Web 电子商务系统也迅速的发展并深入人们的日常生活中。更多的人更愿意足不出户就可以挑选购买自己喜欢的各种书籍,这样大大缩短了购书的时间,提高了效率。可见,网上图书销售系统跨越了时间和空间的限制,给商业流通领域带来了不一样的变革,也给消费者带来了便捷。本系统采用 B/S 结构进行设计,是在.NET 环境下使用 Vis

12、ual C#.net 语言开发的一个功能完善的网上图书销售系统。其具有一定的实用性,用户可以在网上浏览图书信息,查找图书资料,将感兴趣的书籍加入收藏夹,或放入购物车并下订单购买;同时,管理员也可以对整个系统的信息和数据进行管理,可以管理库存书信息、分类信息、出版社信息、用户信息和订单信息。此外,本论文采用的分析方法和设计过程具有一定的普遍性,可以应用到其它系统的开发设计当中。关键词关键词:网上购书系统;.NET;电子商务;数据库TheThe DesignDesign andand RealizationRealization ofof WebWeb BookshopBookshop Manag

13、ementManagement SystemSystem BasedBased onon .NET.NETAbstractAbstractWith the rapid rise of Internet, the development of network information technology, web bookshop system as a typical electronic commerce system also develops rapidly and deeps into peoples life. More and more people could be willin

14、g to select and buy their favorite books at home, so that is greatly reducing the time of shopping, and improving the efficiency. Obviously, the web bookshop management system has crossed the constraint of the time and the space, it not only brings a different change to the commercial domain, but al

15、so brings convenient to the consumers. The system used B/S structure and developed a well-functioning online book sales system with the use of Visual C#.net language based on .NET. Also, the system has some practicality, customers can browse the details of books on Internet, search information of bo

16、oks, and add the books which they like to the favorites, or put them to the shopping cart and place an order to buy them. At the same time, Administrators can manage the entire systems information and data, as the information of inventory, category, publishers, customers and orders. In addition, the

17、 analysis method and design process in the thesis have some universality, and can be applied to design other application system.KeyKey words:words: Web bookshop system; .NET; Electronic commerce; Database目目 录录1引言.11.1课题背景.11.2本课题研究内容.11.3本课题研究的意义.12网上图书销售系统相关技术.12.1.NET 开发平台及 C.NET 开发语言 .12.2微软企业库.2

18、2.3三层应用程序模型.22.4信息安全性.33网上图书销售系统规划设计.33.1需求分析.33.2系统基本结构.43.3系统设计.43.3.1系统模块设计.43.3.2数据库设计.54网上图书销售系统开发实现.94.1用户功能模块实现.94.1.1用户注册登录.94.1.2图书浏览.134.1.3图书显示.144.1.4图书搜索.154.1.5收藏夹.154.1.6购物车.154.1.7图书订单.194.2管理员功能模块实现.204.2.1图书管理.204.2.2分类信息管理.234.2.3出版商信息管理.244.2.4用户信息管理.254.2.5订单管理.25结 论.26参考文献.261

19、1 引言引言1.11.1 课题背景课题背景随着 Internet 的迅速崛起,网络信息化的发展,在线图书销售作为一种典型的 Web 电子商务系统也迅速的发展并深入人们的日常生活中。更多的人更愿意足不出户就可以挑选购买自己喜欢的各种书籍,这样大大缩短了购书的时间,提高了效率。而且,图书因其具有标识精晰、规格统一、特征容易描述、同种商品个体之间无差异等特性而能成为发展电子商务的最为理想的商品类型。可见,网上图书销售系统跨越了时间和空间的限制,给商业流通领域带来了不一样的变革,也给消费者带来了便捷。只要网络发展没有停止,网上图书销售的发展就不会停止。1.21.2 本课题研究本课题研究内容内容本系统采

20、用 B/S(Browser/Server)结构进行设计,使用 SQL Server 2000构建数据库,并在.NET 环境下使用 Visual C#.net 语言开发的一个功能完善的网上图书销售系统。其具有一定的实用性,用户可以在网上浏览图书信息,查找图书资料,将感兴趣的书籍加入收藏夹,或放入购物车并下订单购买;同时,管理员也可以对整个系统的信息和数据进行管理,可以管理库存书信息、分类信息、出版社信息、用户信息和订单信息。1.31.3 本课题研究的意义本课题研究的意义本课题的目标就是是将图书销售由传统的商店模式向在线销售的转变,同时还对销售的定单和图书的种类等信息进行在线管理,其意义就在于以此

21、来实现人们不出门就能够便捷的买到自己喜欢的各种书籍,向客户展示出一种新颖的购书理念。网上购书的方式必将日趋被大家所接受。2 2网上图书销售系统相关技术网上图书销售系统相关技术2.12.1 .NET.NET 开发平台及开发平台及 C C.NET.NET 开发语言开发语言.NET 框架是 Microsoft 公司推出的一种全新的开发平台,提供了统一的、面向对象并且可以扩展的编程类库和完善的集成开发环境,大大简化了应用程序的开发过程,并且具有良好的移植性和安全性。ASP.NET 是建立在公共语言运行库上的 Web 编程框架,相对于 ASP 而言,ASP.NET 提供了更强的性能、更方便的工具支持、更

22、好的平台支持和灵活性。其一大革命性进步是可以将应用程序逻辑与表示代码清楚地分开,这样一来 Web 应用程序的开发人员可以使用和Windows 桌面程序开发类似的编程模型,从而大大降低了开发难度。同时,ASP.NET 在进行用户界面开发和基础程序结构生成时具有很多优势。第 2 页 共 28 页首先,ASP.NET 是一个已编译的、基于.NET 的开发环境,利用整个.NET 框架,开发人员可以方便的进行程序开发;其次,ASP.NET 可以无缝地与其它 HTML 编辑器及其编程工具一起工作,使得 Web 开发更加方便;再次,在 ASP.NET 中利用.NET 框架中的 ADO.NET 的强大功能,可

23、以高效便捷的访问数据库,ASP.NET提供了简单的模型,该模型使开发人员能够编写应用程序的运行逻辑,并且保留了会话状态功能;最后,.NET 框架和 ASP.NET 中提供了默认授权和验证方案,可以根据需要方便地移除、添加或者替换这些方案。Visual C#.NET 语言是.NET 平台首推的开发语言,是一种全新的、面向对象的编程语言。C语言从 C+语言发展而来,它同时吸取了 C/C+和 Java 语言的优点,可以快速地编写各种基于 Microsoft .NET 平台的应用程序。C#语言使开发者用更少的代码做更多的事,同时也不易出错,提高了编程效率和安全性。2.22.2 微软企业库微软企业库众所

24、周知,重复编写数据访问的代码是十分繁琐的,实际上很多系统中都会有类似的模块,比如配置的保存和读取、写日志、异常的处理等,大多数情况下开发人员需要在每个系统中编写具有类似功能的子模块,因此虽然它们之间只存在细微的区别,但是代码必须做修改才能够满足要求。微软公司提供的企业库正是为了解决这些问题而推出的,开发人员无需修改代码,只要修改几个配置文件,就可以在不同的系统中实现类似的功能。可见,企业库大大减少了系统连接数据库的代码,带来了方便。企业库(EnterpriseLibraryJune2005)是微软推出的开源项目,它为企业级开发提供了功能强大的多个应用程序块。该企业库的设计思想是为了协助开发商解

25、决企业级应用开发过程中所面临的一系列共性的问题, 如安全、日志、数据访问、配置管理等,并将这些广泛使用的应用程序块集成封装至企业库的程序包中。企业库由七个子模块组成,分别是配置管理应用程序块(Configuration Application Block) 、数据访问应用程序块(Data Access Application Block) 、安全应用程序块(Security Application Block) 、日志及仪表盘管理应用程序块(Logging and Instrumentation Application Block) 、加密应用程序块(Cryptography Applicat

26、ion Block) 、异常处理应用程序块(Exception Handling Application Block) 、缓存应用程序块(Caching Application Block) ,这七个应用程序块几乎覆盖了企业级架构开发的核心环节。可见,企业库具有可选择、可扩展、实用、强大、易用性和规范性等特性。第 3 页 共 28 页2.32.3 三层应用程序模型三层应用程序模型本课题在系统设计上采用了三层应用程序模型。所谓的“三层应用程序模型”是将系统按照功能的逻辑层次进行划分的,分别是表示层、业务逻辑层和数据访问层,以此实现模块化的设计。数据访问层顾名思义是用来处理系统对数据库的操作,系统

27、中所有数据库的调用都通过数据访问层实现。业务逻辑层处于表示层和数据访问层之间,它一方面调用数据访问层的类和方法实现系统中的业务规则,一方面封装相应的调用方法供表示层调用。表示层主要包括了系统的页面呈现和相关控件的代码。这种多层的应用程序体系结构具有以下一些优点,首先,程序代码在各个层次之间实现松耦合和模块化;其次,每个层次的代码可重用,维护性更好;最后,可以将各个层次在物理上部署到多个层次中,实现部署的可扩展性。2.42.4 信息安全性信息安全性在大多数系统中,用户的密码信息在数据库中是以明文的方式存放的,数据库管理员稍有疏忽就有可能导致用户的隐私泄漏,尤其是对于一些涉及金融、商业领域的网络应

28、用,这一点漏洞将会导致十分严重的后果。所以,为了加强本系统信息的安全性,在用户登录模块中,对密码这样的敏感信息进行加密是十分必要的。本课题使用了一种常见的哈希加密算法MD5 加密算法。MD5 加密算法是不可逆的,经过哈希加密的数据是没有相应的解密算法回到原状的,在应用中是通过比较两个数据的哈希值是否相等,从而达到校验的目的。本课题中,在新客户注册的时候,对客户设置的登录密码用 MD5 加密算法进行加密,那么存入数据库的将是客户登录密码的 MD5 哈希值,在登录验证时根据用户输入的密码计算响应的 MD5 哈希值进行比较。可见,通过 MD5 算法实现了数据的加密存储和验证,同时,MD5 加密是不可

29、逆的,即使恶意攻击者获得了数据库的访问权限,也仍然无法得知用户的密码信息,从而提高了系统的安全性。3 3网上图书销售系统规划设计网上图书销售系统规划设计3.13.1 需求分析需求分析网上图书销售系统首先应该方便用户浏览、购买图书,同时需要由系统管理员进行管理和维护,由此分为前台用户功能和后台管理员功能两个方面。前台用户功能:为了方便用户购买图书,网上图书销售系统应该提供以下几种用户功能。1) 用户注册登录:用户进行注册,登录。2) 图书浏览:以列表方式显示图书信息供用户浏览。第 4 页 共 28 页3) 图书显示:显示图书的详细信息。4) 图书搜索:使用搜索功能使用户快速地找到所喜欢的图书。5

30、) 收藏夹:用户可以先将自己感兴趣的图书收藏起来,以便下次登录后查看相关信息,如果打算购买时再放入购物车中。6) 购物车:这是网上图书销售系统的基本元素。用户找到所喜欢的图书时,可以将其放入购物车中,再继续查看其它图书。7) 图书订单:用户下订单购买图书,由管理员定期负责处理,根据订单信息向用户送货。后台管理员功能:管理员负责维护整个系统的运行,管理系统所有的信息和数据,应该提供以下功能。1) 图书管理:维护网上图书销售系统中的所有图书信息。2) 分类信息管理:维护系统中的所有分类信息。3) 出版商信息管理:维护系统中的所有出版商信息。4) 用户信息管理:显示所有注册用户的信息。5) 订单管理

31、:定期对用户订单进行处理,向用户送货。3.23.2 系统基本结构系统基本结构由于 B/S(Browser/Server)结构具有较好的独立性、可伸缩性和安全性,适合于不同数据库之间的互连,并且便于管理维护,因此整个系统采用客户端、Web 服务器及数据库服务器的 B/S 结构进行设计。基本结构如图 2-1 所示。图 3-1 系统基本结构利用 IIS 架构 Web 服务器,用于连接客户端和数据库服务器。对于客户端发出的需要对数据库进行访问的请求,Web 服务器负责客户端与数据库服务器的网络通信,并将相关数据嵌入返回给客户端的 Web 页面;对于客户端发出的不需要对数据库进行访问的请求,Web 服务

32、器将直接处理这些请求,并将最终生成的 Web 页面发往客户端浏览器。3.33.3 系统设计系统设计.1 系统模块设计系统模块设计分为用户功能模块设计和管理员功能模块设计两方面,用户登录后,可以进行图书浏览、下订单等操作;管理员登录后,可以进行图书管理、分类信息管理、出版商信息管理、用户信息管理和订单管理等操作。1. 用户功能模块设计:第 5 页 共 28 页普通用户的各个功能模块,具体设计如图 3-2 所示:用用户户功功能能模模块块图书搜索收藏夹购物车图书订单用户注册登录图书浏览图书显示图 3-2 用户功能模块2. 管理员功能模块设计:管理员负责管理整个系统所有的信息和数据,并

33、做相应的一些处理。其功能模块如图 3-3 所示。管管理理员员功功能能模模块块库存书的信息管理分类信息管理用户信息查询处理订单出版商信息管理图 3-3 管理员功能模块.2 数据库设计数据库设计数据库主要由 9 个数据表组成。Books(图书信息表),Items(图书项信息表),Categories(图书分类信息表)存储图书的分类信息,ItemCategory(图书项与分类关联信息表) ,Publishers(出版商信息表)存储出版商信息,Customers(客户信息表)存储用户注册信息,Favorites(收藏夹信息表)存储用户的收藏夹信息,Orders(订单信息表)存储订单的各

34、项信息,OrderItems(订单项信息表)存储订单具体的购买信息。从而,可详细设第 6 页 共 28 页计出各数据库对象,包括数据表和存储过程。数据表:图书相关信息表分别如表 3-1、表 3-2、表 3-3、表 3-4、表 3-5 所示。表 3-1 图书信息表 BooksBooks(ItemId 为主键,PublisherId 为外键)列(属性)名中文名称类型宽度是否允许为空ItemId图书项 ID 号int4NOT NULLPublisherId出版商 ID 号int4NOT NULLAuthor作者名nvarchar40NOT NULLISBNISBN 号char10NOT NULLSa

35、leNum已销售数量int4NOT NULL表 3-2 图书项信息表 ItemsItems(PKId 为主键)列(属性)名中文名称类型宽度是否允许为空PKId图书项唯一 ID int4NOT NULLName书名nvarchar255NOT NULLImageFileSpace图书封面图文件地址nvarchar255NULLDescription说明nvarchar2000NULLUnitPrice单价Momey8NOT NULL表 3-3 图书分类信息表 CategoriesCategories(PKId 为主键)列(属性)名中文名称类型宽度是否允许为空PKId分类唯一 IDint4NOT

36、NULLDescription分类说明nvarchar255NULL表 3-4 图书项与分类关联信息表 ItemCategoryItemCategory(ItemId 为主键,CategoryId 为外键)列(属性)名中文名称类型宽度是否允许为空ItemId图书项 ID 号int4NOT NULLCategoryId分类 ID 号int4NOT NULL表 3-5 出版商信息表 PublishersPublishers(PKId 为主键)列(属性)名中文名称类型宽度是否允许为空PKId出版商唯一 IDint4NOT NULLName出版商名称nvarchar40NOT NULL用户相关信息表分

37、别如表 3-6、表 3-7 所示。表 3-6 客户信息表 CustomersCustomers(PKId 为主键)列(属性)名中文名称类型宽度是否允许为空PKId客户唯一 IDint4NOT NULLEmail客户 Emailnvarchar50NOT NULLPassword客户登录密码binary24NULL第 7 页 共 28 页Name客户名称nvarchar40NULL表 3-7 收藏夹信息表 FavoritesFavorites(PKId 为主键,CustomerId、ItemId 为外键)列(属性)名中文名称类型宽度是否允许为空PKId收藏夹 ID 号int4NOT NULLCu

38、stomerId客户 ID 号int4NOT NULLItemId图书项 ID 号Int4NOT NULL订单相关信息表分别如表 3-8、表 3-9 所示。表 3-8 订单信息表 OrdersOrders(PKId 为主键,CustomerId 为外键)列(属性)名中文名称类型宽度是否允许为空PKId订单唯一 IDint4NOT NULLCustomerId客户 ID 号int4NULLStatus订单状态int4NULLOrderData订单生成日期datetime8NULLShipToName收件人名称nvarchar40NULLShipToAddress送货地址nvarchar255NO

39、T NULLSubTotal总价Momey8NULL表 3-9 订单项信息表 OrderItemsOrderItems(OrderId 和 ItemId 为主键)列(属性)名中文名称类型宽度是否允许为空OrderId订单 ID 号int4NOT NULLItemId图书项 ID 号int4NOT NULLUnitPrice单价money8NOT NULLQuantity购买数量Int4NOT NULL存储过程:因为存储过程可以在程序中被多次调用,而不必多次重复编写该存储过程的 SQL 语句,所以数据库中建立了大量的存储过程,便于将相关信息加入到数据库中。与客户相关的存储过程有:新客户注册(Cu

40、stomerRegister) ,客户登录(CustomerLogin) ,修改客户信息(EditCustomer) ,获取所有客户的信息(GetCustomers) ,获取单个用户的信息(GetCustomerById) 。与图书相关的存储过程有:新增图书(AddBook) ,删除图书(DelBook) ,修改图书信息(EditBook) ,获取所有图书信息(GetAllBooks) ,根据图书项ID 获取单本图书信息(GetBookById) ,根据分类 ID 获取图书信息(GetBooksByCategoryId) ,根据分类 ID 获取热门书图书信息(GetPopBooksByCate

41、goryId) ,根据书名获取图书信息(GetBooksByTitle) ,第 8 页 共 28 页根据关键词获取图书信息(GetBooksByKeyword) ,根据 ISBN 获取图书信息(GetBooksByISBN) ,根据出版商获取图书信息(GetBooksByPublisherId)根据作者获取图书信息(GetBooksByAuthor) 。与出版商相关的存储过程有:新增出版商(AddPublisher) ,删除出版商(DelPublisher) ,修改出版商信息(EditPublisher) ,获取所有出版商信息(GetPublishers) 。与图书分类相关的存储过程有:新增图

42、书分类(AddCategory) ,删除图书分类(DelCategory) ,修改图书分类说明(EditCategory) ,获取图书分类信息(GetCategories)。与收藏夹相关的存储过程有:新增收藏记录(AddFavorite) ,删除收藏信息(DelFavorite) ,根据客户 ID 获取收藏记录(GetFavoritesByCustomerId) 。与订单相关的存储过程有:获取订单信息(GetOrders) ,获取单条订单信息(GetOrderById) ,根据客户 ID 获取订单信息(GetOrdersByCustomerId) ,根据状态获取订单信息(GetOrdersBy

43、Status) ,根据日期获取订单信息(GetOrdersByDate) ,提交订单(SubmitOrder) ,修改订单(EditOrder) ,取消订单(CancelOrder) ,接受订单(AcceptOrder) ,确定订单(ConfirmOrder) ,撤销订单(RevokeOrder) ,PopFirstWord ,插入订单明细记录(InsertOrderDetailsByList) ,插入单条订单项(InsertOrderDetail) 。由于该系统建立的存储过程很多,所以在此就只列举出一个存储过程的SQL 脚本。新增图书存储过程 AddBook 的 SQL 脚本如下:CREAT

44、E PROCEDURE AddBook Name NVARCHAR(255), ImageFileSpace NVARCHAR(255), Description NVARCHAR(2000), UnitPrice MONEY, PublisherId INT, Author NVARCHAR(40), ISBN NCHAR(13), CategoryId INT, ItemId INT = NULL OUTPUT -output 可以返回一个值AS begin tran -事务第 9 页 共 28 页 -新增 Items 表记录 insert Items (Name, ImageFileSp

45、ace, Description, UnitPrice) select Name,ImageFileSpace,Description,UnitPrice select ItemId = IDENTITY -获取数据表中最后一条插入数据的 IDENTITY 值-新增 Books 表记录 insert Books (ItemId, PublisherId, Author,ISBN) select ItemId,PublisherId,Author,ISBN-新增 ItemCategory 表记录 insert ItemCategory (ItemId,CategoryId) select Ite

46、mId,CategoryId commit tran return 0GO4 4网上图书销售系统开发实现网上图书销售系统开发实现4.14.1 用户功能模块实现用户功能模块实现用户功能模块主要包括注册登录、图书浏览、图书显示、图书搜索、购物车、收藏夹、图书订单这几个部分。在程序设计中,各模块后台编码部分的设计实现是重点和难点,因此论文将着重说明模块的后台编码部分,对于页面设计部分只作了简单说明。.1 用户注册登录用户注册登录用户首先填写相关信息进行注册,之后就可以登录到本系统中购买图书。注册模块的主要功能是把用户的注册信息写到数据库中。同时,为了减少用户输入错误,注册模块需要对相

47、关信息作必要的验证。利用 ASP.NET 提供的验证控件可以方便的验证用户输入,这里将几个验证控件结合起来实现比较完整的验证功能。在注册页面设计中,使用 RequiredFieldValidator 控件检查用户是否在输入框中填写了必要的文字,确保用户不跳过输入,使用RegularExpressionValidator 控件检查输入是否符合正则表达式,使用CompareValidator 控件对比两次密码输入是否相同。部分代码如下:Email:密码:重复输入密码:用户注册页面设计如图 4-1 所示。图 4-1 用户注册页面用户输入相应信息后,单击“注册”按钮,可将用户信息插入到数据库中的 Cu

48、stomers 数据表中。该功能由单击事件处理函数 btnRegister_Click()来实现,部分程序代码如下:private void btnRegister_Click(object sender, System.EventArgs e)if ( CustomerSystem.Register(tbEmail.Text, tbUserName.Text, tbPassword.Text) )lblMessage.Visible = true;lblMessage.Text = SUCCESS_MESSAGE;ltLink.Visible = true;ltLink.Text = LIN

49、K_STRING;elselblMessage.Visible = true;lblMessage.Text = ERR_MESSAGE;第 11 页 共 28 页程序中调用了业务逻辑层的 CustomerSystem.Register( ),来实现将注册信息添加到数据库中去,其中针对用户设置的密码是先通过 MD5 加密算法加密后再添加到数据库中去的。CustomerSystem.Register( )类的代码如下:public static bool Register(string strEmail, string strName, string strPassword)int iRet =

50、 -1;tryMD5 md5 = MD5.Create();/MD5加密算法byte btPassword = md5.ComputeHash(Encoding.Unicode.GetBytes(strPassword);Customer c = new Customer(strEmail, btPassword, strName);iRet = _customers.CustomerRegister(c);catch(Exception ex)bool rethrow = ExceptionPolicy.HandleException(ex, Logging Policy);if (reth

51、row)throw;return iRet = 0;程序中又定义了 Common 命名空间中的公共类 Customer 的对象,还调用了数据访问层 DataAcess 中的 CustomerRegister()方法,以此通过微软企业库连接数据库中的用户注册存储过程 CustomerRegister。Customer 类的代码如下:public class Customerpublic Customer(string strEmail, byte btPassword, string strName)_email = strEmail;_password = btPassword;_name =

52、 strName;private string _email;private byte _password;private string _name;public string Emailget return _email;set _email = value;第 12 页 共 28 页public byte Passwordget return _password;set _password = value;public string Nameget return _name;set _name = value;CustomerRegister()的代码如下:public int Custo

53、merRegister(Customer c)string sqlCommand = CustomerRegister;/为执行存储过程进行准备,参数赋值DBCommandWrapper dbCommandWrapper = _db.GetStoredProcCommandWrapper(sqlCommand); dbCommandWrapper.AddInParameter(Email, DbType.String, c.Email);dbCommandWrapper.AddInParameter(Password, DbType.Binary, c.Password);dbCommandW

54、rapper.AddInParameter(Name, DbType.String, c.Name);dbCommandWrapper.AddParameter(RETURN_VALUE, DbType.Int32, ParameterDirection.ReturnValue, return, DataRowVersion.Default, null);_db.ExecuteNonQuery(dbCommandWrapper);/执行存储过程return (int)dbCommandWrapper.GetParameterValue(RETURN_VALUE);在数据库设计中,用户注册 Em

55、ail 地址是关键,它的值是唯一的,不能重复,如果重复,企业库和数据库就会抛出异常,并且终止执行 SQL 语句。根据数据库是否产生异常及异常的代码,就可以较好的实现模块功能,并且给用户显示友好的提示信息。用户注册后,在登录页面输入 Email 和密码可以登录到系统中。登录页面如图 4-2 所示。图 4-2 登录页面登录模块验证程序根据数据库中已有的注册信息,对客户端发送过来的第 13 页 共 28 页Email 和密码进行验证。判断该 Email 地址及相应的密码在数据库中是否存在,进而可进行购买图书等操作。输入信息,点击“登录”按钮将执行的部分程序代码如下:private void btnL

56、ogin_Click(object sender, System.EventArgs e)int iRet = CustomerSystem.Login(Email, Password);if(Email=)&(Password=admin)SessionUserName=;/通过session验证管理员Response.Redirect(/admin/Default.aspx);/进入管理员页面elseif (iRet 0)FormsAuthentication.RedirectFromLoginPage(iRet.ToString(), false);/重定向elselblMess

57、age.Visible = true;lblMessage.Text = LOGIN_FAIL_MESSAGE;如果 Email 为并且 Password 为admin,就进入后台管理员页面,其它用户成功登录后则进入前台图书销售页面。.2 图书浏览图书浏览图书浏览使用 2 种方式实现:分类浏览和热门书推荐。页面设计中,两种方式都使用了 ASP.NET 中的 DataList 控件来绑定数据,以列表方式显示。因为datalist 自定义模块比 datagrid 更能够显示丰富多变的数据列表。分类浏览和热门书推荐的实现都差不多,唯一的差异就是热门书推荐部分只显示销售量前 4 的图书

58、。分类浏览图书页面的执行结果如图 4-3 所示。当用户点击相关类别链接时,就可以实现分类浏览。这些链接包含查询字符串,在 Web 服务器中通过解析这些字符串来确定用户所点击的链接。当点击“艺术”链接时,页面上半部分显示热门书推荐,下半部分显示全部图书列表,显示结果如图 4-4 所示。第 14 页 共 28 页图 4-3 分类浏览页面 图 4-4 分类浏览显示结果在分类浏览页面 Category.aspx 的实现过程中,“收藏夹”按钮只有在用户登录的情况下才显示,在 DataList 控件里 ItemCreate 事件的相应函数中添加了相应的代码进行判断。其后台的部分代码如下:private v

59、oid dlBook_ItemCreated(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)/DataList.ItemCreated ,当在 DataList 控件中创建项时在服务器上发生。ImageButton ib = e.Item.FindControl(ibFavorite) as ImageButton;if (ib != null)ib.Visible = ucHeader.IsLogin;/dlBook_ItemCommand,当单击 DataList 控件中的任一按钮时发生private vo

60、id dlBook_ItemCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)/添加图书到收藏夹或购物车if (e.CommandName = AddFavorite)int iItemId = Convert.ToInt32(e.CommandArgument);int iCustomerId = Convert.ToInt32(User.Identity.Name);Common.Favorite f = new Common.Favorite(iItemId, iCustomerId);if (

温馨提示

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

评论

0/150

提交评论