您的当前位置:首页正文

网上商城购物系统毕业设计论文

来源:九壹网
分类号

郑州电力高等专科学校

毕 业 设 计〔论 文〕

题 目 Market网上商城购物系统 并列英文题 Market Online Sales System

系 部 电子信息系 专业 计算机应用技术 姓 名 李蓓蓓 班级 计算机0801 指导教师 张慧丽 职称 讲师 论文报告提交日期 2011年6月8日

郑州电力高等专科学校

页脚下载后可删除,如有侵权请告知删除!

摘要

随着21世纪的到来,信息化时代已经向我们走来,这个时代的最重要的标志就是计算机的广泛应用。如今社会上计算机应用已经到达非常普及的程度,随处都可以见到计算机的身影。我们也熟悉了在社会各处遇见它们的环境,家庭娱乐,学校的机房,金融场所,以及到处可见的网吧,计算机如水银般无孔不入。

近年来,随着网络技术和Internet的迅速开展,基于Browser/Server构造的Web应用,因其具有易用性、通用性和良好的可扩展性等优点而开展迅速,正逐渐成为实现企业管理信息系统的主流技术。而开发一个Web应用系统是一项浩大的工程,要求设计者能够提出合理的系统架构。合理的系统架构可以减少开发及维护系统所用的资源,提升工作效率。因此,在Web企业级应用系统开发过程中,设计模式的选定和应用系统架构的设计是一个重要环节。

本系统运用平时所学ASP.NET一些根本技术,自定义控件,ADO.NET技术,实现了market网上购物商城的前台页面浏览,用户注册登录,用户下订单购物,购物车,后台的用户、物流、订单等管理的功能。到达了毕业设计的要求,同时锻炼了自己的动手能力。

页脚下载后可删除,如有侵权请告知删除!

Abstract

With the advent of the 21st century, information age has come to us, this era is the most important symbol of the extensive application of computers. Now the community has reached a very popular computer application degree, the computer can be seen everywhere on the scene. We are also familiar encounter them everywhere in the social environment, family entertainment,

school room, financial sites, and Internet cafes are everywhere, as

all-pervasive computer such as mercury.

In recent years, with the network technology and the rapid development of Internet-based Browser / Server structure of Web applications, because of its

ease of use, versatility and good scalability advantages of the rapid development of the enterprise is becoming a management information mainstream system. The development of a Web application system is a massive undertaking, requiring designers to a reasonable system architecture. Reasonable system architecture can reduce development and maintenance of the system resources used to enhance work efficiency. Therefore, in the Web

enterprise application development, design patterns and application of

selected system architecture design is an important part.

The system usually learned using some basic techniques ASP.NET, custom controls, ADO.NET technology to realize the future of online shopping mall market page views, user registration, login, user order shopping, shopping cart, the background of the user, the logistics , order management functions. Meet the design requirements for graduation, while exercising their practical ability

页脚下载后可删除,如有侵权请告知删除!

目录

第一章 我国电子商务的现状和开展前景 ............................................................... - 1 - 第二章 系统需求分析................................................................................................................. - 5 -

2.1 系统功能需求 ............................................................................................................................. - 5 - 2.2 系统设计思路 ............................................................................................................................. - 6 -

2.2.1 功能设计 ........................................................................................................................ - 6 - 2.2.2 构造设计 ........................................................................................................................ - 7 -

第三章 数据库设计 ....................................................................................................................... - 9 -

3.1 数据库各表关系图 .................................................................................................................... - 9 - 3.2 局部表字段设计及注释 .......................................................................................................... - 9 -

第四章 系统实现主要技术介绍 ...................................................................................... - 12 -

内置对象 ............................................................................................................................................. - 12 - 自定义用户控件................................................................................................................................ - 15 - ................................................................................................................................................................ - 16 -

第五章 系统局部功能展示及其实现代码 ............................................................. - 20 -

5.1 局部界面展现 ........................................................................................................................... - 20 - 5.2 新用户注册和用户登陆 ........................................................................................................ - 23 - 5.3 后台管理功能 ........................................................................................................................... - 28 - 5.4 随机产生验证码代码 ............................................................................................................. - 30 - 5.5 数据访问核心类局部代码 .................................................................................................... - 31 -

第六章 总结 ....................................................................................................................................... - 35 - 参考文献 ................................................................................................................................................ - 36 - 附录 ............................................................................................................................................................. - 37 -

页脚下载后可删除,如有侵权请告知删除!

第一章 我国电子商务的现状和开展前景

电子商务作为现代效劳业中的重要产业,有“朝阳产业、绿色产业〞之称,具有“三高〞、“三新〞的特点。“三高〞即高人力资本含量、高技术含量和高附加价值;“三新〞是指新技术、新业态、新方式。人流、物流、资金流、信息流“四流合一〞是对电子商务核心价值链的概括。电子商务产业具有市场全球化、交易连续化、本钱低廉化、资源集约化等优势。

电子商务按照参与主体和客户的不同,可分为多种形式,但目前看,B2B、B2C、C2C是主要形式,其中B2B是最主要的应用形式。按照贸易主导主体,可分为销售方控制型、购置方控制型和中立第三方控制型。

〔一〕全球电子商务开展概况

纵观全球电子商务市场,各地区开展并不平衡,呈现出美国、欧盟、亚洲“三足鼎立〞的局面。

美国是世界最早开展电子商务的国家,同时也是电子商务开展最为成熟的国家,一直引领全球电子商务的开展,是全球电子商务的成熟兴旺地区。欧盟电子商务的开展起步较美国晚,但开展速度快,成为全球电子商务较为领先的地区。亚洲作为电子商务开展的新秀,市场潜力较大,但是近年的开展速度和所占份额并不理想,是全球电子商务的持续开展地区。

全球B2B电子商务交易一直占据主导地位,2002年至今,呈现

页脚下载后可删除,如有侵权请告知删除!

持续高速增长态势,2007年全球B2B交易额到达8.3万亿美元,预计在未来几年将保持40%以上的增长率,到2021年B2B交易额将到达26万亿美元,比2002年增长30多倍。

〔二〕我国电子商务开展概况 1、我国电子商务的现状

我国电子商务开展呈现典型的块状经济特征,东南沿海属于较为兴旺地区,北部和中部属于快速开展地区,西部那么相对落后。

