论文网上书店系统.doc_第1页
论文网上书店系统.doc_第2页
论文网上书店系统.doc_第3页
论文网上书店系统.doc_第4页
论文网上书店系统.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计说明书 学生姓名学生姓名学学 号号 院院 (系系)计算机科学系 专专 业业计算机科学与技术 题题 目目网上书店系统 指导教师指导教师 (姓 名) (专业技术职称/学位) 2007年5月 摘摘 要要: 网上书店系统属于典型的电子商务系统,具有一定的实用价值。本文描述了一个 功能较完善的网上书店系统的开发过程,它集在线销售和后台管理功能为一体。文中主 淮阴师范学院毕业论文(设计) 1 要描述了该系统的设计与实施方案,并对系统中关键技术作了较详细的介绍;最后针对 该系统提出了改进方向。 关键词关键词:网上书店,asp.net,c#,sql server 2000,b/s 结构,购物车 淮阴师范学院毕业论文(设计) 2 abstract: on-line bookstore system is a typical e-commerce system .it is very practical. this paper describes a development process of an on-line bookstore. this system includes online sales and background administration. the article mainly introduces the design and implementation schema, and explains the pivotal technology. at last, it points out the way to improve the systems performance. keywords: online bookstores, asp. net, c#, sql server 2000, b/s structure, cart 淮阴师范学院毕业论文(设计) 3 目录目录 1 1 引言引言5 5 1.11.1 项目背景项目背景5 5 1.21.2 研究意义研究意义5 5 1.31.3 本文所做的工作本文所做的工作5 5 系统解决方案系统解决方案6 6 2.12.1 相关技术相关技术6 6 2.22.2 体系结构体系结构8 8 2.32.3 技术开发方案技术开发方案1010 2.42.4 系统技术平台系统技术平台1010 3 3 系统设计说明系统设计说明1010 3.13.1 系统框架系统框架1010 3.23.2 消费客户使用案例消费客户使用案例1111 3.33.3 系统管理员使用案例系统管理员使用案例 1212 3.43.4 系统的其他功能模块介绍系统的其他功能模块介绍 1414 4 4 数据库设计数据库设计 1414 4.14.1 数据模型数据模型1414 4.24.2 数据表设计数据表设计1616 4.34.3 存储过程设计存储过程设计1818 5 5 网上书店系统主要网上书店系统主要/ /关键技术关键技术2020 5.15.1 数据库连接模块设计数据库连接模块设计 2020 5.25.2 销售模块设计销售模块设计 2222 5.35.3 其它模块设计其它模块设计 2929 6 6 测试运行情况测试运行情况3232 6.16.1 测试运行情况测试运行情况3232 6.26.2 程序有待改进方面程序有待改进方面3434 结论结论3535 淮阴师范学院毕业论文(设计) 4 参考文献参考文献3636 致致 谢谢3737 淮阴师范学院毕业论文(设计) 5 1 1 引言引言 1.11.1 项目背景项目背景 随着互联网的迅速发展,人们对网上购物的兴趣和热情也日益提升,与此同时,网 上书店作为最适合网上销售图书的销售方式,也逐渐得到人们的青睐。越来越多的人直 接从网上书店获取所需的图书,自 1995 年 7 月全球第一个网上书店亚马逊书店 ()在美国开业以来,网上书店如雨后春笋般地涌现。专家估计 2006 年或 更早,成人消费图书市场份额中,网上书店约占 50%。网上书店作为一种新的图书发行主 体,随着数字图书的出版而占据越来越重要的地位。 网上书店在我国起步较晚,但因其众多优势而发展很快。目前国内具有代表性的网 上书店有当当网()和卓越网()。 1.21.2 研究意义研究意义 21 世纪是个以网络为核心的信息时代,数字化、网络化与信息化是 21 世纪的时代 特征。随着互联网的不断发展以及全球经济一体化的逐步深入,网上销售已成为现代传 统书店必不可少的经营策略之一。 网上书店系统具有传统书店无法比拟的优点,主要体现为: 1.具有极强的方便性和快捷性,顾客可以足不出户购买到所需图书; 2.加快图书流通、交易的速度,从而能够迅速开拓目标市场,实现投入和回报效益的 最大化; 3.加快顾客信息反馈,有利于提高服务质量,扩大消费群,并最终获取更高的收益。 随着我国互联网的更加普及和网上书店的日趋成熟,在线购买书籍的消费群体将会 越来越大,网上书店的市场潜力将会得到充分发挥。 1.31.3 本文所做的工作本文所做的工作 网上书店系统是集在线销售和后台管理为一体的电子商务系统,也是基于 b/s 体系 结构的网络应用系统,其中牵涉到网站设计、网络数据库的连接和基于 web 应用程序开 发等相关技术。 为了开发该网上书店系统,并且使系统能够真正达到“适用、好用”的标准,本人 认真学习了 asp.net 程序设计(基于 c#语言) 、数据库搭建、软件工程等诸多相关教程以 及构建网站所需技术的理论知识。对于以下网页制作工具:dreamweaver、 flash、 淮阴师范学院毕业论文(设计) 6 swishmx 以及图像处理工具 photoshop 做了深入的学习,基本掌握其使用方法与技巧,为 网上书店系统的站点设计做好技术的支持。熟练掌握 sql server 中数据库的建立、管理 与维护;利用 asp.net(active server pages)技术访问后台数据库;借助 iis(internet information server)在网上进行信息发布以及对系统性能进行优化等相关技术。另外, 为了增强系统的实用性,使之能尽量与实际的应用系统相吻合,本人对许多同类网站的 内容、功能进行了分析与对比。吸取了它们的可取之处,并在借鉴前人经验的基础上有 所创新,挖掘自己的独特之处,构建出目前较为流行的基于三层体系结构技术的网上书 店系统,它能够很好地反映并模拟在线电子商务的运作过程。 系统解决方案系统解决方案 2.12.1 相关技术相关技术 .1 visualvisual studio.netstudio.net 20032003 平台和平台和 c#c#语言介绍语言介绍 visual studio.net 2003 是一个功能强大、高效并且可扩展的编程环境。有许多激 动人心的新功能,它提供统一的集成开发环境,支持在同样的开发环境里用 visual basic、visual c+、visual c#、visual j#和其他数十种编程语言,可以编写、调试和 部署各种应用程序。它充分展现了应用程序的开发潜能、并提供了生成应用程序的所需 要的工具和技术。这些应用程序给当今的企业、机构提供了强大的支持,为开发下一代 以 xml web 服务为中心的应用程序而设计,并推动下一代基于 xml web 服务软件的发展, 是有始以来功能最强大、最受欢迎的软件开发工具。 c#(发音为“c sharp”)是一门简单、现代、优雅、面向对象、类型安全、平台独立 的一门新型组件编程语言。它虽然是一种新语言,但却很难在这种语言中找到新的概念, 其语法风格不仅源自 c/c+家族,而且融合了 visual basic 的高效和 c/c+强大,因此 是微软为奠定其下一互联网霸主地位而打造的 microsoft.net 平台的主流语言。依本人 看来,优点不外乎以下两方面: 其一,对于花费很多时间学会 c、c+语言的程序员来说,可以不必丢弃以前的知识, 就可以使用这种新的语言开发程序,尽管 c#中有一些新概念、新技术和新函数,但一般 而言它的语言及其语法是跟 c、c+类似的,而且对于用 c+编写好的代码也可被重用, 主要原因是 c#具有调用已有代码和系统库中的库函数的机制; 其二,组件编程已经成为当今世界软件业面向下一代程序开发的一致选择,是 90 年 代面向对象编程的深度发展。c#生逢其时,占尽天时地利, “第一等的面向组件编程的支 淮阴师范学院毕业论文(设计) 7 持”也决不是简单说说那么轻松。实际上,组件特性已经深深植入 c#语言的各个层面, 可为是 c#锐利(sharp)之处。 .2 asp.netasp.net 简介简介 asp.net 是 m 的一部分,作为战略产品,不仅仅是 active server page (asp) 的下一个版本,它还提供了一个统一的 web 开发模型,其中包括开发人员 生成企业级 web 应用程序所需的各种服务。asp.net 的语法在很大程度上与 asp 兼容, 同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提 供更好的安全保护。可以通过在现有 asp 应用程序中逐渐添加 asp.net 功能,随时增 强 asp 应用程序的功能。 asp.net 可以用已编译的基于 .net 环境的可以用任何与 .net 兼容的语言(包括 visual basic .net、c# 和 jscript .net.)创作应用程序。另外,任何 asp.net 应用 程序都可以使用整个 .net framework,开发人员可以方便地获得这些技术,其中包括托 管的公共语言运行库环境、类型安全、继承等等。 asp.net 可以无缝地与 wysiwyg html 编辑器和其他编程工具(包括 microsoft visual studio .net)一起工作。这不仅使得 web 开发更加方便,而且还能提供这些工 具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到 web 页的 gui 和 完全集成的调试支持。 因此,对于程序员来说,可以更方便地开发 web 应用程序,这些是跟微软为 asp. net 设计的以下策略分不开的:易于写出结构清晰的代码、代码易于重用和共享、可用编 译类语言编写等等。 .3 sqlsql serverserver 20002000 简介简介 sql server 2000 是 microsoft 公司 2000 年推出的 sql server 数据库管理系统, 它是一个杰出的数据库平台,可用于大型联机事务处理、数据仓库以及电子商务等。 其 特点有如下几点: 1真正的客户机/服务器体系结构。 2图形化用户界面。 3丰富的编程接口工具。 4sql server 与 windows nt 完全集成。 5具有很好的伸缩性。 淮阴师范学院毕业论文(设计) 8 6对 web 技术的支持。 7sql server 提供数据仓库功能。 .4 ado.netado.net 简介简介 ado.net 是由.net framework 为与数据库中的数据进行交互而提供的一组对象类的 名称。我们知道,面向对象编程的有关主要优点是可以把各种复杂的功能封装在一个自 包含的单元中,接着要处理的就是个定义好的接口中,它由一些方法和属性组成。 在 ado.net 中,我们将处理断开连接的数据集,在网站的访问者请求数据时,首先 建立连接,传送数据,之后关闭连接;接着,访问者就可以修改数据,但这些修改不会 在数据源中立即更新(如果需要对访问者所做的修改更新到数据库,必须重新打开连接) 。 这种断开连接进行访问数据库的最大优点是效率高、可伸缩性好。在以往的数据库访问 中必须为用户一直保持连接,直到该用户的会话结束为止,而 web 中可能同时处理上千 个并行用户,可想而知,如果为每个用户同时保持连接在需要的系统资源是非常昂贵的。 因此,使用断开式连接数据可以提高应用程序的执行效率,并能处理更多的工作负载 (即它们的伸缩性更好) 。 2.22.2 体系结构体系结构 .1 b/sb/s 系统介绍系统介绍 b/s(browser/server,简称 b/s)模式,即浏览器/服务器模式,它是基于 intranet 的需求而出现并发展的。 .2 三层体系结构介绍三层体系结构介绍 b/s 模式,是一种从传统的二层 c/s 模式发展起来的新的网络结构模式,它通常采用 三层结构, 三层体系结构将应用程序划分为三个逻辑层面,这三个逻辑层如下: (1)用户服务层(user services tier),也称为表现服务(presebtation services),是用户与应用程序进行交互的端点。通常由 win32 或者基于浏览器的图形用 户界面应用构成。在该层用户可以查看、输入和处理数据。从用户的角度来看,用户服 务层就是整个应用。在该电子商务系统中,用户服务层由 asp.net web forms 构成,它 可以让消费客户浏览和搜索图书,向他们的购物车增加图书,并且下订单。 (2)应用服务层,也称为中间层,它负责封装事务处理、商务规则、数据访问及其 他的核心应用逻辑。应用服务层可以有效地作为前台用户服务层与后台数据服务和数据 淮阴师范学院毕业论文(设计) 9 存储之间的桥梁。在电子商务系统中,应用服务层将由在 windows 组件服务中执行的事 务处理和非事务处理.net 服务组件构成。 (3)数据服务层,该层负责检索和操作在一个或者多个数据存储中存储的数据。通 过将数据访问和操作分离到独立的逻辑层中,就可以将商品服务层从附属数据存储的细 节中抽象出去。在该电子商务系统中。数据服务层将实现为一组封装了 sql 数据访问逻 辑,并向商务组件返回结果集的存储过程。商务服务组件通过这些存储过程访问数据库 中的数据。 整个电子商务系统的逻辑体系结构如图 2_1 所示。 用户服务 用户交互 页面导航 数据表现 业务服务 事务处理逻辑 业务规则定义 数据访问 数据服务 数据检索 数据操作 数据验证 数据存储 数据存储 数据关系 数据完整性 图 2_1 电子商务系统的逻辑体系结构图 .3 browser/serverbrowser/server 模型工作模型工作步骤步骤 b/s 模型的工作步骤一般包括以下七步: 1用户打开浏览器。 2输入或自动启动主页的 url (uniform resource locator),浏览器生成一个 http 请求并把它发给指定的 internet 服务器。 3服务器发回主页的 html (hypertext markup language)页面。浏览器将其显示在 屏幕上。 数据库 .net 的服务器组件 asp.net 的 web 服务 sql server 的存储过程 asp.net 的 web forms 淮阴师范学院毕业论文(设计) 10 4用户在主页面上进行操作(如:点击、键入等)。 5浏览器生成相应的 http 要求,发送给相应的服务器。 6服务器收到请求后,查看本站点是否拥有这个文档。如果有,就将它放入响应信 息中返回给浏览器。 7浏览器收到响应,查看头文件的格式,判断能否直接显示。否则,调用对应的帮 助应用程序或外挂程序处理显示。 2.32.3 技术开发方案技术开发方案 我们根据应用系统的有关规范标准和具体业务需求,结合软件开发技术发展状况, 选择了以下相应系统软件或工具软件,以确定科学、合理的开发方案。具体如下表所述: 类别软件名称软件用途 数据库sql server 2000后台数据库 web 服务iis后台服务器 开发工具visual studio.net 2003后台编码,页面设计 2.42.4 系统技术平台系统技术平台 硬件: web 服务器 1 台、客户机若干台、网卡、集线器等。 软件: web 服务器为 windows2000 及以上版本,安装有 iis。 客户机安装 internet explorer 或 netscape communicator。 相关软件,如:ie、sql server 2000、vs.net 等等。 3 3 系统设计说明系统设计说明 3.13.1 系统框架系统框架 .1 系统主要功能模块系统主要功能模块 网上书店系统主要包括两大模块:一是系统管理模块(管理员登陆),二是系统的销售 模块(顾客登陆)。在前两个模块下又各自包括分若干小模块,具体功能模块结构图如图 淮阴师范学院毕业论文(设计) 11 3_1 所示: 图 3_1 网上书店系统功能模块结构图 3.23.2 消费客户使用案例消费客户使用案例 根据销售模块的基本功能,可以用图 3_2 表示消费客户进入网上书店后系统提供的服 务流程。 图 3_2 网上书店系统提供的服务流程 具体模块功能解释如下: 注册模块:建立账号,如果顾客以前没有建立账号,则只可以浏览图书基本信息和进 行图书的高级搜索,相应的该用户没有权限进入购物车管理以及查看购物记录等页面。所 以要求用户在下订单之前必须建立账号,同时在用户创建新账号的时候,必须输入用户 名(系统会自动检查该用户名是否已存在) 、联系方式以及发货地址。用户在建立新账号 之后就可以具有合法登录系统的身份,可以进行相关的购书活动。 浏览图书 查看图书 搜索图书 选择图书 创建账号 登录 管理购物车 注册 查看订单 网上书店系统 添 加 新 书 管理模块销售模块 修 改 书 目 信 息 删 除 书 目 客 户 管 理 图 书 搜 索 订 单 管 理 销 售 统 计 图 书 浏 览 购 物 车 管 理 订 单 信 息 浏 览 淮阴师范学院毕业论文(设计) 12 登录模块:如果消费客户在没有登录情况下,想要查看购物车,下订单或者访问其过 去的购买记录,系统会转到一个提示页面,要求顾客先要登录。如果是没有注册的用户, 需要注册建立新账号。如果登录成功,系统将会重新刷新首页,并且提示该用户已经成功 登录的欢迎信息,使用者可以在购物会话期间的任何时候进行各项操作。 图书浏览模块:为了让客户购买图书,我们必须让客户了解该图书的相关信息,然后 再作出购买的决定。在首页我们提供了有限的最新上架的图书信息,消费者可以通过浏览 图书目录,查看和选择图书。当用户浏览目录的时候,可以遍历图书类别的层次,查看 属于各个类别的图书列表,并且客户可以针对某项具体的书目查看更详细的信息,以便决 定是否购买或者放入购物车以供将来的选择参考。 查看图书模块:当消费者通过浏览图书类别的目录或者执行高级搜索搜索到某一图 书之后,就可以查看该图书的所有相关信息,包括书名、作者、出版社、原来价格、打 折情况、实际价格、图书的描述等更为详细的信息,以便决定是否购买或者放入购物车以 供将来的选择参考。 高级搜索模块:后台管理模块和销售模块中都提供了高级搜索功能。在销售模块中, 图书的高级搜索是出于购买的目的,紧接高级搜索的下一个功能是对图书的预定操作。对 于图书的高级搜索系统提供了多条件组合查询、逻辑组配、限定范围,包括按书类、作者、 出版社等内容任意一项或几项的内容进行查询,同时支持模糊查找功能。 选择图书模块:当查看完图书之后,选择要购买的图书,消费用户就能够将其放到 他们的虚拟购物车中。 管理购物车模块:电子商务的核心是购物车,消费客户能够查看虚拟购物车内的所有 图书,并且可以删除所选择的订单或者修改该订单购买图书的数量。当客户删除订单或 者修改数量之后,系统会重新计算各订单的价格以及总价格,如果顾客的购物车为空, 就不能够执行购买操作,此时会弹出一个友好的警告信息。 查看购物记录模块:在查看和管理了购物车之后,顾客就可以为选择的图书作出购 买的决定。客户能够浏览购买记录上的所有有关图书信息,如购买日期、是否配送、应付 总额等(应付总额是未配送图书价格之和)。 3.33.3 系统管理员使用案例系统管理员使用案例 在网上书店系统需要强大的后台管理功能,而且只有具有系统管理员权限的用户才 可以使用该功能。后台管理主要是对书籍和客户资料的管理,具体包括:对书目的查询、 添加、修改、删除;对图书销售的统计、客户的管理、订单的管理等。网上书店系统后 淮阴师范学院毕业论文(设计) 13 台管理流程如图 3_3 所示: 订单管理 客户管理 添加新书 高级搜索 销售统计 简单搜索 删除书目 更新修改 图 3_3 网上书店系统后台管理流程 具体模块功能解释如下: 搜索模块:搜索分为简单搜索和高级搜索两种,它们都是为了更新对书目信息而提供 的。简单搜索只能通过书号进行的搜索(如果输入的格式不正确,将会弹出提示信息);高 级搜索提供了多条件组合查询、逻辑组配、限定范围,具体包括:按书类、作者、出版 社等内容任意一项或几项的内容进行查询。另外,为了增强查询能力系统还提供模糊查 询功能,即把符合模糊条件的书目一一列出。一般情况下,高级搜索的下一个链接功能 是更新对书目信息的修改以及删除该书的两个功能。 添加新书模块:把最新出版的书上架,添加该书的详细信息。 订单管理模块:把所有的未配送的书对应的顾客联系方式等详细信息列出,其下一个 链接是列出某一顾客所定购所有书的书名、数量、定购日期、所需的金额等详细信息,便 于管理员配送出去。本模块实现根据客户的订单,把图书配送出去。 销售统计模块:为了了解书店的销售业绩,我们必须对所有的图书销售情况进行汇总, 销售统计模块将完成此项功能,系统可以按照图书分类、作者、出版社、销售日期等内容 或任意几项内容的多条件组合查询、逻辑组配、限定范围来对所销售的图书情况进行统 淮阴师范学院毕业论文(设计) 14 计(同时支持模糊查找功能),包括销售数量以及销售总额,是一个比较完整的模块。 客户管理模块:该模块是管理员负责管理本网上书店的所有用户信息。主要功能包括 查找(支持模糊查找)、删除用户信息。用户被分为两类:管理员和普通用户(在线注册的 新用户默认是普通用户) 。 3.43.4 系统的其他功能模块介绍系统的其他功能模块介绍 在线统计模块:该模块是为了统计本网站访问的历史总人数和当前的在线人数,这也 是很大商业性网站使用的模块之一。 新闻组模块:此模块的主要功能是为客户提供最新的有关业内新闻,社会焦点新闻,如 何时将有何种新书将与读者见面,以及文化出版界有关新闻。 在线投票模块:该模块的主要功能是让顾客投票表决,了解本书店的运行情况。 以上这些模块也是很多商业性网站经常使用的模块,主要是为了提高网站的服务质 量,以提高用户对网站的忠诚度。 4 4 数据库设计数据库设计 该系统采用 sql server2000 作为后台数据库进行存储所有与系统相关的数据。根据 系统功能需要主要包括以下数据表:图书基本信息数据表(book)、图书价格数据表 (bookprice)、用户信息数据表(users)、用户订单数据表(orders)、在线人数统计数据 表(countpeople)、在线投票数据表(vote)以及新闻组数据表(newstype、newsdetails)。 4.14.1 数据模型数据模型 数据模型是对现实世界数据的抽象表示,其主要目的是规划具体事务处理使用到的 数据,建立相应的数据库,保持与应用程序开发之间的简洁性,有利于数据库的规范化、 性能优化以及数据的简洁性。 .1 e_re_r 模型模型 er 模型是数据进行第一层抽象的表示方法。它的主要成分包括:实体、联系和属性。 使用这三种成分,我们可以建立许多数据库应用系统的 e_r 模型。 对于网上书店系统中使用到的实体和属性可以定义如下(其中带下划线的属性为主 属性): 淮阴师范学院毕业论文(设计) 15 图书基本信息数据表(图书编号,isbn 号,书名,作者,出版社,图书类别,图书描述); 图书价格数据表(价格编号,原价,折扣价); 用户信息数据表(用户名,用户类型,密码,电话,家庭住址,邮政编码); 用户订单数据表(订单号,图书编号,用户名,定购数量,定购日期,购买日期,是否购买,是 否配送); 在线人数统计数据表(人数); 在线投票数据表(投票编号,投票项,得票数); 新闻类型数据表(类型编号,类型名称); 新闻详细信息数据表(新闻编号,标题, 类型编号,点击率 ,作者, 更新时间,详细内 容)。 .2 联系定义联系定义 e_r 模型的“联系”用于刻画实体之间的关联。一种完整的方式是对局部结构中任意 两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在 联系。若有联系,进一步确定是 1:n,m:n,还是 1:1 等。还要考察一个实体类型内部是 否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系等等。 本系统的部分实体与联系的 e_r 模型如图 4_1 所示: 淮阴师范学院毕业论文(设计) 16 n m 用户信息 图书信息 定 购 邮政编码 用户名 密码 书名 家庭住址 电话 用户类型 图书编号 作者 出版社 isbn 号 图书描述 图书类别 定购数量 用户名 图书编号 订单号 是否购买 是否配送 定购日期 购买日期 拥有 图 书 价 格 价 格 编 号 折 扣 价 原 价 1 1 4.24.2 数据表设计数据表设计 根据系统分析和功能的说明,可以将该系统的逻辑数据结构划分为六个基本逻辑块。 .1 图书信息模块图书信息模块 该模块主要用于存放系统中网站销售的所有的书目基本信息,是本系统关键的数据部 分。 图书基本信息数据表(book): 图书价格数据表(bookprice): 图 4_1 网上书店系统 er 图 淮阴师范学院毕业论文(设计) 17 .2 用户信息模块用户信息模块 用户信息模块模块用来存储普通用户和管理员的信息,只构造一个非常简单的用户 信息数据表(users),具体如下: .3 订单模块订单模块 用户订单数据表(orders)存储了订单上的各项图书的购买详细记录,其详细设计参 数如下: .4 新闻组模块新闻组模块 新闻类别数据表(newstype)用于存储新闻的类别数据,其详细设计参数如下: 新闻详细信息数据表(newsdetails),参数如下: 淮阴师范学院毕业论文(设计) 18 .5 在线人数统计模块在线人数统计模块 在线人数统计数据表(countpeople),其参数如下: .6 在线投票模块在线投票模块 在线投票数据表(vote), 其参数如下: 4.34.3 存储过程设计存储过程设计 通过封装数据访问逻辑,数据服务层中的存储过程就可以在应用服务类和数据存储 之间提供一个抽象层,应用服务类型只需要执行存储过程,并传递所需的参数,即可以 得到存储过程返回的预期返回值或者结果集。其主要的优点是:一是提高系统的性能,提 高代码的执行效率;二是增强数据库系统的安全性;三是提高代码的重用度。 .1 书目管理书目管理 书目管理的存储过程主要包括查询、更新和删除网上书店系统数据库中的图书基本 信息数据表(book)、图书价格数据表(bookprice)中的数据,具体存储过程定义如下: 增加图书基本信息,其存储过程代码如下: create procedure bookadd (bid int, bisbn varchar(16), bname varchar(50),bauthor varchar(50), bpress varchar (50), bgroup 淮阴师范学院毕业论文(设计) 19 int,bdescribe varchar(300) ) as insert into book(bid, bisbn, bname, bauthor, bpress, bgroup, bdescribe ) values (bid, bisbn, bname, bauthor, bpress, bgroup, bdescribe) 删除图书基本信息,其存储过程代码如下: create procedure bookdelete (bid int) as delete book where bid=bid 查询图书基本信息,其存储过程代码如下: create procedure booklist as select pid, pprice, pdiscount, bid, bname, bauthor, bpress from bookprice,book where bookprice.pid=book.bid 更新图书基本信息,其存储过程代码如下: create procedure bookmodify (bid int, bisbn varchar(16), bname varchar(50), bauthor varchar(50), bpress varchar (50), bgroup int, bdescribe varchar(300) ) as update book set bisbn=bisbn, bname=bname, bauthor=bauthor, bpress=bpress, bgroup=bgroup, bdescribe =bdescribe where bid=bid 增加图书价格信息,其存储过程代码如下: create procedure bookpriceadd (pid int, pid int, pprice money, pdiscount float ) as insert into bookprice(pid, pprice, pdiscount) values (pid, pprice, pdiscount ) 删除图书价格信息,其存储过程代码如下: create procedure bookpricedelete (pid int ) as delete bookprice where pid=pid 更新图书价格信息,其存储过程代码如下: create procedure bookpricemodify (pid int, pprice money, pdiscount float) as update bookprice set pprice=pprice, pdiscount=pdiscount where pid=pid 淮阴师范学院毕业论文(设计) 20 获取当前图书的最大的编号, 其存储过程代码如下: create procedure getbookmaxbid maxbid int output as select maxbid=max(bid) from book .2 用户信息用户信息 用户信息的存储过程主要包括查询、添加、删除网上书店系统数据库中的用户信息 数据表(users)中的数据。有如下存储过程: 增加用户信息,其存储过程代码如下: create procedure useradd (uid varchar (50) , upassword varchar (50), upower int, uphonenumber varchar(50), uhomeadress varchar(50), upostalcode varchar(50) ) as insert into users (uid, upassword, upower, uphonenumber, uhomeadress, upostalcode) values(uid, upassword, 2, uphonenumber, uhomeadress, upostalcode) 删除用户信息,其存储过程代码如下: create procedure userdelete(uid varchar (50) ) as delete users where uid=uid 查询用户信息,其存储过程代码如下: create procedure userlist as select uid, upassword,uphonenumber, uhomeadress, upostalcode, upower from users 用户登录身份验证,其存储过程代码如下: create procedure userloginuid varchar(50), upassword varchar(50) as select * from users where uid=uid and upassword=upassword .3 订单管理订单管理 订单处理存储过程主要包括选择、插入和更新系统数据库中的用户订单数据表 (orders)的数据,其存储过程有: 插入新订单, 其存储过程代码如下: create procedure orderadd (obid int, ouid varchar(50), oquantity int, 淮阴师范学院毕业论文(设计) 21 odate datetime) as insert into orders (obid , ouid , oquantity , odate , obuy) values (obid , ouid , oquantity , odate , 0) 删除订单, 其存储过程代码如下: create procedure orderdelete(oid int) as delete orders where oid=oid 更新订单, 其存储过程代码如下: create procedure ordermodify(oid int, oquantity int) as update orders set oquantity=oquantity where oid=oid 以上是网上书店系统的数据库设计的基本过程,主要包括数据模型的建立,数据表 的定义以及存储过程的定义。 5 5 网上书店系统主要网上书店系统主要/ /关键技术关键技术 本章节介绍了系统实现过程中的关键技术,主要包括:数据库连接模块的设计、销 售模块的设计及其它模块的设计三部分内容,具体如下: 5.15.1 数据库连接模块设计数据库连接模块设计 .1 实现与数据库连接常用的四种方法实现与数据库连接常用的四种方法 本设计尝试使用了连接数据库的常用的以下四种方法: (1)建立一个数据库连接类(db.cs) ,主要代码如下: public static sqlconnection createcon() /建立连接字符串 sqlconnection con=new sqlconnection(“server=.;uid=sa;pwd=;database=bookshopping“); return con; /返回值是连接字符串 每当需要连接数据库时调用(db.cs)即可,主要代码如下: private void page_load(object sender, system.eventargs e) /调用连接字符串,建立连接对象,数据适配器 sqldataadapter 对象,本 地数据集,把数据绑定到 datalist 上 if(!this.ispostback ) sqlconnection con=db.createcon ();/调用连接字符串 淮阴师范学院毕业论文(设计) 22 con.open ();/打开连接 sqldataadapter sda=new sqldataadapter(“select * from book ,bookprice where book.bid=bookprice.pid and bgroup=1“,con); dataset ds=new dataset ();/创建并填充 dataset sda.fill (ds); this.dlt_class1 .datasource =ds; this.dlt_class1 .databind (); con.close (); /使用后关闭连接 此种方法的好处是建立一个数据库连接类,每当需要连接数据库时调用(db.cs)即 可,方便、快捷。 (2)在 web 配置文件中(web.config)自定义一个连接字符串,该字符串作为常量 被使用,主要代码如下: /在 xml 文档中定义连接字符串 每当需要连接字符串时,从文件 web.config 中读取连接字符串。主要代码如下: private void page_load(object sender, system.eventargs e) if(!this.ispostback ) string strcon=configurationsettings.appsettings “dsn“;/获得连接字符串 sqlconnection con=new sqlconnection(strcon); con.open (); 使用时需要调用域名空间 using system.configuration ; (3)在 global.asax 文件的 application 对象中定义一个数据库连接字符串,该字 符串作为常量被调用,主要代码如下: protected void application_start(object sender, eventargs e) application“sqlconstr“=“server=.;uid=sa;pwd=;database=bookshopping“; private void databindtodg() sqlconnection con=new sqlconnection (string)application“sqlconstr“);/首先把application对象类型强制转换为字符串类型 , 淮阴师范学院毕业论文(设计) 23 获得连接字符串 con.open (); (4)在需要连接数据库时,每次都直接编写连接字符串的代码,无需调用。主要代 码如下: private void imagebutton1_click(object sender, system.web.ui.imageclickeventargs e) sqlconnection con=new sqlconnection (“server=.;database=bookshopping;uid=sa;pwd=;“); con.open (); 此种方法虽然较为麻烦,但是很直观明了。 5.25.2 销售模块设计销售模块设计 .1 新用户注册模块的实现新用户注册模块的实现 在同一个页面使用控件 panel 是否隐藏来控制注册的流程界面的显示(页面采用流 式布局)主要实现代码如下: private void btn_next1_click(object sender, system.eventargs e) if(this.radiobuttonlist1.selectedvalue=“同意“)/ this.panel1 .visible =false; this.panel2 .visible =true; if(this.radiobuttonlist1 .selectedvalue =“不同意“) response.write (“ confirm(您真的不同意该协议吗 ?) “); / 使用本地脚本语言,弹出确认信息对话框 为了防止用户注册的用户名相同,造成混乱。本人采用了自定义验证控件,功能是 在该页面提交时,新用户注册时使用的用户名,系统将会查询数据库中是否存在,如果 存在,该页面无效,提交不成功,主要实现代码如下: private void customvalidator1_servervalidate(object source, system.web.ui.webcontrols.servervalidateeventargs args) string struid=args.value ; sqlconnection con=new sqlconnection (“server=.;database=bookshopping;uid=sa;pwd=;“); 淮阴师范学院毕业论文(设计) 24 con.open (); sqlcommand cmd=new sqlcommand (“select count(*) from users where uid=“+struid+“,con);int count=convert.toint32(cmd.executescalar (); if(count0) args.isvalid =false; /验证未能通过 else args.isvalid =true; /验证通过 使用存储过程,提高系统性能,先定义参数类型,然后给参数赋值;其中的密码使 用 md5 算法进行加密,提高了系统的安全性,关键技术的实现代码如下: private void btn_done_click(object sender, system.eventargs e) if(this.page .isvalid ) sqlconnection con=db.createcon (); con.open (); sqlcommand cmd=new sqlcommand (“useradd“,con); /调用存储过程 cmd.commandtype =commandtype .storedprocedure ; /将命令类型转化为存储过 程 cmd.parameters .add (“uid“,sqldbtype.varchar ); /添加参数,定义参数类型 cmd.parameters .add (“upassword“,sqldbtype.varchar ); cmd.parameters .add (“upower“,sqldbtype.int ); cmd.parameters .add (“uphonenumber“,sqldbtype.varchar ); cmd.parameters .add (“uhomeadress“,sqldbtype.varchar ); cmd.parameters .add (“upostalcode“,sqldbtype.varch

温馨提示

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

最新文档

评论

0/150

提交评论