1、第1章 绪论 1.1开发背景与意义 电子商店就是大家通常所说的网上商店,这是是电子商务的一个重要组成部分。网店就是电子商务的一种具体形式,在Internet发展迅速而且已经非常成熟。由于充分利用网络的优势以及现代社会人们的生活方式,网店与传统商店相比有无可比拟的优势,最显而易见的就是经营成本低,受地域限制和时间限制少,市场扩张力极大等。目前Internet上的网店仍以惊人的速度增加。网购甚至成为了现代年轻人的首选,成为了时尚的一部分,动动手指就能买到自己喜欢的商品。 手机几乎是每个人的必需品,而且更新速度非常快,追求时尚以及新潮的人都会经常更换最新手机,销售量是非常可观的,基于这两个现状
2、网上手机销售网站势必会有一定的优势。以手机的销售带动其他电子产品的销售也很现实的,大家在购手机的时候经常会选择一些手机配件等。品牌手机的质量以及售后服务等是很值得信赖的,因此这种营销模式是可以肯定的。 1.2开发技术介绍 (1)ASP.NET ASP.NET是Active Server Pages的简称,即动态服务器页面,是一种脚本语言。可以创建和运行动态网页以及Web应用程序。ASP网页可以包含普通文本、脚本命令和COM组件等,包含在HTML代码所组成的文件中,易于修改和测试。ASP中的内置对象还可以使服务器端脚本功能更强大。 (2)SQL语言 SQL 是一门 ANSI 的标准计算
3、机语言,同时也是用来访问和操作数据库系统的结构化查询语言。SQL语言的广泛使用就说明今了它的优势。SQL语言有如下有点。 ①语法简单,好学易用: ANSI标准中的核心功能只有6个动词,语法接近英语口语。 ②一体化:SQL语言是集数据定义DDL、数据操纵DML和数据控制DCL于一体的,能够完成数据库中的全部工作。 ③使用灵活:SQL具有两种使用方式,可以直接使用命令方式交互使用;也可以嵌入到C、C++、JAVA等主语言中使用。 ④非过程化:只提出操作要求,不需要导航,不需要描述步骤。它的使用就是只管通知计算机“做什么”,而不管它“怎么做”。 (3)SQL Server 2005 S
4、QL Server 2005是Microsoft公司推出的关系型数据库管理系统,支持多层客户/服务器结构,支持多种开发平台和远程管理,具有强大的数据库管理功能,能够进行分布式事务处理和联机分析处理,并提供了一套功能完善且具备可视化界面的管理工具 [2]。 第2章系统分析 2.1可行性分析 可行性分析是为了用最小的代价在最短的时间内分析问题,判断问题能否解决。要实现这样的目的,需要对几种主要的可能方法进行利弊分析,进而确定原定的系统规模以及目标能否实现,完成后能够带来的经济效益是否值得投资开发此系统。所以,可行性研究实际上就是为了进行一次简化的系统分析和设计,是以较抽象的方式在较高的层次上
5、进行系统分析以及设计的过程。 系统的可行性分析包括经济方面的可行性、技术方面的可行性和操作方面的可行性。 (1)经济可行性 基于Web的手机销售管理系统开发时所需要的软件环境(ASP.NET+SQL Server 2005)可以在相关网站上下载,因此,系统开发就成为了主要的成本。本系统并不是特别的繁琐,相对来说开发周期不是很长,开发人员在经济方面的指出不大,节省下来的人力以及财力效益远大于开发本系统的成本,因此从经济方面分析此系统的开发是可行的。 (2)技术可行性 基于Web的手机销售管理系统拟采用ASP.NET(动态服务器页面)和SQL Server 2005分别作为前端以及后台
6、的开发工具。ASP.NET是当今较流行的一种动态网页制作技术,编写比较容易、无须编译,写好以后可以在服务器端直接执行;普通的文本编辑器就能够可完成编写。ASP.NET的脚本语言都可以在Web服务器端执行,所以客户端的浏览器不需要执行这些脚本语言;SQL Server 2005功能比较完备的数据库管理系统。它包括支持开发的引擎、标准的SQL语言、扩展的特性(如复制、OLAP)等功能。同时还拥有存储过程、触发器等特性,因此从技术方面开发此系统是可行的。 (3)操作可行性 基于Web的手机销售管理系统的操作十分简便。系统主要是基于Web的工作界面,用户可以通过互联网在浏览器中对本系统的内容进行浏
7、览,随时随地都可以关注相关信息,用户不需要配置其他的应用软件,也不需要培训;管理人员也可以通过浏览器管理系统中的所有内容进行有效的管理,如:更新产品信息,更新新闻动态,将过期的动态删除等。所以从操作方面开发此系统是可行的。 2.2需求分析 2.2.1功能需求分析 基于Web的手机销售管理系统是针对当前盛行的电子商务所开发的系统,管理员通过此系统可以在后台对相关的手机产品信息以及新闻动态进行管理,主要包括信息更新和信息删除、用户的管理;用户在前台可以浏览手机产品信息以及相关的业内最新消息。因此本系统的用户可以分为三类:管理员、用户、游客。系统的用户根据身份的不同实现不同的功能操作。 (1
8、管理员 管理员可以实现动态管理、产品管理、进货管理、订单管理、用户管理等功能,其中在动态管理中管理员可以对系统的业内新闻以及相关知识进行更新以及删除;在产品管理中可以添加产品以及产品类别,删除某一种产品;在进货管理中可以输入某种产品的进货数量,此数据会增加到库存中,改变库存的数量;在订单管理中能够看到每一个用户的每笔订单,如果商品已经发货管理员要进行手动操作,进行相应的处理,用户登录自己的帐号也能够看到该信息;在用户管理中管理员可以按注册时间的先后以及是否经常购买等删除任一用户的相关信息 (2)用户 用户可以不登陆进行浏览,可以查看到本系统的所有信息,但是如果要购买产品的话,那么必须先
9、注册。已经注册的用户在登陆以后可以查看自己的所有订单以及订单的处理情况;可以修改自己的注册信息、登录密码、地址、电话等。 (3)游客 网络上的游客可以浏览到本系统的所有信息,包括业内新闻、相关知识、产品信息,但是不可以购买产品,如果需要购买那么必须先注册。 数据流图目前最流行的建模技术之一,在软件工程领域有不可磨灭的作用。它从数据传递、加工等方面,用图形的方式描述数据流输入、输出的变换过程[5]。 本系统的数据流图如图2-1所示。 图2-1顶层数据流图 经过对顶层数据流图的分析,可以得到分解后的第一层数据流图,如图2-2所示 图2-2第一层数据流图 印象
10、通讯手机销售系统主要功能为用户购买产品功能,对第一层数据流图中的“购买产品”功能进行展开,得出第二层数据流图如图2-3所示。 图2-3第二层数据流图 2.2.2性能需求分析 基于Web的手机销售管理系统是利用现代化的Intern技术将市面上传统的销售模式电子化。在电子商务迅速发展的时代,网上营销有很多的优势,为了充分发挥网上商店的特点,提高营销效率和质量,先提出如下性能需求: (1) 界面友好、操作简单:页面布局简洁大方,信息的发布工作更简单。 (2) 功能完善:不仅包括常见的产品信息的发布,新闻以及相关知识的发布,还包括用户的注册,修改信息,查看订单,管理员更新库存等功能。
11、 (3) 即时可见:产品以及新闻等的信息添加、删除等,能够在前台页面中及时的显示出来,有“即时见效”的功能。 (4)动态管理:系统对数据库实现的是动态操作,能够对数据库信息进行动态查询、动态修改和动态发布等操作。 (5)移植方便:本系统可靠、实用。对于不同用户能体现不同的功能。系统界面上的数据存放在数据文件中,对某一部分进行的修改能够及时的在界面上显示出效果,没有更改系统源代码的复杂性。 第3章系统设计 3.1系统的总体结构设计 本系统主要分为管理员功能模块、用户功能模块和游客能模块三部分,管理员功能模块实现的主要功能有:动态管理、产品管理、进货管理、订单管理、用户管理等。用户
12、功能模块实现的主要功能有:修改自己的注册信息、查看订单、购买产品、浏览系统的所有信息等。游客功能模块实现的主要功能有:浏览系统的所有信息、进行注册等。系统结构图如图3-1所示。 图3-1系统结构图 3.2系统的详细设计 3.2.1管理员功能模块详细设计 管理员功能主要有:动态管理、产品管理、进货管理、订单管理、用户管理等五个模块,对这五个功能模块进行详细的分析设计。 (1)动态管理详细设计 动态管理是管理员的主要功能之一,动态管理包括相关知识和业内新闻,管理员负责搜集和手机有关的知识以及最新的手机行业的新闻,并及时的发布这些动态。对一些过时的行业新闻和手机方面的小知识要
13、进行及时的删除,以减轻数据库服务器的负担,增加系统信息的可读性。 添加动态的流程如图3-2所示。 图3-2添加动态的流程图 管理员在业内新闻或者是相关知识板块中选择一条新闻,然后点击删除,就会提示动态删除成功,这时就会更新数据库,将数据库中该条新闻删除,这时系统的前台将看不到这条动态。删除动态的流程如图3-3所示 。 图3-3删除动态流程图 (2)产品管理详细设计 管理员在后台可以实现产品的管理,主要包括产品信息添加、产品类别添加、产品信息的删除等。由于电子产品更新较快,所以新的功能的相关信息要及时更新系统上,如果有新的产品入驻,那么就在对产品的类别进行更新
14、当某一种具体的机型过时后,或者是销量不好时,在没有库存的情况下就可以删除该种机型。 (3)进货管理详细设计 管理员通过进货管理对新进的产品数量进行更新,首先选择要更新的产品名称,然后输入更新的数量,此数据会更新到数据库中,具体的库存数量会在前台的产品信息中显示,方便用户查看某一机型是否有存货。用户购买某一产品后,相应机型的库存量会有对应的减少。 (4)订单管理详细设计 管理员通过订单管理模块,能够实现用户订单的管理,如果用户订单中的产品已经发货,那么需要管理员对订单进行编辑,将“是否处理”打上对钩,点击“更新”,此时编辑完成。这时用户登陆后也能够在自己的订单中看到“是否处理”的对钩。
15、 订单处理流程如图3-4所示。 图3-4订单处理流程图 (5)用户管理详细设计 在用户管理功能模块中,管理员需要定期对已经注册的用户信息进行整合,如果某一用户长时间没有登录过,或者在购买产品时违反了相关规定,那么管理员就会将其删除,删除后该用户名将不能登录。 3.2.2用户功能模块详细设计 作为一个完善的系统,需要为用户提供良好的购物体验,同时要注重用户的信息安全。用户模块的主要功能是修改自己的注册资料,包括密码、联系电话、地址等,用户登录后可以查看自己的历史购物订单、系统的动态、产品信息、购买产品等。 (1)用户登录详细设计 已经注册的用户可以用已经注册的用户名登
16、录到该系统。可以在首页填写用户名、密码登录,也可以在购买产品的时候,如果没有登录,点击购买之后就会出现登陆页面。用户在登陆的时候输入的用户名或密码错误,会有提示。用户登录流程图如图3-5所示。 图3-5用户登录流程图 (2)用户修改注册信息详细设计 已经注册的用户登录系统以后,可以修改自己的注册信息。点击修改注册资料,即进入修改页面,在此页面用户可以修改登录密码、真实姓名、联系电话、地址、邮政编码等,修改好后,点击修改按钮即完成修改。用户修改注册信息流程图如图3-6所示。 图3-6用户修改注册信息流程图 (3)用户查看订单详细设计 用户登录以后可查看自己的历史购物记
17、录,里面有自己在本系统购物的所有订单,包括订单生成时间,购买的产品名称、数量、订单的流水号、是否处理等信息。用户只能查看订单信息,不能进行修改等任何操作。 (4)用户购买产品详细设计 用户登录系统以后,能够查看系统上的所有信息,如果要购买产品,首先可以查看是否还有库存,然后点击产品的名称,这时就进入到产品的详细介绍页面,在这里有订购按钮,点击订购按钮进入订单生成页面,用户可以在此输入购买的数量,点击提交,订单即可生成。这时就可以在自己的订单信息中看到该订单。用户购买产品流程图如图3-7所示。 图3-7用户购买产品流程图 (5)查看系统信息详细设计 用户登录后可以查看本系统
18、的所有信息,包括动态信息、产品信息。动态信息又包括相关知识和行业新闻。用户可以选择自己有兴趣的动态标题,该标题的详细信息就会从数据库中调出,这时用户就可以进行查看。用户可以按照导航的标题选择某类产品,也可以用搜索按钮进行搜索,也可以点击店铺产品板块的更多,这时就会列出一部分产品,然后再点击产品的名称就会显示出产品的详细介绍,包括订购按钮等。用户查看系统信息的流程图如图3-8所示。 图3-8查看系统信息流程图 3.2.3游客功能模块详细设计 游客功能模块包括系统注册、查看产品信息、查看动态信息等功能。 (1)游客注册详细设计 用户只有先在本系统完成注册才能登录,完
19、成注册以后就可登录查看自己的注册信息,用户注册需要填写用户名、密码、用户全称、电话、地址、邮政编码。提交的时候需要对用户名进行验证,如果该用户名已经注册,则提示用户名已经使用,这时需要更换新的用户名注册。如果用户名没有注册过,那么信息将提交成功并保存到数据库中。这时该注册用户即可登录。游客注册流程图如图3-9所示。 图3-9用户注册流程图 (2)查看产品信息详细设计 游客可以根据自己需要的产品,查看相应的产品介绍。先点击产品模块,然后在产品列表里面点击产品的名称,这时就会显示出产品的详细信息。但是游客是不能进行产品购买的,只有注册以后才能进行产品购买。 (3)查看动态详细设
20、计 游客可以浏览本系统中的动态,包括相关知识和业内新闻,业内新闻是指市面上关于手机的各种新闻,可以帮助游客了解时下最新的手机发展方向或者最新科技等;相关知识指的是和手机有关的小知识,如:电池的保养,手机的保养等。游客点击想要浏览的标题就会显示出具体的动态信息。 第4章数据库设计 4.1概念结构设计 根据前面的设计规划出的实体有:用户实体、产品实体、产品类别实体、订单实体、动态实体、动态类别实体。 ★用户实体,属性主要有:用户名、密码、真实姓名、管理员标识、电话、地址、邮编等。 ★产品实体,属性主要有:产品号、产品名称、产品类别号、库存、产品价格、产品图片、产品介绍等。 ★订单实体
21、属性主要有:流水号、订购数量、订购日期、处理标志等。 ★产品类别实体,属性主要有:产品类别号、产品类别等。 ★动态实体,属性主要有:动态号、动态类别号、动态标题、动态内容、添加时间、阅读次数等。 ★动态类别实体,属性主要有:动态类别号、动态类别等。 E-R图也称实体-联系图(Entity Relationship Diagram),它是描述现实世界概念结构模型的有效方法]。 这些实体之间的联系如图4-1所示。 图4-1印象通讯实体联系图 4.2逻辑结构设计 逻辑结构设计即是将概念结构设
22、计阶段得到的E-R图转换为具体DBMS产品所支持的数据模型相符合的逻辑结构,将概念结构设计阶段得到的E-R模型转换为DBMS所支持的数据模型,本系统得到的各关系模式如下所示。其中,主键用“___”标示,外键用“ ”标示。 ★用户表(用户名,密码,真实姓名,管理员标识,电话,地址,邮编) ★产品表(产品号,产品类别号,产品名称,产品价格,产品图片,产品介绍,库存) ★订单表(流水号,用户名,产品号,订购日期,处理标志,订购数量) ★产品类别表(产品类别号,产品类别) ★动态表(动态号,动态类别号,动态标题,动态内容,添加时间,阅读次数) ★动态类别表(动态类别号,动态类别)
23、4.3物理结构设计 数据库在物理设备上的存取方法与存储结构称为数据库的物理结构。根据逻辑结构设计得出本系统的主要数据表及其结构如表4-1到表4-7所示。 (1)用户表 用户表包括用户名、密码、真实姓名、管理员标识、电话、地址、邮编等字段。其中用户名为主键,作为唯一值,不允许重复,管理员标识用来确定该用户是普通用户还是管理员,管理员标识为1时表示管理员,管理员标识为0时表示普通用户。管理员的权限最大,可以对系统个数据进行更改、删除等,而普通用户只能进行一般操作,如:浏览本系统、购买产品等。 表4-1用户表 字段名称 字段类型 大小 允许为空 最大长度 描述 用户名 n
24、varchar 50 否 255 主键 密码 nvarchar 10 是 255 真实姓名 nvarchar 50 是 255 管理员标识 bit 是 255 地址 nvarchar 50 是 255 电话 nvarchar 11 是 255 邮编 nvarchar 6 是 255 (2)产品表 产品表主要包括产品号、产品名称、产品类别号、产品价格、产品类别号、产品介绍、产品价格等字段。其中产品号为主键,作为唯一值,不允许重复,产品类别号为外键,用来区分产品的类别。 表4-
25、2产品表 字段名称 字段类型 大小 允许为空 最大长度 描述 产品号 bigint 否 255 主键 产品名称 nvarchar 50 是 255 产品价格 int 是 255 产品图片 varchar 50 是 255 产品类别号 bigint 否 255 外键 产品介绍 ntext 是 255 库存 bigint 否 255 (3)订单表 订单表包括流水号、产品号、用户名、订购日期、订购数量、处理标志等字段。流水号为主键,作为唯一值,不允许重复。产品号
26、和用户名为外键,分别参照产品表和用户表。 表4-3公司表 字段名称 字段类型 大小 允许为空 最大长度 描述 流水号 nvarchar 50 否 255 主键 产品号 bigint 否 255 外键 订购数量 int 是 255 注册地点 用户名 nvarchar 50 否 255 外键 订购日期 datetime 是 255 公司规模 处理标志 bit 是 255 主营业务 (4)产品类别表 产品类别表包括产品类别号、产品类别等字段,其中产品类别号为主键,作为唯一值,不能重复,主
27、要是区分产品属于哪类。 表4-4产品类别表 字段名称 字段类型 大小 允许为空 最大长度 描述 产品类别号 bigint 否 255 主键 产品类别 nvarchar 50 是 255 (5)动态类别表 动态类别表主要包括动态类别号、动态类别等字段。其中动态类别号为主键,作为唯一值,不允许重复。动态类别用来区分动态新闻属于业内新闻还是相关知识。 表4-5动态类别表 字段名称 字段类型 大小 允许为空 最大长度 描述 动态类别号 bigint 否 255 主键 动态类别 nvarchar 50
28、 是 255 (6)动态表 动态表包括动态号、动态标题、动态标题、动态内容、动态类别号、添加时间、阅读次数。其中动态号号为主键,作为唯一值,不允许重复,动态类别号为外键,用来确定新闻动态的类型。 表4-6动态表 字段名称 字段类型 大小 允许为空 最大长度 描述 动态号 bigint 否 10 主键 动态标题 nvarchar 50 是 255 动态内容 ntext 是 255 动态类别号 bigint 否 23 外键 添加时间 smalldatetime 是 阅读次数 int
29、 是 23 第5章系统的实现 5.1首页页面的实现 打开系统首页,上方显示的为系统功能导航栏,点击相应的文字可以查看首页,全部商品,三大类品牌手机,包括魅族、联想、小米,最新动态,还可以联系到商店。游客可以在首页注册成为本系统的可登录用户,已注册用户可以直接登录并购买产品。管理员可以在管理员入口处登录系统,进行系统后台的各种信息管理等。网站首页页面如图5-1所示。 图5-1网站首页页面 网站首页代码如下所示: protected void Page_Load(object sender, EventArgs e) { // 在此处放置用户代
30、码以初始化页面 string strsql; strsql = "SELECT top 5 动态号,动态标题,添加时间 FROM 动态,动态类别 where 动态.动态类别号=动态类别.动态类别号 and 动态类别.动态类别 ='相关知识' order by 添加时间 desc "; DataTable dt = BaseClass1.ReadTable(strsql); GridView1.DataSource = dt; GridView1.DataBind(); strsql =
31、"SELECT top 5 动态号,动态标题,添加时间 FROM 动态,动态类别 where 动态.动态类别号=动态类别.动态类别号 and 动态类别.动态类别 ='业内新闻' order by 添加时间 desc "; dt = BaseClass1.ReadTable(strsql); GridView2.DataSource = dt; GridView2.DataBind(); strsql = "select top 4 产品号,产品名称,产品价格,产品图片,产品类别,库存 from 产品表,产品类别表 wher
32、e 产品表.产品类别号=产品类别表.产品类别号 order by 产品号 "; dt = BaseClass1.ReadTable(strsql); DataList1.DataSource = dt; DataList1.DataBind(); } 5.2管理员功能模块的实现 5.2.1 管理员登录的实现 在系统首页的最下面有管理员入口,在这里管理员可以登录系统,实现后台管理。管理员登录页面如图5-2所示。 图5-2管理员登录页面 如果用户名或者是密码错误,点击登陆就会提示“您的登陆不成功。请重试。”如果不输入用
33、户名、密码则文本框后面会显示必填项的星花提示。登录失败提示如图5-3所示。用户名、密码必填提示如图5-4所示。 图5-3登陆失败提示 图5-4 用户名、密码必填提示 5.2.2动态管理的实现 选择系统功能菜单中的“动态管理”功能中的“动态信息管理”子菜单,在右侧就会按发布的时间顺序显示新闻动态,管理员可以根据需要按照类别删除不需要的业内新闻或者是相关知识。动态信息管理页面如图5-5所示。 图5-5动态信息管理页面 点击图5-5动态信息管理页面中的“删除”,就会出现提示“动态删除成功!”这时就会将数据库中相应的数据删除掉。动态删除提示如图5-6所示。
34、 图5-6修改毕业生信息页面 选择系统功能菜单中的“动态管理”功能中的“动态添加”子菜单,在右侧就会出现动态发布页面,包括动态标题、类别和内容,在相应的位置输入内容,点击发布会有提示“动态发表成功!”。动态发布页面如图5-7所示。动态发布提示如图5-8所示。 图5-7动态发布页面 图5-8动态发布提示 动态管理页面代码如下所示。 public partial class delnews : System.Web.UI.Page { BaseClass BaseClass1 = new BaseClass(); protected void Pa
35、ge_Load(object sender, EventArgs e) { if (Session["admin"] == null) { Response.Redirect("login.aspx");} bindgrig(); } protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) { String strsql = "delete from 动态 where 动态号='" + GridView1.DataKeys
36、[e.RowIndex].Value.ToString() + "'"; Response.Write(""); BaseClass1.excsql(strsql); bindgrig();} void bindgrig() {string strsql = "select * from 动态,动态类别 where 动态.动态类别号=动态类别.动态类别号 order by 动态号 "; DataTable dt = BaseCl
37、ass1.ReadTable(strsql); GridView1.DataSource = dt; GridView1.DataBind(); } protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) { GridView1.PageIndex = e.NewPageIndex; bindgrig(); } } 5.2.3 产品管理的实现 产品管理包括产品信息管理、产品添加、产品类别添加三个
38、功能。选择系统功能菜单中的“产品管理”功能中的“产品信息管理”子菜单,右侧显示出所有的产品的基本信息,包括产品名称、产品类别、产品价格、库存等。产品信息管理页面如图5-9所示。 图5-9产品信息管理页面 点击后面的删除按钮,就会将该产品的信息删除,数据库中该产品的信息也将被删除。这时在产品信息中就不会再有该产品。产品删除提示如图5-10所示。 图5-10产品删除提示 选择系统功能菜单中的“产品管理”功能中的“产品添加”子菜单,右侧显示出产品添加页面,该页面包括产品名称、价格、图片、产品类别、简介。产品添加页面如图5-11所示。 图5-11产品添加页面 在
39、产品添加”功能菜单中,产品类别需要选择,产品图片需要浏览本地电脑上的相关图片,其他的都是手动输入。在相应的位置填好信息以后,点击“提交”按钮,就会提示“产品添加成功!”。产品添加提示如图5-12所示。 图5-12产品添加提示 选择系统功能菜单中的“产品管理”功能中的“产品类别添加”子菜单,右侧显示出产品类别添加页面,在该页面中只需输入需要添加的产品类别名称,点击“添加”按钮,即可完成产品类别添加。这时会提示“产品类别添加成功!”。产品类别添加页面如图5-13所示。产品类别添加提示如图5-14所示。 图5-13
40、产品类别添加页面 图5-14产品类别添加提示 产品管理页面代码如下所示。 public partial class addpro : System.Web.UI.Page { BaseClass BaseClass1 = new BaseClass(); protected void Page_Load(object sender, EventArgs e) { if (Session["admin"] == null) { Response.Redirect("login.aspx"); } // 在此处放置用户代码以初
41、始化页面 if (!Page.IsPostBack) { DataTable dt = new DataTable(); string strsql = "select * from 产品类别表"; dt = BaseClass1.ReadTable(strsql); DropDownList1.DataSource = dt; DropDownList1.DataTextField = "产品类别"; DropDownList
42、1.DataValueField = "产品类别号"; DropDownList1.DataBind(); } } protected void Button1_Click(object sender, EventArgs e) { string strsql; strsql = "insert into 产品表(产品名称,产品价格,产品图片,产品类别号,产品介绍,库存) values ('" + TextBox1.Text + "','" + TextBox3.Text + "','" + FileUpload1.Fil
43、eName + "','" + DropDownList1.SelectedValue + "','" + TextBox2.Text + "',0)"; BaseClass1.excsql(strsql); if (FileUpload1.HasFile == true) { FileUpload1.SaveAs(Server.MapPath(("~/images/") + FileUpload1.FileName)); } Response.Write(""); TextBox1.Text = ""; TextBox2.Text = ""; TextBox3.Text = ""; } } 5.2.4 进货管理的实现 进货管理主要是管理员用来更新库存数量的。选择系统功能菜单中的“进货信息管理”,右侧就会出现填写的窗口,按照要求填写即可。更新该数据的同时会更新产品信息中的库存。进货信息管理如图5-15所示。 图5-15进货信息管理页面 选择产品名称,输入产品数量,点击“提交”按钮,即可实现库存数量的增加,该数据会更该数据库中的数据。完成以后提示“
45、进货数量添加成功!”。进货提示如图5-16所示。 图5-16进货提示 进货管理页面代码如下: protected void Page_Load(object sender, EventArgs e) { if (Session["admin"] == null) { Response.Redirect("login.aspx"); } // 在此处放置用户代码以初始化页面 if (!Page.IsPostBack) { DataTable dt = new DataTab
46、le(); string strsql = "select * from 产品表"; dt = BaseClass1.ReadTable(strsql); DropDownList1.DataSource = dt; DropDownList1.DataTextField = "产品名称"; DropDownList1.DataValueField = "产品名称"; DropDownList1.DataBind(); } }
47、 protected void Button1_Click(object sender, EventArgs e) { string strsql; strsql = "update 产品表 set 库存 = 库存 + ('" + TextBox2.Text + "') where 产品名称 = ('" + DropDownList1.SelectedValue + "')"; BaseClass1.excsql(strsql); Response.Write(""); TextBox2.Text = ""; } 5.2.5订单管理的实现 选择系统功能菜单中的“订单管理”功能,右侧就会打开用户的订单,订单内容包括用户名、产品名称、订购日期、订购数量。管理员可以对任意一个用户的订单进行编辑,如果该订单中的产品已经发货,那么管理员就可以通过此操作来标记已经发货的订单。该操作完成以后,用户登录自己的帐号也会显示是否处理。订单管理页面如图5-17所示。 图5-17订单管理页面 “是否处理”信息是不可以编辑的,只有在订单管理页面中点击“编辑”按钮,才会出现“是否处理”的可编辑情况,在此选项前面打对勾,点
49、击“更新”。即可完成对该订单的编辑。如果点击“取消”则退出编辑状态。订单编辑页面如图5-18所示。 图5-18订单编辑页面 在“订单管理”菜单中还有“删除”选项,管理员需要定期对数据库进行维护,将以前的部分订单删除,这时就可以点击删除,将订单删除。删除后会提示“订单删除成功!”。订单删除提示如图5-19所示。 图5-19订单删除提示 订单管理页面代码如下所示: protected void Page_Load(object sender, EventArgs e) { if (Session["a
50、dmin"] == null) { Response.Redirect("login.aspx"); } if (!Page.IsPostBack) { bindgrig(); } } protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) { //删除行处理 String strsql = "delete from 订单 where 流水号='" + GridView1.DataKe