自2005年以来,我国电子商务市场交易额稳定增长,2007 年我国电子商务市场规模突破17000亿元。未来3年,仍是我国电子商务投资规模持续增长和爆发的时期,我国电子商务投资市场将迎来新一轮的开展高潮。一方面,2007年国家“十一五〞电子商务开展规划的公布标志着政府推动电子商务的总体布局已经形成;另一方面,电子商务在企业的应用成效以及对经济、社会开展的推动作用日益明显。

2007年我国B2B 电子商务交易额约为12500亿元,比2006年增长25.5%。目前B2B 市场的集中度较高,在综合类网站中,阿里巴巴已占近乎7成份额。2007年我国B2C网站总收入约为52.2亿元,同比增长33.5%。B2C是传统企业开展电子商务的主要形式,随着网络购物环境的好转以及企业〔特别是大中型企业〕电子商务化程度的提升,在总体规模上B2C 将会有一个长足的开展,并成为未来网购的主流。2007年我国C2C交易额约为410.4亿元,同比增长90%;C2C是目前我国网购的主要形式,但普及率还较低,不到网民总数的3成。

页脚下载后可删除,如有侵权请告知删除!

2、我国电子商务开展趋势

〔1〕电子商务的开展环境将不断完善,开展动力持续增强随着市场经济体制进一步完善,推进经济增长方式转变和构造调整的力度继续加大,开展电子商务的需求将会更加强劲。电子商务将被广泛应用于生产、流通、消费等各领域和社会生活的各个层面。这将促使全社会电子商务的应用意识不断增强,有关电子商务的政策、法律、法规将不断出台,电子商务开展的政策法律环境将不断完善。同时,也促使物流、信用、电子支付等电子商务支撑体系建立更全面的展开,从而使得电子商务开展的内在动力持续增强。

〔2〕电子商务应用将到达新的广度和深度随着?电子商务开展“十一五〞规划?的实施,电子商务在国民经济各部门中将得到进一步的推广和应用。电子商务交易额呈现稳定持续增长态势;在区域开展方面,长三角、珠三角和环渤海等东南沿海的电子商务在继续高速增长的同时,辐射力也逐渐提高,将促进东部和中西部地区之间的协调开展;在企业应用方面,在国家、各级政府的政策引导下,在电子商务效劳业的协助下,将促进企业由非支付型电子商务向支付型电子商务开展、协同电子商务的开展,深化企业应用水平。

〔3〕电子商务与产业开展深度融合不断加大,加速形成经济竞争新态势

在综合性电子商务网站已经占据综合类B2B领域绝大局部市场的情况下,越来越多的行业电子商务网站已经在综合网站市场之外寻求专业化细分领域的开展。电子商务正在与传统产业进展深入的融

页脚下载后可删除,如有侵权请告知删除!

合,两者相互促进,协调开展。

〔4〕电子商务效劳业蓬勃开展,逐步成为国民经济新的增长点随着企业供给链电子商务、国际电子商务的开展,将带动电子商务效劳业的开展,围绕电子商务效劳形成的从低端技术环节到中端支撑环节再到高端应用环节的电子商务效劳链在我国结点饱满,一个全新视角的电子商务效劳业群正在形成,将成为未来国民经济新的增长点。

〔5〕移动电子商务正成为电子商务新的应用领域2006年以来,移动通讯商,密切关注移动商务企业市场,中国移动和银联联手推出的“手机钱包〞,完成移动电子商务付费的个性化效劳。基于移动支付的支持,移动电子商务正成为电子商务新的应用领域。

页脚下载后可删除,如有侵权请告知删除!

第二章 系统需求分析

2.1 系统功能需求

21世纪以来,人类经济高速开展,人们生活发生了日新月异的变化,特别是计算机的应用及普及到经济和社会生活的各个领域。使原本的旧的管理方式越来越不适应现在社会的开展。许多人还停留在以前的逛街去买需要的用品,网上商城为大家带来了极大地方便。我所开发的market网上商城购物系统根本上实现了在线购物的需求,采用Microsoft Visual Studio 2021作为开发平台,使用SQLServer2005作为后台数据库。本网上书店在线销售系统是基于B/S架构,本网站系统的开发主要是方便用户足部出户就可以购置商品,减少供给商店面费用。

本系统共有三类用户:

访客:指没有登陆权限〔主要指网络用户〕,以匿名用户的身份访问系统网站。此类用户主要有浏览系统信息、查看商品信息,注册成为会员。把本网站设为首页,添加到收藏夹,联系管理员等操作。浏览的内容包括:商品信息、商品分类信息。

会员:这类用户拥有游客的所有权限;会员可以注册成为会员,并根据会员ID和密码登陆系统,登陆之后可以对更改自己的信息但会员ID做为数据库表主键不能修改。会员登陆后可以查看商品信息,查看各种分类商品信息,将商品添加到购物车中,修改购物车中商品数量,或是删除某些不想要的商品。

页脚下载后可删除,如有侵权请告知删除!

系统管理员:系统管理员主要负责管理着系统后台信息;主要有订单管理,商品管理,会员管理,物流管理和系统管理。订单管理有未确认订单和已确认订单管理,未付款订单。商品管理主要有商品添加和商品管理,商品类别添加和商品类别管理。会员管理主要有添加管理员和管理管理员,管理会员。物流系统主要有支付方式添加和管理,配送方式添加和管理,配送地点添加和管理。系统管理主要是上传管理。

因此,本系统主要功能是对商品进展管理规划,方便会员购置。

2.2 系统设计思路

功能设计

商城前台:功能强大,操作方便。

前台作为与用户直接交互的界面,在考虑功能的同时,也考虑了操作的简洁和方便,目的是让大多数不懂电脑操作的客户也能轻松地享受网上购物带来的极大方便。主要包括以下几个模块: ① 商品信息和类别展示 ② 用户注册和登录 ③ 已登录用户信息修改 ④ 购物车管理 ⑤ 网站活动信息

书店后台:本系统后台在考虑书店管理操作简便的同时,提供了强大的书店管理模式。主要包括以下几个模块:

① 订单管理

页脚下载后可删除,如有侵权请告知删除!

② 商品管理 ③ 用户管理 ④ 物流管理 ⑤ 系统管理

构造设计

① 参与者汇总

游 者:查看商品信息和注册成为会员。

会 员:查看商品信息和购置商品,修改个人信息等。 管理员:管理商品信息,管理用户信息等。 ② 前台流程:用户登录用户登陆

