版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、报刊订阅发行系统报刊订阅发行系统 摘要摘要:中国邮政从 50 年代开始承担的报刊发行业务,已成为我国报刊发行的主渠道。 报刊的发行订阅是一个比较复杂的过程,邮政的报刊发行多半是手工操作,工作量很 大,且繁琐。近年来,随着网络技术的飞速发展,网络能实现的功能越来越强大。顺 应着这一发展趋势,人们便想到利用网络的便捷,来解决报刊发行订阅的繁琐过程, 于是网络报刊发行订阅系统便产生了。 论文首先介绍网络报刊发行订阅系统的开发背景和研究意义,然后介绍开发工具 asp.net 的相关技术、asp.net 所使用的数据库技术以及系统的需求分析,最后详细介 绍了用 asp.net 技术开发的报刊发行订阅系统
2、的设计。系统是在 asp.net 环境下,利 用 c#来编写开发的,主要由用户登陆、查询、订阅和管理员等模块组成。整个系统是 基于 b/s 架构,系统开销小,方便用户操作以及管理员的管理。 关键词关键词:网上报刊订阅;asp.net;b/s the newspapers subscriptions management system abstract: the china post has been doing the business of issuing newspapers and periodicals since 1950s. it has become the main chann
3、el in the issue of newspapers and periodicals. the process of issue and subscription is rather complicated because of mostly manual operation and arduous workload. in recent years, with the rapid development of network technology, network has brought more and more powerful functions to the society.
4、therefore, the online issue and subscription system of newspapers and periodicals has been designed by making use of the convenient network to solve the complexity in the process . the dissertation, firstly, introduces the background and researching significance of the issue and subscription system
5、of newspapers and periodicals. secondly, it gives us a general introduction about the development tool of asp.net and related ado.net following with the demand analysis of the system. finally, the developmental process of system establishment is presented in details with concrete explanations, inclu
6、ding asp.net, c# programming and modules of users logging-in, inquiry, purchase and administrator and the like. the system which is based on b/s structure has a feature of low spending, user-friendly operation and convenient management. key words: subscribing newspapers and periodicals online; asp.n
7、et; browser/server 目录目录 1.前言 .1 2.需求分析 .2 2.1 可行性分析.2 2.2 性能需求.2 3.概要设计 .4 4.详细设计 .7 4.1 系统目标设计.7 4.2 开发环境简介.8 4.3 系统功能分解.10 4.4 用户功能模块.11 4.5 用户订阅功能.15 4.6 订单生成和退订功能.21 4.7 管理员模块.26 5.系统调试与运行 .32 6.心得体会 .33 7.参考文献 .34 8.致谢 .35 1 1 前言前言 近年来,随着 internet 的不断发展,网络上出现了一个新的订购系统,即网上订购 系统。网上订购系统能够为用户提供充足的信
8、息和快捷的查询手段。一直以来人们使用 传统人工的方式进行商品的销售,这种方式存在着许多缺点,如:效率低、保密性差, 耗费大量的人力和物资,另外时间一长,将产生大量的文件和数据,这对于查找、更新 和维护都带来了不少的困难。如报刊的订阅。 随着我国信息产业的迅猛发展,手工管理方式已不适应社务管理的要求,报社的日 常管理正面临着信息化的挑战,采用计算机管理以提高服务质量和管理水平势在必行。 发行管理是社务管理的一个重要组成部分,是报社和客户联系的纽带,是办报质量评判 的一个重要标志。目前很多报社成立自己的发行机构,打破原来由邮局统一订阅的方式, 从而提高服务质量。报刊发行管理系统就是为满足报社的这种
9、需要而研制开发的一个应 用。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识, 它已进入人类社会的各个领域并发挥着越来越重要的作用。网上发行订阅报刊作为电子 商务的一种应用形式,具有广阔的发展前景。因此研究如何构建高效可靠的网上报刊发 行订阅系统具有实际意义。基于 b/s 结构和.net 平台,使用 asp.aet 和数据库技术设计 和实现网上报刊订阅系统是一种可选的方案。网上报刊发行订阅作为电子商务的一种应 用形式,具有广阔的发展前景。 2 2 需求分析需求分析 传统的报刊发行系统,工作量大,操作繁琐,容易出错。随着信息技术的不断发展, 尤其是 internet 的
10、快速发展,复杂繁琐的人工报刊发行订阅已经远远不能满足人们的需 求,越来越多的人希望能获得更大的方便。在以前人们必需亲自到邮政部门去订阅报刊, 部门管理人员也必须对订阅的信息进行分门别类,这种人工方式显然浪费了顾客和工作 人员大量的时间。网上报刊发行系统可以让人们足不出户便能订阅到自己想要的报刊, 让发行人员简单快捷的管理和发行报刊。此报刊发行订阅系统与传统的报刊发行方式相 比,具有很大的优势。例如,查询报刊便捷,可提供如报刊信息的查询、顾客的评论等 个性化服务。随着网络的发展,科技的进步,报刊订阅发行系统的巨大潜力预示着其前 景的灿烂。 开发本系统除了应有一般网上购物功能外还应有以下特点: (
11、1).界面清晰、功能实用、操作简便。 (2).轻松管理,容易上手。目标系统必须具有可靠性、安全性、可维护性、可移植 性等,权限方面设为客户和系统管理员。 (3).尽可能让更多的客户参与在这个报刊订阅平台,讨论大家关心的热点问题,提 出大家对商品需求的宝贵意见。 (4).开发周期短、维护费用低、系统更新速度快。 2 2.1.1 可行性分析可行性分析 (1)技术可行性本系统仅需要一台装有 vs2005 和 sqlsever 个人版软件的计算 机即可。对于软件技术要求,现在的程序设计语言已非常成熟,要运用 html 样式,图形 图象制作工具来制作生动活泼的网页及美观的图形文件或动画文件,数据库使用
12、sql server 2000。 (2) 经济可行性由于本系统是为报刊的发行和订阅而设计的,本系统可以大 量减少人力的开支,也应此能取得较好的经济效益。 (3) 操作可行性界面设计充分考虑了客户的需求,浏览快、方便且直观可靠。 操作简单,具有一定的可行性。 2.22.2 性能需求性能需求 为了保证系统能够长期、安全、稳定、可靠、高效的运行,系统应该满足以下的性 能需求: 1. 系统处理的准确性和及时性:系统处理的准确性和及时性是系统的必要性能。在 系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量。 2. 系统的开放性和系统的可扩充性:系统在开发过程中,应该充分考虑以后的可扩 充性
13、。 3. 系统的易用性和易维护性:要实现这一点,就要求系统应该尽量使用用户熟悉的 术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短 用户对系统熟悉的过程。 4. 系统的数据要求: (1)数据录入和处理的准确性和实时性。 (2)数据的一致性与完整性。 (3)数据的共享与独立性。 3 3 概要设计概要设计 报刊发型系统逻辑上分成三层:表示层、业务逻辑层和数据层。 表示层用来表示信息和收集数据。在.net 框架下是由 asp.net 设计页面,它将系统 的开发代码和用户接口内容分离,其结构更模块化,同时在 asp.net 中可运用各种控件 提高编程效率。 业务逻辑层负责实
14、现应用程序中的业务逻辑,对报刊订阅系统的业务进行分析,将 主要的业务封装成组件,这些组件准备好后,就可以供表示层的应用程序调用,按照具 体的业务功能需求随意进行组合。 数据层包括数据的定义、维护、访问和更新,以及管理并响应业务服务的数据请求 等功能。 报刊发行订阅系统包括前台客户订阅模块和后台管理员模块。客户通过前台可以浏 览报刊信息、检索报刊和订阅报刊;后台管理模块是提供给管理者进行管理和维护的环 境,包括用户管理、报刊信息管理和订单管理等。 以下是系统的总体构架图: 1、管理员的主要流程分析: 管理员主要是负责信息的管理,主要包括对报刊信息的管理,用户信息的管理以及 用户订阅报刊后,产生的
15、订单的管理。其架构图如图 3.1: 图 3.1 报刊订阅系统整体架构图 系统管理员 信息管理 用户 管理 报刊 信息 在线 交流 在线 订阅 报刊发行系统 2、用户的主要流程分析: 用户首先可以匿名进入系统,进入后可以选择注册或登陆,也可以直接浏览以及查 询报刊信息,当用户确定自己需要购买就将自己想要的报刊添加到购物车,此时,只有 登陆过的用户才可以添加成功,如果用户没有登陆,会提示用户先登陆。登陆成功后便 可以添加报刊到购物车,当验证用户已经登陆后就可以进入订单生成阶段。 其主要操作流图如图 3.2: 图 3.2 客户订阅操作流图 3、面像对象的分析: 本系统主要是采用面向对象的分析,在系统
16、中主要有两大角色,第一是客户,客户 功能有注册、登陆、查看、订阅。另一个是管理员,管理员主要是管理信息。 系统的用例图如图 3.3 用户 管理员 注册 查询 登录 信息管理 订阅 报报刊刊订订阅阅系系统统 图 3.3 报刊订阅系统用例图 系统的类图如图 3.4 所示: n 浏览信息查选择 加入购物车 系统登陆 注册 是否登陆 生成订单提交订单 用户 +注册() +登录() +订阅() +查询() -用户名 -密码 用用户户类类 -报刊id -报刊名称 -定价 -分类 报报刊刊 -订单号 -报刊id -用户名 订订单单 +登录() +信息管理() +订阅() -用户名 -密码 -权限 管管理理员
17、员 * 1 1 * * * * * * * 图 3.4 报刊订阅系统类图 4 详细设计详细设计 4.14.1 系统目标设计系统目标设计 .1 系统设计原则系统设计原则 为了使本系统功能齐全,操作简便,并能最大限度的提高网站的质量,满足客户的 实际需要,在设计开发过程中遵循了如下原则: 1.实用性原则:本系统是模型系统,但要基本适合在线购物流程的实际需求,并能 够处理一些特殊情况,此外,尽可能预留空间,以便扩充功能。 2.准确性原则:对输入的相关信息建立检错机制,及时报错,使用户能够及时准确 的输入合法资料(如类型匹配,长度不超限等)。 3.易操作原则:要求设计的系统功能齐全,接
18、口友好,操作方便,必要地方进行提 示。 4.源程序可读性原则:为了便于以后扩充设计,维护人员读懂代码或以后的代码修 改,软件升级维护,尽可能做好代码注释工作。 5.优化原则:为了达到优化目的,合理的运用窗口,菜单,对象等继承,自定义用 户对象,事件,函数,减少不必要的重复性代码,使程序简洁明了,也方便将来的维护。 6.安全性原则 .2 设计思想设计思想 由于此网站系统旨在模拟真实的系统进行工作,尽量采用现有的软硬件环境,及先 进的管理系统开发方案,从而达到充分利用现有的资源,提高系统开发水平和应用效果 的目的。 (1) 系统应基本符合在线订阅的流程,满足在线订阅操作的需要,并达
19、到操作过程 中的直观,方便,实用,安全等要求。 (2) 系统采用先进 b/s 结构,browers(浏览器端)负责提供表达逻辑,显示用户界 面的信息和基本操作;server(服务器端)负责实现数据服务。 (3) 系统采用模块化程序设计方法,既便于系统功能地各种组合和修改,又便于未 参与开发的技术人员的补充与维护。 (4) 系统应具备数据库维护功能,及时根据客户要求进行数据的添加,删除,修改 等操作,能够对数据库表格进行备份。 (5) 合理的数据流设计,在应用系统设计中,相对独立的模块间以数据流连接,使 各模块间的藕合性较低,方便系统运行,提高系统安全性。 (6) 系统要求安全性极高,实时性强,
20、无故障时间长,网络通畅,各终端客户能熟 练的操作。 4.24.2 开发环境简介开发环境简介 .1 基于基于 b/sb/s 结构的应用系统简介结构的应用系统简介 当前,管理信息系统(mis)一般分为基于单机的集中式的 mis、基于 c/s 结构的 mis 以及基于 b/s 结构的 mis。 客户/服务器结构,即 client/server 结构,它的基本思想是应用程序或应用逻辑可 以根据需要划分在服务器和客户工作站中,它既不像集中式系统那样所有的应用程序都 在主机上执行,也不像文件服务器网络那样所有的应用程序都在客户端执行,它可以使 应用程序合理负担在服务器和客户端。 在客户/服
21、务器结构中,服务器应完成信息处理、数据管理、信息共享、安全管理、 以及一些更高级的管理。另外,还要处理来自客户端的数据访问请求和将结果反馈给用 户的工作。而客户端计算机是面向最终用户的,所以它的主要任务是提供友好的用户界 面,提交数据访问请求以及接收和处理数据库的返回结果,组织返回数据的输出(如生 成数据浏览窗口、生成数据报表和图形等) ,提供初步的数据验证功能等。 浏览器/服务器结构,即 browser/server 结构,它的基本思想与 c/s 结构相似,应 用程序或应用逻辑可以根据需要划分在服务器端和客户端中,于 c/s 结构相比,b/s 应用 程序更多的运行在服务器端,由服务器程序进行
22、处理,而客户端通常只处理一些界面设 置、数据验证及一些简单处理。 例如,在本报刊订阅系统中,将由 c#编写的服务器端程 序来处理客户端的请求,由 asp.net 的验证控件来处理客户端事件。 .2 .net.net frameworkframework .net framework 就是我们通常所说的.net 框架。.net 框架具有两个主要组件:公共 语言运行库和.net 框架类库。公共语言运行库是.net框架的基础。它是执行时管理代 码的代理,它提供内存管理、线程管理和远程处理等核心服务。.net framework 类库是 一个综合性的面向对象的可重用类型集合,用户可以使
23、用它开发多种应用程序,这些应 用程序包括传统的命令行或图形用户界面(gui)应用程序,也包括基于 asp.net 所提供 的创新的应用程序。托管代码是指以运行库为目标的代码,而不以运行库为目标的代码 称非托管代码。 .net 框架也可由非托管组件承载,这些组件将公共语言运行库加载到它们的进程中 并启动托管代码的执行,从而创建一个可以同时利用托管和非托管功能的软件环境。 (1)公共语言运行库() 公共语言运行库管理内存、线程执行、代码执行、代码安全验证、编译、以及其他 系统服务。这些功能是在公共语言运行库上运行的托管代码所固有的。 运行库强制实施代码安全访问。它可由高性能的服务器端应用程序承载。
24、 (2)net framework 类库() .net framework 类库是一个与公共语言运行库紧密集成的可重用的类型集合。该类 库是面向对象的、并提供用户自己的托管代码,可从中导出功能的类型。可以用.net framework 支持的任何一种语言来访问类库。 .3 asp.netasp.net asp.net 是一种用于创建基于 web 的应用程序的编程模型。从本质上来说运行时和. net framework 类库集可以用于创建动态 web 页。它需要在 web 服务器的环境中运行,例 如 microsoft internet information server(ii
25、s) ,并且根据服务浏览器请求指示在服 务器上执行程序。与直接由 web 服务器提供的静态 html 不同的是,asp.net 页面实际上 是在服务器上执行以后再产生结果的。页面的最后生成也许是由许多不同的指令和/或数 据源构造的。asp.net 页面是以.aspx 扩展名存储的。asp.net 只是.net framework 的一 部分,所以 asp.net 页面可以利用这个框架提供的所有服务,包括联网,数据访问、安 全以及更多其他服务。asp.net 还在 web 编程中引入了一些独特的新技术,可以在典型的 动态服务器页面上极大地改善开发模式: 语言独立性因为 asp.net 是.net
26、 framework 的一部分,所以可以是用自己选择的 语言来构建程序。 此外其中的事件驱动编程模式,服务器控件都得到了大大的改善。 .4 visualvisual studiostudio 2005(vs2005)2005(vs2005) visual studio.net 是.net 最佳的开发工具。visual studio.net 是一套完整的开 发工具,用于生成 asp.net web 应用程序等。 vs 不是开发 c#应用程序所必须的,但使用它可以使任务更简单一些。可以在标准的 文本编辑器中处理 c#源代码文件,在使用命令行应用程序(.net framework 的
27、一部分) 把代码编译到装配件中。 vs 有如下等等功能: vs 可以自动执行编译源代码的步骤,同时可以完全控制重写它们时应使用的任何 选项。 vs 文本编辑器可以配合 vs 支持的语言(包括 c#) ,这样就可以智能检测错误, 在输入代码时给出合适的推荐代码。 vs 包括许多可视化和导航工程中元素的强大工具,他们可以是 c#源文件代码, 也可以是其他资源,例如位图图像或声音文件。等等。 .5 sqlsql serverserver 数据库介绍数据库介绍 sql server 是一个具备完全 web 支持的数据库产品,提供了对可扩展标记语言 (xml) 的核心支持以及在 inte
28、rnet 上和防火墙外进行查询的能力,提供了以 web 标准 为基础的扩展数据库编程功能。丰富的 xml 和 internet 标准支持允许使用内置的存储 过程以 xml 格式轻松存储和检索数据。具有使用方便、可伸缩性好与相关软件集成程度 高等优点。 sql server 提供强大的开发工具和各类开发特性,在大大提高开发效率的同时,进 一步拓展应用空间,带来新的商业应用机遇。例如,xml 数据库与 web service 的支持将 使您的应用实现 internet 数据互联,.net 集成极大的扩展了开发空间,异构数据集成、 service broker 使您的数据和其它应用无缝集成,各种新数
29、据类型和 t-sql 扩展带来了 诸多灵活性。c#、vb.net、xquery、xmla、ado.net 2.0、smo、amo 等都将成为 sql server 数据平台上开发数据相关应用的有力工具。 在数据库应用系统开发之前,对开发数据库的基本概念应当了解,对数据库的结构、 开发数据库应用程序的步骤、开发体系及方法都应当有相当清晰的了解和认识。数据库 应用系统开发的目标是建立一个满足用户长期需求的产品。开发的主要过程为:理解用 户的需求,然后,把它们转变为有效的数据库设计。把设计转变为实际的数据库,并且 这些数据库带有功能完备、高效能的应用。数据库技术在计算机软件邻域研究中一直是 非常重要
30、的主题,产生于 60 年代,30 多年来数据库技术得到了迅速发展,并已形成较为 完整的理论体系和一大批实用系统。并且,近年来,随着 world wide web(www)的猛增及 internet 技术的迅速发展,使得数据库技术之时成为最热门技术之一。用户数据目前表 明,大多数主流数据库管理系统把用户数据表示为关系。现在把关系看作数据表。表的 列包含域或属性,表的行包含对应业务环境中的实体的记录。并非所有的关系都同样符 合要求,有些关系比其它关系更结构化一些。 4.34.3 系统系统功能分解功能分解 结合以上的分析,下面我们对报刊发行系统的功能模块进行分解。本系统应具有的 功能模块如下: 前台
31、客户功能可以概括为以下几点: 报刊信息模块: 包括报刊信息的分类浏览,查询搜索等; 用户信息管理模块: 处理用户注册、登陆验证、密码修改、找回密码; 购物车模块: 存放选中的报刊、修改报刊订阅数量; 订单模块: 此模块中的信息由购物车结帐时产生; 后台管理者功能可以概括为以下几点: 客户管理: 客户个人资料信息的管理,包括查询和修改客户信息; 报刊管理: 添加、修改、删除报刊信息; 订单管理: 处理客户订单、查询订单; 在本系统中,主要完成的是前台客户的功能。 报刊发行系统 前台客户 后台管理 报刊信息 用户信息管理 购物车 订单 客户管理 报刊管理 销售管理 图 4.1 系统功能模块分解的层
32、次图 4.44.4 用户功能用户功能模块模块 该功能中主要包括报刊信息的浏览,用户注册和登陆三个板块。 .1 信息浏览信息浏览 系统允许用户匿名进入,但是权限受到限制,用户只可以查看报刊的信息不可以将 报刊添加到购物篮。如果匿名登陆用户试图将报刊添加到购物篮,系统将会给出提示。 .2 用户注册用户注册 用户在主页中点击注册按钮会进入注册的页面,页面中用户需要输入相关的信息, 其中用户名和密码是必须要填写的,当用户没有正确填写的时候会弹出提示对话框,提 醒用户。用户输入完成后,点击注册按钮提交自己的信息,如果没有错误,系统就会跳 转到主页,让用户继续浏览查看信息。
33、如果出现错误就会提示用户错误。例如,用户没 有输入用户名就点击了提交,系统就会提示用户,输入用户名。两次密码输入的不一致, 系统就会提示用户密码输入错误等等。用户注册后,提交的信息全部存放在 users 表中。 用户注册信息流程图如图 4.2: y n y n 输入信息 注册成功 用户名存在否 密码验证 图 4.2 注册流程图 系统的注册界面如图 4.3 所示: 图 4.3 注册界面 部分主要代码如下: protected void rege_click(object sender, eventargs e) sqlconnection regeconn = new sqlconnection
34、(); regeconn.connectionstring=configurationmanager.connectionstringssqlconn. connectionstring; regeconn.open(); string username = test(username.text); string userpwd = test(userpwd.text); string userpwd2 = test(userpwd2.text); string question = test(frage.text); string answer = test(antwort.text); s
35、tring email = test(email.text); string cmd = insert into users values (+username+,+userpwd+,+question+,+answer+,+email+,); sqlcommand inscmd = new sqlcommand(cmd,regeconn); sqlcommand checkcmd =new sqlcommand(select count(*) from users where username = +username+,regeconn); int count = convert.toint
36、32(checkcmd.executescalar(); .3 用户登陆用户登陆 用户在主页里面可以看到登陆的 linkbutton,当用户点击时就会进入登陆的页面, 在登陆的页面里面输入用户的姓名和密码。当用户点击登陆的 button 后,系统就会在数 据库中查找相应的信息如果存在,就登陆成功,并返回首页,如果没有相应的信息就提 示用户登陆失败。 用户登陆流程如图 4.4 所示: y n 登陆成功 登陆失败 输入信息 信息正确否 图 4.4 用户登陆流程图 用户登陆界面如图 4.5 所示: 图 4.5 用户登陆界面 部分后台代码如下: protected void login
37、1_click(object sender, eventargs e) sqlconnection loginconn = new sqlconnection(); loginconn.connectionstring = configurationmanager.connectionstringssqlconn.connectionstring; loginconn.open(); string username = username.text; string userpwd = userpwd.text; username = test(username); userpwd = test(
38、userpwd); sqlcommand cmd = new sqlcommand(select count(*) from users where username = + username + and userpwd = + userpwd + , loginconn); int count = convert.toint32(cmd.executescalar(); if (username = | userpwd = ) page.clientscript.registerstartupscript(this.gettype(), , alert(用户名密码不 能为空!_!);, tr
39、ue); else if (count 1) page.clientscript.registerstartupscript(this.gettype(), , alert(用户名或 密码错误!);, true); else sessionloginname = username; response.redirect(default.aspx); loginconn.close(); 4.54.5 用户订阅功能用户订阅功能 用户进入页面后,可以直接查找自己想要搜索的报刊。在搜索栏中直接输入报刊名 称,就会将对应的报刊显示给用户。允许用户匿名进入页面。 .1 添加到购物车添加到购
40、物车 用户在查看报刊信息时,可通过“加入购物车”按钮来添加报刊到购物篮。在加入 购物车的时候就会对用户的身份进行验证,如果用户没有登陆,就会提示用户登陆,并 且加入购物车失败。如果用户登陆就会提示用户加入购物车成功。 用户将购买报刊加入购物车流程如图 4.6 所示: n y 添加报刊 登陆验证 添加成功 登录 图 4.6 用户登陆流程图 图 4.7 用户订阅主界面 后台主要代码: protected void gridview1_selectedindexchanging(object sender, gridviewselecteventargs e) if (sessionloginnam
41、e != null) sessionpaperid = gridview1.rowse.newselectedindex.cells0.text; string paperid = sessionpaperid.tostring(); sqlconnection con = new sqlconnection(); con.connectionstring = configurationmanager.connectionstringssqlconn.connectionstring; con.open(); string name = sessionloginname.tostring();
42、 sqlcommand papid = new sqlcommand(select count(*) from shoppingbag where paperid = + paperid + and username = + name + , con); int count = convert.toint32(papid.executescalar(); if (count 0) sqlcommand check = new sqlcommand(select count(*) from shoppingbag where bagid = + j + , con); count1 = conv
43、ert.toint32(check.executescalar(); if (count1 0) j+; sqldataadapter paperdata = new sqldataadapter(); paperdata.selectcommand = new sqlcommand(select * from paperdata where paperid = + paperid1 + , con); dataset ds = new dataset(); paperdata.fill(ds, paper); datatable dt = ds.tablespaper; datarow dr
44、 = dt.rows0; string a = new string5; for (int i = 0; i 5; i+) ai = dri.tostring(); string name1; if (sessionloginname != null) name1 = sessionloginname.tostring(); sqlcommand ins = new sqlcommand(insert into shoppingbag (bagid,username, paperid, papername, sort, price, timelimited, num) values( + j
45、+ , + name + , + a0 + , + a1 + , + a2 + , + a3 + , + a4 + ,1), con); sqlcommand papid1 = new sqlcommand(select count(*) from shoppingbag where paperid = + paperid1 + and username = + name1 + , con); int count2 = convert.toint32(papid.executescalar(); if (count2 0) sqldataadapter sel = new sqldataada
46、pter(); sel.selectcommand = new sqlcommand(select * from paperdata where papername = +pname+,con); dataset ds = new dataset(); sel.fill(ds,paper); gridview1.datasource = ds.tablespaper; gridview1.databind(); else page.clientscript.registerstartupscript(this.gettype(), , alert(没有此报刊);, true); 4.5.34.
47、5.3 购物车中修改订阅数量购物车中修改订阅数量 用户可以在购物车中看到自己订阅的情况,在用户讲所要订阅的报刊加入购物车的 时候,默认的数量是 1,但是用户可以在购物车中修改自己订阅的数量。并此在购物车中 算出了总金额,总金额同样也会随着数量的更改而更改。 部分后台代码如下: protected void checkinf_click(object sender, eventargs e) sqlconnection con = new sqlconnection(); con.connectionstring = configurationmanager.connectionstringss
48、qlconn.connectionstring; con.open(); int rowcount = gridview1.rows.count; gridviewrow grv; int num; string id; textbox numtextbox; for (int i = 0; i rowcount; i+) grv = gridview1.rowsi; numtextbox = (textbox)grv.findcontrol(num); id = convert.tostring(gridview1.datakeysi.value); if (int32.tryparse(n
49、umtextbox.text, out num) sqlcommand updt = new sqlcommand(update shoppingbag set num = +num+where username = +username.text+and paperid =+id+, con); updt.executenonquery(); sqldataadapter sum = new sqldataadapter(); sum.selectcommand = new sqlcommand(select sum(price*num) from shoppingbag where user
50、name = + sessionloginname.tostring() + , con); dataset ds1 = new dataset(); sum.fill(ds1, sum); datatable dt1 = ds1.tablessum; datarow dr1 = dt1.rows0; totalprice.text = dr10.tostring(); else page.clientscript.registerstartupscript(this.gettype(), , alert(输入不合 法!);, true); con.close(); 4.64.6 订单生成和退
51、订功能订单生成和退订功能 .1 订单的生成订单的生成 用户在购物车中修改好了自己的信息后,就可以进入用户信息确认的页面,此页面 要求用户输入收货人的姓名,地址,联系方式,当用户正确的输入后就点击 button 后就 会生成一张订单,在此订单中,用户还可以再次确认自己的信息,进行修改。当用户确 定后,就会提交订单。 部分后台代码如下: protected void sure_click(object sender, eventargs e) wordchange chg = new wordchange(); string name = chg.change(username.t
52、ext); string tel = chg.change(tel.text); string addr = chg.change(address.text); sqlconnection con = new sqlconnection(); con.connectionstring = configurationmanager.connectionstringssqlconn.connectionstring; con.open(); sqlcommand del = new sqlcommand(delete from list, con); del.executenonquery();
53、sqldataadapter inf = new sqldataadapter(); inf.selectcommand = new sqlcommand(select username,paperid,price,num from shoppingbag where username = + sessionloginname + , con); dataset ds = new dataset(); inf.fill(ds, inf); datatable dt = ds.tablesinf; int count = gridview1.rows.count; string, a = new
54、 stringcount,4; for (int j = 0; j count; j+) datarow dr = dt.rowsj; for (int i = 0; i 4; i+) aj,i = dri.tostring(); for (int j = 0; j 0) sqlcommand check = new sqlcommand(select count(*) from list where listid = + k + , con); count1 = convert.toint32(check.executescalar(); if (count1 0) k+; sqlcomma
55、nd inslist = new sqlcommand(insert into list values( + k + , + aj, 0 + , + aj, 1 + , + aj, 2 + , + aj, 3 + ), con); if (name != else page.clientscript.registerstartupscript(this.gettype(), , alert(所有信息 必须填写!);, true); ; int infid = 1; sqlcommand check1 = new sqlcommand(select count(*) from userinf w
56、here userinfid = +infid+, con); int count2 = convert.toint32(check1.executescalar(); if (count2 0) sqlcommand check2 = new sqlcommand(select count(*) from userinf where userinfid = + infid + , con); count2 = convert.toint32(check2.executescalar(); if (count2 0) infid+; sessioninfid = infid; sqlcomma
57、nd insinf = new sqlcommand(insert into userinf values( + infid + , + name.text + , + name + , + tel + , + addr + ), con); insinf.executenonquery(); response.redirect(listinf.aspx); .2 订单的退订订单的退订 当用户提交了订单后,会自动生成一个订单号,因为同一个用户可以有很多个订单, 所以,当用户要退订的时候就必须输入订单号。 部分后台代码如下: protected void sure_click(o
58、bject sender, eventargs e) sqlconnection con = new sqlconnection(); con.connectionstring = configurationmanager.connectionstringssqlconn.connectionstring; con.open(); sqldataadapter sel = new sqldataadapter(); sel.selectcommand = new sqlcommand(select list.username, list.paperid, list.num, userinf.n
59、ame, userinf.telephone, userinf.address from list cross join userinf where (list.username = + sessionloginname.tostring() + ) and (userinf.username = + sessionloginname.tostring() + ), con); dataset ds = new dataset(); sel.fill(ds,listinf); datatable dt = ds.tableslistinf; a.listid = 1; int count2;
60、do sqlcommand chk = new sqlcommand(select count(*) from listinf where listid = + a.listid + , con); count2 = convert.toint32(chk.executescalar(); if (count2 0) a.listid+; while (count2 0); int count = gridview1.rows.count; string, b = new stringcount,6; for (int j = 0; j count; j+) datarow dr = dt.r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论