用户注册→用户登录→查看图书信息→添加图书到购物车→支付

③ 后台流程:

管理员登录→订单管理、图书管理、用户管理、图片管理→退出 网上购物系统为顾客提供一个类似于超级市场的网络界面。通过网络界面,用户登录后执行各种操作,没有注册的用户可以查找商品信息,查看首页面的最受欢送商品等信息。

构造设计简述:开场我本想用三层构造搭建网站,但是在进一步考虑之后发现系统的逻辑比拟简单,并不一定要将业务逻辑单独别离出来。于是将三层合并为两层开发,即界面层和业务逻辑层合二为一,将界面层和业务逻辑层归为一层,业务逻辑的处理放在页面的后台代码中,这样做的好处之一是简化开发过程,之二是加快数据访问速度。

页脚下载后可删除,如有侵权请告知删除!

当然这样做也带来了一些不便,首先是开发层次不如三层那样清楚,界面数据和业务逻辑混杂,然后是给网站的后期维护以及修改带来一定的不便,不如三层构造修改起来容易。由于作者在毕业设计期间还在专心准备专升本的课程学习,加上时间比拟紧促,权衡利弊,选择将三层合并为两层开发。

页脚下载后可删除,如有侵权请告知删除!

第三章 数据库设计

3.1 数据库各表关系图

图3-1

3.2 局部表字段设计及注释

表3-1tb_GoodsInfo

字段名

GoodsID ClassID GoodsName

GoodsIntroduce GoodsBrand GoodsUnit GoodsWeight GoodsUrl MarketPrice MemberPrice Isrefinement IsHot AddDate IsDiscount

数据类型 Bigint Bigint Varchar Ntext Varchar Varchar Float Varchar Float Float Bit Bit

Datetime Bit

长度 50 50 10 50

主外键 主键 外键 无 无 无 无 无 无 无 无 无 无 无 无

字段说明 商品标识 商品类型标识 商品名称 商品介绍 品牌 单位 重量 图片链接 单价 会员价 是否精品 是否热销 添加日期 是否打折

备注 非空 非空 可空 可空 可空 可空 可空 可空 可空 可空 可空 可空 可空 可空

商品信息表:在添加商品和在前台显示商品详细信息时用到该表,实现了商品的添加和显示详细信息的功能。

页脚下载后可删除,如有侵权请告知删除!

表3-2tb_Class

字段名

数据名

长度 50 50 主外键 主键 无 无 字段说明 类型标识 类型名称 图片链接 备注 非空 可空 可空 ClassID Bigint ClassName Varchar CategoryUrl Varchar 商品类型表:主要用于在添加商品类别的时候用到该表,把添加的商品类型存储到该表中,完成商品类型的添加和调用功能。

表3-3 tb_OrderInfo 字段名 OrderID OrderDate GoodsFee TotalPrice ShipFee ShipType PayType MemberID ReceiverName ReceverPhone IsConfirm IsPayment

IsConsignment IsPigeonhole

ReceiverPostCode ReceiverAddress ReceiverEmails 数据名 Bigint Datetime Float Float Float Int Int Int

Varchar(50) Varchar(50) Bit Bit Bit Bit Char Varchar Varchar 长度 10 200 50 主外键 主键 无 无 无 无 无 无 外键 无 无 无 无 无 无 无 无 无 字段说明 订单标识 订单日期 货品总额 总金额 运费

运送类型标识 支付类型 会员标识 收货人姓名 收货人 是否确认 是否付款 是否发货 是否归档 地址 邮箱 备注 非空 可空 可空 可空 可空 可空 可空 可空 可空 可空 可空 可空 可空 可空 可空 可空 可空 订单信息表:主要在管理订单的时候用到该表完成订单的管理功能。

表3-4 tb_Member 字段名

MemberID Name Sex

PassWord TrueName Questions Answers Phonecode Emails City Address PostCode

AdvancePayment LoadDate

数据名 Bigint Varchar Bit Varchar Varcahr Navarchar Navarchar Varchar Varchar Varchar Varchar Char Float Datetime

长度 50 50 50 50 50 20 50 50 200 10

主外键 主键 无 无 无 无 无 无 无 无 无 无 无 无 无

字段说明 会员标识 用户名 性别 密码 真实姓名 验证问题 答案 号码 邮箱 所在城市 地址 消费 登陆日期

备注 非空 可空 可空 可空 可空 可空 可空 可空 可空 可空 可空 可空 可空 可空

页脚下载后可删除,如有侵权请告知删除!

会员信息表:该表存储了注册的会员信息,在会员登录和合结账的时候会调用到该表。

表3-5tb_Admin 字段名 AdminID Admin PassWord 数据名 Bigint Varchar Varchar 长度 50 50 主外键 主键 无 无 字段说明 管理员标识 用户名 密码 备注 非空 可空 可空 管理员信息表:主要用于后台管理员登录的时候调用该表完成管理员的登录功能。

页脚下载后可删除,如有侵权请告知删除!

第四章 系统实现主要技术介绍

(1) Request 对象:将用户端输入的数据传递给效劳器。 (2) Response 对象:向客户端输出数据。Response 和Request 可以说是一对孪生兄弟,一个负责收集,另一个负责输出。

(3) Application 对象:可以供全体应用程序使用。使用Application 对象不仅可以在给定的应用程序的所有用户之间共享,而且可以在效劳器运行期间持久地保存数据。

(4) Session 对象:供特定用户会话使用。Session 对象与Application 对象的作用相近,使用Session 对象可以存储特定的用户会话所需的信息。Application 与Session 的区别在于,网上的用户都可以使用Application 的对象,而Session 只是针对一个特定的客户而已。

(5) Server 对象:提供对效劳器上的方法和属性的访问,其中大多数方法和属性是作为实用程序的功能效劳的。最常用的方法是创立ActiveX 组件的实例(Server.CreateObject)。其他方法用于将URL 或HTML 编码成字符串,将虚拟路径映射到物理路径以及设置脚本的超时期限。

QueryString 集合

QueryString 可以获取标识在URL 后面的所有返回变量及其值。

页脚下载后可删除,如有侵权请告知删除!

在搜索引擎里面经常用这种方法。例如,当用户端送出如下请求时,QueryString 将会得到name 和age 两个变量的值。

在上面的例子中,href="queryString.asp"指出了链接的地址,“?〞后面有两个变量name 和age,用&把它们连接起来,它们的值分别是wuerlang 和36。

Request 对象数据集合

集合(collection)指的是一群放在一起的值(Value),例如当浏览者输入网页窗体数据并单击【提交】按钮之后,窗体字段的名称与浏览者输入的数据就会以一个Form 形式的集合传给 Web 效劳器。例如在ASP 对象的QueryString 集合中,假设要取得username 字段或

userage 字段的值,可以分别写成

Request.QueryString(\"username\")

Request.QueryString(\"userage\") 。假设是在Form 集合中, 那么可

Request.form(\"username\")

Request.form(\"userage\")。

Request 对象提供了5个集合:Form、QueryString、Cookies、ServerVariables 和ClientCertificate。Request 对象把客户信息保存在几个集合中,供ASP 使用,当不指定集合名时,以QueryString、Form、Cookie、ClientCertificate、ServerVariable 的顺序搜索所有集合,当发现第一个匹配的变量时,就认定它是要引用的成员。当然,为了提高效率,最好指定是哪个集合中的成员。

页脚下载后可删除,如有侵权请告知删除!

2. Response.Redirect 方法

Redirect 方法使浏览器立即重定向到程序指定的URL。这也是一种经常用到的方法,这样程序员就可以根据客户的不同响应,为不同的客户指定不同的页面或根据不同的情况指定

不同的页面。一旦使用了Redirect 方法,任何在页中显式设置的响应正文内容都将被忽略。然而,此方法不向客户端发送该页设置的其他 标题,将产生一个将重定向URL

作为链接包含的自动响应正文,其语法格式如下: Response.Redirect URL Session对象

可以使用 Session 对象存储特定的用户会话所需的信息。当用户在应用程序的页之间跳转时,存储在Session 对象中的变量不会去除,而用户在应用程序中访问页面时,这些变量始终存在。当用户请求来自应用程序的Web 页时,如果该用户还没有会话,那么Web 效劳器将自动创立一个Session 对象。当会话过期或被放弃后,效劳器将终止该会话。通过向客户程序发送唯一的Cookie 可以管理效劳器上的Session 对象。当用户第一次请求ASP应用程序中的某个页面时,ASP 要检查 头信息,查看在报文中是否有名为ASPSESSIONID的Cookie 发送过来,如果没有,那么效劳器会启动新的会话,并为该会话生成一个全局唯一的值,再把这个值作为新ASPSESSIONID Cookie 的值发送给客户端。正是使用这种Cookie,可以访问存储在效劳器上的属于客户程序的信息。Session 对象最常

页脚下载后可删除,如有侵权请告知删除!

见的作用就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在Session 对象中。另外还经常被用在鉴别客户身份的程序中。要注意的是,会话状态仅在支持Cookie 的浏览器中保存,如果客户关闭了Cookie 选项,Session也就不能发挥作用了。

Session对象的主要用途是保存信息,当用户登录网站时,系统为其分配一个Session,只有当用户退出时,或者Session 生命周期完毕时,信息才会去除。

自定义用户控件

就其核心而言,ASP.NET是一种以如下方式定义的基于控件的构架:

·页是控件

·任何控件都可以包含子控件

·呈现控件时,先呈现本身的内容,然后反复呈现子控件的内容 这种构架类似于Win32API中的窗口构架。桌面本身是一个窗口〔好似Page〕,而且任何窗口都可以包含子窗口。呈现每个窗口时,首先呈现本身的内容,然后呈现子窗口的内容。在桌面上,窗口的呈现涉及在显示器上绘制像素,ASP.NET控件的呈现设计生成HTML,以填入 请求的局部相应。ASP.NET的控件构架是一种完全可扩展的框架,本章讨论用于构建自定义控件的技术,创立真正可重用的Web组件〔封装了表示和效劳器交互的细节〕。

asp.net中提供的增加内嵌效劳器控件的功能,使你能够屡次的

页脚下载后可删除,如有侵权请告知删除!

轻松增加你所定义的各种控件。事实上,对于表单等各种控件,可以不用更改或者稍微更改一下就可以屡次使用的。

在通常情况下,我们把一个用作效劳器控件的web表单统称为用户控件,我们用一个.ascx为后缀的文件保存起来,这样的保存使得它不被当作一个web表单来运行,当我们在一个.aspx文件中使用它时,我们用Register方法来进展调用,假设我们有一个文件名为saidy.ascx的文件,我们用下面的语句来调用它: <%@ Register TagPrefix=\"Acme\" TagName=\"Message\" Src=\"saidy.ascx\" %> 上面的TagPrefix标记为用户控件确定个唯一的名字空间,TagName为用户控件确定一个唯一的名称,你也可以用其它的名字代替“Message“,Src为确定所包含的文件名称和路径。这样,我们就可以用下面的语句来调用它了:

它提供了平台互用性和可伸缩的数据访问。ADO.NET增强了对非连接编程模式的支持,并支持RICH XML。由于传送的数据都是XML格式的,因此任何能够读取XML格式的应用程序都可以进展数据处理。事实上,承受数据的组件不一定要是ADO .NET组件,它可以是基于一个Microsoft Visual Studio的解决方案,也可以是任何运行在其它平台上的任何应用程序。

页脚下载后可删除,如有侵权请告知删除!

ADO.NET是一组用于和数据源进展交互的面向对象类库。通常情况下,数据源是数据库,但它同样也能够是文本文件、Excel表格或者XML文件。

ADO.NET允许和不同类型的数据源以及数据库进展交互。然而并没有与此相关的一系列类来完成这样的工作。因为不同的数据源采用不同的协议,所以对于不同的数据源必须采用相应的协议。一些老式的数据源使用ODBC协议,许多新的数据源使用OleDb协议,并且现在还不断出现更多的数据源,这些数据源都可以通过.NET的ADO.NET类库来进展连接。

ADO.NET提供与数据源进展交互的相关的公共方法,但是对于不同的数据源采用一组不同的类库。这些类库称为Data Providers,并且通常是以与之交互的协议和数据源的类型来命名的。

包含的类

1、Connection 类

和数据库交互,你必须连接它。连接帮助指明数据库效劳器、数据库名字、用户名、密码,和连接数据库所需要的其它参数。Connection对象会被Command对象使用,这样就能够知道是在哪个数据源上面执行命令。

与数据库交互的过程意味着你必须指明想要执行的操作。这是依靠Command对象执行的。你使用Command对象来发送SQL语句给数据库。Command对象使用Connection对象来指出与哪个数据源进展连

页脚下载后可删除,如有侵权请告知删除!

接。你能够单独使用Command对象来直接执行命令,或者将一个Command对象的引用传递给DataAdapter,它保存了一组能够操作下面描述的一组数据的命令。

2、Command对象

成功于数据建立连接后,就可以用Command对象来执行查询、修改、插入、删除等命令; Command对象常用的方法有ExecuteReader方法、ExecuteScalar()方法和ExecuteNonQuery()方法;插入数据可用ExecuteNonQuery()方法来执行插入命令。

3、DataReader类

许多数据操作要求你只是读取一串数据。DataReader对象允许你获得从Command对象的SELECT语句得到的结果。考虑性能的因素,从DataReader返回的数据都是快速的且只是“向前〞的数据流。这意味着你只能按照一定的顺序从数据流中取出数据。这对于速度来说是有好处的,但是如果你需要操作数据,更好的方法是使用DataSet。

4、DataSet对象

DataSet对象是数据在内存中的表示形式。它包括多个DataTable对象,而DataTable包含列和行,就象一个普通的数据库中的表。你甚至能够定义表之间的关系来创立主从关系〔parent-child relationships〕。DataSet是在特定的场景下使用――帮助管理内存中的数据并支持对数据的断开操作的。DataSet是被所有Data Providers使用的对象,因此它并不像Data Provider一样需要特别的前缀。

页脚下载后可删除,如有侵权请告知删除!

5、DataAdapter类

某些时候你使用的数据主要是只读的,并且你很少需要将其改变至底层的数据源。同样一些情况要求在内存中缓存数据,以此来减少并不改变的数据被数据库调用的次数。DataAdapter通过断开模型来帮助你方便的完成对以上情况的处理。当在一单批次的对数据库的读写操作的持续的改变返回至数据库的时候,DataAdapter 填充〔fill〕DataSet对象。DataAadapter包含对连接对象以及当对数据库进展读取或者写入的时候自动的翻开或者关闭连接的引用。另外,DataAdapter包含对数据的SELECT、INSERT、UPDATE和DELETE操作的Command对象引用。你将为DataSet中的每一个Table都定义DataAadapter,它将为你照顾所有与数据库的连接。所有你将做的工作是告诉DataAdapter什么时候装载或者写入到数据库。

6、DataTable类

DataTable 是一个数据网格控件。它可以被应用在 VB 和 ASP 上。它无须代码就可以简单的绑定数据库。它具有微软风格的用户界面。

7、ADO.NET是与数据源交互的.NET技术。有许多的Data Providers,它将允许与不同的数据源交流――取决于它们所使用的协议或者数据库。然而无论使用什么样的Data Provider,你将使用相似的对象与数据源进展交互。SqlConnection对象管理与数据源的连接。SqlCommand对象允许你与数据源交流并发送命令给它。为了对进展快速的只“向前〞地读取数据,使用

页脚下载后可删除,如有侵权请告知删除!

SqlDataReader。如果想使用断开数据,使用DataSet并实现能进展读取或者写入数据源的SqlDataAdapter。

第五章 系统局部功能展示及其实现代码

5.1 局部界面展现

〔1〕前台主界面

页脚下载后可删除,如有侵权请告知删除!

图5-1

〔2〕购物车

图5-2

〔3〕后台首页

页脚下载后可删除,如有侵权请告知删除!

图5-3

〔4〕订单管理

图5-4

〔5〕物流管理

页脚下载后可删除,如有侵权请告知删除!

图5-5

〔6〕普通会员管理

图5-6

〔7〕管理员管理

图5-7

5.2 新用户注册和用户登陆

〔1〕前台登陆

页脚下载后可删除,如有侵权请告知删除!

图5-8

这里的登陆界面是用自定义用户控件实现的,其后台代码如下: 登陆按钮事件:

protected void btnLoad_Click(object sender, EventArgs e) {

Session[\"UID\"] = null ; Session[\"Username\"] = null ;

if (txtName.Text.Trim() == \"\" || txtPassword.Text.Trim () == \"\") {

Response.Write(\"\"); } else {

if (txtValid.Text.Trim() == lbValid.Text.Trim()) {

int P_Int_IsExists = uiObj.UserExists(txtName.Text.Trim(), txtPassword.Text.Trim());

if (P_Int_IsExists == 100) {

DataSet ds = uiObj.ReturnUIDs(txtName.Text.Trim(), txtPassword.Text.Trim(), \"UserInfo\");

Session[\"UID\"] =

Convert.ToInt32(ds.Tables[\"UserInfo\"].Rows[0][0].ToString());

Session[\"Username\"] = ds.Tables[\"UserInfo\"].Rows[0][1].ToString();

页脚下载后可删除,如有侵权请告知删除!

Response.Redirect(\"index.aspx\"); } else {

Response.Write(\"\");

} } else {

Response.Write(\"\"); } } }

〔2〕会员注册

图5-9

页脚下载后可删除,如有侵权请告知删除!

保存按钮代码:

protected void btnSave_Click(object sender, EventArgs e) {

if (txtPostCode.Text.Trim() == \"\" && txtPassword.Text.Trim()==\"\") {

Response.Write(\"\"); } else {

bool P_Bl_Sex;

if(Convert.ToInt32(ddlSex.SelectedItem.Value.Trim())==1) {

P_Bl_Sex =true ; } else {

P_Bl_Sex =false ; }

G_Int_MemberID = uiObj.AddUInfo(txtName.Text.Trim(), P_Bl_Sex, txtPassword.Text.Trim(), txtTrueName.Text.Trim(), \"\", \"\", txtPhone.Text.Trim(), txtEmail.Text.Trim(), ddlCity.SelectedItem.Text.Trim(), txtAddress.Text.Trim(), txtPostCode.Text.Trim());

Session[\"Username\"] = \"\";

Session[\"Username\"] =txtName.Text.Trim(); Response.Write(\"\"); } }

后台登陆界面:

页脚下载后可删除,如有侵权请告知删除!

图5-10

登陆按钮代码:

protected void btnLogin_Click(object sender, EventArgs e) {

if (txtAdminName.Text.Trim() == \"\" || txtAdminPwd.Text.Trim() == \"\") {

Response.Write(\"\"); } else {

if (txtAdminCode.Text.Trim() == labCode.Text.Trim()) {

int P_Int_IsExists = mcObj.AExists(txtAdminName.Text.Trim(), txtAdminPwd.Text.Trim());

if (P_Int_IsExists == 100) {

DataSet ds = mcObj.ReturnAIDs(txtAdminName.Text.Trim(), txtAdminPwd.Text.Trim(), \"AInfo\");

Session[\"AID\"] =

Convert.ToInt32(ds.Tables[\"AInfo\"].Rows[0][0].ToString());

Session[\"Aname\"] = ds.Tables[\"AInfo\"].Rows[0][1].ToString(); //Response.Write(\"language=javascript>window.open('AdminIndex.aspx');window.close();\"); Response.Redirect(\"AdminIndex.aspx\"); Response.Write(\"\");

页脚下载后可删除,如有侵权请告知删除!

} else {

Response.Write(\"\"); } } else {

Response.Write(\"\"); } } }

5.3 后台管理功能

以商品管理为例,会员管理,物流管理代码都与其类似,下面不再赘述:

图5-11

添加商品

页脚下载后可删除,如有侵权请告知删除!

图5-12

保存按钮事件:

protected void btnSave_Click(object sender, EventArgs e) {

if (txtName.Text == \"\" || txtBrand.Text == \"\" || txtUnit.Text == \"\" || txtWeight.Text == \"\" || txtMemberPrice.Text == \"\" || txtMarketPrice.Text == \"\") {

Response.Write(\"\");

} else {

bool Isrefinement ; bool IsHot; bool IsDisCount;

if(cbxCommend.Checked ==true) {

Isrefinement =true ; } else {

页脚下载后可删除,如有侵权请告知删除!

Isrefinement =false ; }

if(cbxHot.Checked==true) {

IsHot=true; } else {

IsHot =false ; }

if(cbxDiscount.Checked ==true) {

IsDisCount=true ; } else {

IsDisCount =false ; }

int P_Int_returnValue =

mcObj.AddGInfo(Convert.ToInt32(ddlCategory.SelectedItem.Value.ToString()),

txtName.Text.Trim(), txtShortDesc.Text.Trim(), txtBrand.Text.Trim(), txtUnit.Text.Trim(), float.Parse (txtWeight.Text.Trim()), ddlUrl.SelectedItem.Value.Trim(),

float.Parse(txtMarketPrice.Text.Trim()), float.Parse(txtMemberPrice.Text.Trim()), Isrefinement, IsHot, IsDisCount);

if (P_Int_returnValue == -100) {

Response.Write(\"\"); } else {

Response.Write(\"\"); } }

5.4 随机产生验证码代码

public string RandomNum(int n) // {

string strchar =

\"0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z\"; string[] VcArray = strchar.Split(','); string VNum = \"\"; //

页脚下载后可删除,如有侵权请告知删除!

int temp = -1; //记录上次随机数值,尽量防止产生几个一样的随机数

//采用一个简单的算法以保证生成随机数不同 Random rand = new Random(); for (int i = 1; i < n + 1; i++) {

if (temp != -1) {

rand = new Random(i * temp * unchecked((int)DateTime.Now.Ticks)); }

int t = rand.Next(61); if (temp != -1 && temp == t) {

return RandomNum(n); }

temp = t;

VNum += VcArray[t]; }

return VNum;//返回生成的随机数 }

5.5 数据访问核心类局部代码

重要方法:

///

/// 数据库连接 ///

/// SqlConnection对象 public SqlConnection GetConnection() {

string myStr = ConfigurationManager.AppSettings[\"ConnectionString\"].ToString(); SqlConnection myConn = new SqlConnection(myStr); return myConn; }

///

/// 判断用户是否存在 ///

/// 会员登录名 /// 会员登录密码 ///

public int UserExists(string P_Str_Name,string P_Str_Password)

页脚下载后可删除,如有侵权请告知删除!

{

SqlConnection myConn = dbObj.GetConnection();

SqlCommand myCmd = new SqlCommand(\"Proc_UserExists\", myConn); myCmd mandType = CommandType.StoredProcedure; //添加参数

SqlParameter Name = new SqlParameter(\"@Name\", SqlDbType.VarChar, 50); Name.Value = P_Str_Name; myCmd.Parameters.Add(Name); //添加参数

SqlParameter Password = new SqlParameter(\"@Password\", SqlDbType.VarChar, 50); Password.Value = P_Str_Password; myCmd.Parameters.Add(Password); //添加参数

SqlParameter returnValue = myCmd.Parameters.Add(\"returnValue\", SqlDbType.Int, 4); returnValue.Direction = ParameterDirection.ReturnValue; //执行存储过程 myConn.Open(); try {

myCmd.ExecuteNonQuery(); }

catch (Exception ex) {

throw (ex); } finally {

myCmd.Dispose(); myConn.Close(); }

int P_Int_returnValue = Convert.ToInt32(returnValue.Value.ToString()); return P_Int_returnValue; }

///

/// 获取会员信息 ///

/// 会员登录名 /// 会员登陆密码 /// 查询表信息 ///

public DataSet ReturnUIDs(string P_Str_Name, string P_Str_Password,string P_Str_srcTable) {

页脚下载后可删除,如有侵权请告知删除!

SqlConnection myConn = dbObj.GetConnection();

SqlCommand myCmd = new SqlCommand(\"Proc_GetUserInfo\", myConn); myCmd mandType = CommandType.StoredProcedure; //添加参数

SqlParameter Name = new SqlParameter(\"@Name\", SqlDbType.VarChar, 50); Name.Value = P_Str_Name; myCmd.Parameters.Add(Name); //添加参数

SqlParameter Password = new SqlParameter(\"@Password\", SqlDbType.VarChar, 50); Password.Value = P_Str_Password; myCmd.Parameters.Add(Password); //执行过程 myConn.Open(); try {

myCmd.ExecuteNonQuery();

}

catch (Exception ex) {

throw (ex); } finally {

myCmd.Dispose(); myConn.Close(); }

SqlDataAdapter da = new SqlDataAdapter(myCmd); DataSet ds= new DataSet(); da.Fill(ds, P_Str_srcTable); return ds; }

///

/// GridView控件的绑定 ///

/// 控件名字

/// 绑定信息

public void gvBind(GridView gvName, SqlCommand myCmd, string P_Str_srcTable) {

SqlDataAdapter da = new SqlDataAdapter(myCmd); DataSet ds = new DataSet(); da.Fill(ds, P_Str_srcTable);

页脚下载后可删除,如有侵权请告知删除!

gvName.DataSource = ds.Tables[P_Str_srcTable].DefaultView; gvName.DataBind(); }

///

/// 判断有没有最新的订单新会员 ///

/// 执行语句的Ì存储过程名 ///

public int IsExistsNI(string P_Str_ProcName) {

SqlConnection myConn = dbObj.GetConnection();

SqlCommand myCmd = new SqlCommand(P_Str_ProcName, myConn); myCmd mandType = CommandType.StoredProcedure; //添加参数

SqlParameter returnValue = myCmd.Parameters.Add(\"returnValue\", SqlDbType.Int, 4); returnValue.Direction = ParameterDirection.ReturnValue; //执行过程 myConn.Open(); try {

myCmd.ExecuteNonQuery(); }

catch (Exception ex) {

throw (ex); } finally {

myCmd.Dispose(); myConn.Close();

}

int P_Int_returnValue = Convert.ToInt32(returnValue.Value.ToString()); return P_Int_returnValue; }

页脚下载后可删除,如有侵权请告知删除!

第六章 总结

这次毕业设计,是对我三年所学知识的重新温习,我认识到了自身有很多缺乏。这次毕业设计的难点在需求分析和数据库的设计上,我从中学到了很多,因为之前没有类似的工程经历,所以在这里要感谢教师和同学们对我的帮助。此次毕业设计主要用到一些ASP.NET的根底知识,系统架构上本来想采用三层架构,但是为了简化开发,还是采用了两层架构——数据访问层,界面&业务逻辑层。

由于时间和技术上的原因,这次毕业设计完成的也比拟仓促,测试缺乏。有些功能模块的功能可能不够完善,压力测试也缺乏。总体来说只能算是根本完成网站需求设计时的功能。

前台页面布局采用应用母版页的方式,后台采用框架布局,但是界面上也有一些未处理完的问题,比方查看购物车信息时候的母版页边框显示问题,归根结底还是因为界面布局功夫不够深。在业务逻辑方面也有一些问题,比方购物车结账的时候,如果后台配送方式添加数据缺乏时,购物就会失败。

数据访问方面,应用了大量的存储过程,以提高数据访问的速度。提高了我对存储过程的使用技巧和书写方式。

通过本次毕业设计,使我的动手能力提高很多,同时发现了自己很多缺乏之处。今后我会继续努力,争取更大的进步,相信明天会更好!

页脚下载后可删除,如有侵权请告知删除!

参考文献

[1] 洪著财,史金飞,张志胜.基于XML的动态质量信息表达方法的研究.制造业自动化,

2004,26(1):5-8

[2] 吴伟敏.UML建模工具的比拟——ROSE,Visio,和PowerDesigner.现代计算机,2003,

6(下半月版):32-35,56

[3] 蔡敏,徐慧慧,黄炳强.UML根底与Rose建模教程.北京:人民邮电出版社,2006,

294-312

[4] 邓景毅.在ERP实施中用Microsoft Visio创立企业的业务流程图.电脑学习,2005,5:

39-40

[5] 牛俊慧,张红光,牛会丽.基于MVC模式的电子商务平台构造技术研究.计算机工程

与设计,2006,27(23):4479-4481

[6] 尤澜涛,韩月娟,孔芳.基于B/S的统一根底数据表管理模块的设计与实现.计算机与

现代化,2006,12:31-33,37

[7] Ted N. Husted,CedricDumoulin,GeorgeFranciscus, David Winterfeldt. Struts in

Action-Building web applications with the leading Java framework.Greenwich CT US:Manning Publications,2002:120-350 [8]

页脚下载后可删除,如有侵权请告知删除!

附录

ASP.NET Overview

ASP.NET is a unified Web development model that includes the services necessary for you to build enterprise-class Web applications with a minimum of coding. ASP.NET is part of the .NET Framework, and when coding ASP.NET applications you have access to classes in the .NET Framework. You can code your applications in any language compatible with the common language runtime (CLR), including Microsoft Visual Basic and C#. These languages enable you to develop ASP.NET applications that benefit from the common language runtime, type safety, inheritance, and so on.

Testing and Debugging

Visual Web Developer provides an ideal environment in which to build Web sites and then publish them to a hosting site. Using the development tools in Visual Web Developer, you can develop ASP.NET Web pages on your own computer. Visual Web Developer includes a local Web server that provides all the features you need to test and debug ASP.NET Web pages, without requiring Internet Information Services (IIS) to be installed.

When your site is ready, you can publish it to the host computer using the built-in Copy Web tool, which transfers your files when you are ready to share them with others. Alternatively, you can precompile and deploy a Web site by using the Build Web Site command. The Build Web Site command runs the compiler over the entire Web site (not just the code files) and produces a Web site layout that you can deploy to a production server.

Page and Controls Framework

The ASP.NET page and controls framework is a programming framework that runs on a Web server to dynamically produce and render ASP.NET Web pages. ASP.NET Web pages can be requested from any browser or client device, and ASP.NET renders markup (such as HTML) to the requesting browser. As a rule, you can use the same page for multiple browsers, because ASP.NET renders the appropriate markup for the browser making the request. However, you can design your ASP.NET Web page to target a specific browser and take advantage of the features of that browser.

ASP.NET Web pages are completely object-oriented. Within ASP.NET Web pages you can work with HTML elements using properties, methods, and events. The ASP.NET page framework removes the implementation details of the separation of client and server inherent in Web-based

applications by presenting a unified model for responding to client events in code that runs at the server. The framework also automatically maintains the state of a page and the controls on that page during the page processing life cycle. For more information see ASP.NET Web Pages Overview.

页脚下载后可删除,如有侵权请告知删除!

The ASP.NET page and controls framework also enables you to encapsulate common UI functionality in easy-to-use, reusable controls. Controls are written once, can be used in many pages, and are integrated into the ASP.NET Web page that they are placed in during rendering.

The ASP.NET page and controls framework also provides features to control the overall look and feel of your Web site via themes and skins. You can define themes and skins and then apply them at a page level or at a control level. For more information, see ASP.NET Themes and Skins.

In addition to themes, you can define master pages that you use to create a consistent layout for the pages in your application. A single master page defines the layout and standard behavior that you want for all the pages (or a group of pages) in your application. You can then create individual content pages that contain the page-specific content you want to display. When users request the content pages, they merge with the master page to produce output that combines the layout of the master page with the content from the content page. For more information see ASP.NET Master Pages.

The ASP.NET page framework also enables you to define the pattern for URLs that will be used in your site. This helps with search engine optimization (SEO) and makes URLs more user-friendly. For more information, see ASP.NET Routing.

The ASP.NET page and control framework is designed to generate HTML that conforms to accessibility guidelines.

ASP.NET Compiler

All ASP.NET code is compiled, which enables strong typing, performance optimizations, and early binding, among other benefits. Once the code has been compiled, the common language runtime further compiles ASP.NET code to native code, providing improved performance.

ASP.NET includes a compiler that will compile all your application components including pages and controls into an assembly that the ASP.NET hosting environment can then use to service user requests. For more information, see ASP.NET Compilation Overview.

ASP.NET Configuration

ASP.NET applications use a configuration system that enables you to define configuration settings for your Web server, for a Web site, or for individual applications. You can make configuration settings at the time your ASP.NET applications are deployed and can add or revise configuration settings at any time with minimal effect on operational Web applications and servers. ASP.NET configuration settings are stored in XML-based files. Because these XML files are text files, it is simple to make configuration changes to your Web applications. You can extend the

configuration scheme to suit your requirements. For more information, see ASP.NET Configuration Overview.

页脚下载后可删除,如有侵权请告知删除!

译文:

ASP.NET 概述

ASP.NET是一个统一的Web开发模型,其中包括必要的效劳为您搭建一个尽可能少的代码的企业级Web应用程序。 ASP.NET是。NET Framework的一局部,当编码ASP.NET应用程序可以访问在。NET框架类。 你可以在任何语言代码与公共语言运行库〔CLR〕中,包括Microsoft Visual Basic和C#兼容的应用程序。 这些语言,可以开发ASP.NET应用程序,从公共语言运行库,类型平安,继承等方面的优点。

测试和调试

Visual Web Developer提供一个理想的环境来建立网站,然后发布到一个托管网站。 使用Visual Web Developer中的开发工具,您可以开发ASP.NET网页上您自己的电脑网页。 Visual Web Developer中包含一个本地Web效劳器,它提供的所有功能,你需要测试和调试ASP.NET网页,而无需Internet信息效劳〔IIS〕的安装。

当您的网站准备就绪后,您可以将其发布到主机计算机使用内置的复制Web工具,它传送的文件,当您愿意分享他们与其他人。 或者,您可以预编译和部署使用网站 生成网站 的命令。 在 构建Web站点 运行命令〕编译器在整个网站〔不只是代码文件并生成一个Web站点的布局,您可以部署到生产效劳器。

页和控件框架

页脚下载后可删除,如有侵权请告知删除!

ASP.NET页面和控件框架是一种编程框架,在Web效劳器上运行的动态产生和呈现ASP.NET网页。 ASP.NET网页可以请求从任何浏览器或客户端设备和ASP.NET呈现标记〔例如HTML〕的请求浏览器。 作为一个规那么,你可以使用多个浏览器一样的网页,因为ASP.NET呈现为提出请求的浏览器适当的标记。 然而,你可以设计你的ASP.NET网页针对特定浏览器,并利用该浏览器的功能。

ASP.NET网页是完全面向对象的。 在ASP.NET网页中您可以使用HTML元素的使用属性,方法和事件。 ASP.NET页框架在效劳器上删除呈现出统一的模式运行的代码,响应客户端事件的应用程序在执行1148 Web的客户端别离和效劳器所固有的。 该框架还自动维护页面的状态a和页面处理生命周期的控制在该网页中。 欲了解更多信息,请参见 ASP.NET网页概述 。

ASP.NET页面和控件框架,您还可以常见的UI功能封装在易于使用,可重复使用的控制。 控件编写一次,可以在许多网页上使用,并到ASP.NET网页,它们被放置在渲染过程中的整合。

ASP.NET页面和控件框架还提供了功能来控制整体外观和感觉你和皮肤的网站通过主题。 您可以定义主题和皮肤,然后应用水平他们在页级别或在控制。 有关详细信息,请参见 ASP.NET主题和外观。

除了 主题,你可以定义母版页,用于创立一个应用程序中的页面布局一致的。 单个母版页定义的布局和标准的行为,您要申请的全部或一组以页〕您的网页〔。 然后,您可以创立单独的内容页包含特定页面的内容,您要显示。 当用户请求内容页时,它们与母版

页脚下载后可删除,如有侵权请告知删除!

页合并以产生输出,结合了页面布局的母版页的内容与内容从。 欲了解更多信息,请参见 ASP.NET母版页。

ASP.NET页面框架还使您能够定义站点的URL模式,将您的用于。 这有助于搜索引擎优化〔SEO〕和网址,使更多的方便。 有关详细信息,请参见 ASP.NET路由。

ASP.NET页和控制框架的目的是生成HTML符合易读性指引。 有关详细信息,请参见 ASP.NET辅助功能在Visual Studio。 ASP.NET 编译器

所有的ASP.NET代码编译,使强类型,性能优化,和早期绑定以及其他好处。 一旦代码被编译,公共语言运行时编译ASP.NET代码进一步为本地代码,提供更好的性能。

ASP.NET包括一个编译器,将编译所有应用程序组件,包括页面和控件组装成的ASP.NET宿主环境可以使用效劳的用户请求。 有关详细信息,请参见 ASP.NET编译概述。 ASP.NET 配置

ASP.NET应用程序使用的配置系统,使您可以定义Web效劳器配置设置为您,为Web站点或个人申请。 您可以设置应用程序和效劳器配置的时候你的ASP.NET应用程序的部署和可运行的Web添加或修改的影响最小配置设置在任何时候。 ASP.NET配置设置存储在基于

页脚下载后可删除,如有侵权请告知删除!

XML的文件。 由于这些XML文件是文本文件,它是简单的进展配置更改Web应用程序。 您可以扩展配置方案,以满足您的要求。

【本文档内容可以自由复制内容或自由编辑修改内容期待你的好评和关注,我们将会做得更好】

页脚下载后可删除,如有侵权请告知删除!

Top