基于.NET的网上商城系统的分析与设计
1 概述
1.1 项目背景
电子商务是在互联网开放的环境下,基于浏览器/服务器应用方式,通过信息网络以电子数据信息流通的方式在商业和贸易领域中进行并完成的各种商务活动、交易活动、金融活动和相关的综合服务活动[1]。电子商务网站的成立是当今e时代方便人们生活的又一伟大创举。在生活节奏越来越快的今天,人们需要有更多的休息时间,而网上购物正是给人们带来一种轻松,让每个人享受购物的快乐和冲浪的乐趣。
B2C(Business to Customer) 电子商务是以Internet 为主要手段,由商家或企业通过网站向消费者提供商品和服务的一种商务模式。目前,在Internet 上遍布了各种类型的B2C 网站,提供从鲜花、书籍到计算机、汽车等各种消费品和服务。由于各种因素的制约,目前以及未来比较长的一段时间内,这种模式的电子商务还只能占比较小的比重。但是,从长远来看,企业对消费者的电子商务将取得快速发展,并将最终在电子商务领域占据重要地位。网上购物商城,就是在这种模式下,帮助企业提高生产效率,降低经营成本,优化资源配置,从而实现社会财富的最大化的实用网络应用系统。
1.2 系统环境
系统是基于.NET的B2C模式的网上购物商城,采用Macromedia Dreamweaver MX 2004 开发Web静态网页。静态网页主要使用HTML超文本编辑语言和Javascript语言。同时运用VS.NET2005动态网站开发技巧来实现与数据库的连接,动态查询、添加、删除、修改、计算等管理数据库的功能。
1.2.1 ASP.NET简介
Visual Studio.NET是Microsoft公司新一代的软件开发平台,也是.NET FrameWork的重要战略产品。ASP.NET作为Microsoft Visual.NET的组成部分之一,是Internet和Intranet开发Web应用程序的新一代开发工具,逐渐被广大Windows程序员使用[6]。ASP.NET是建立在公共语言运行库上的编程框架,可用于服务器上生成功能强大的Web程序。它的程序代码与页面标识可以完全剥离,不会混合在一个页面上,这样便于程序员修改。在第一次请求时自动编译后执行,以后再次请求时不需要重新编译。
1.2.2 ASP.NET访问SQL Server
使用ASP.NET技术开发网站,考虑到数据库的安全性和稳定性,采用SQL Server作为后台数据库。在ASP.NET中使用ADO.NET(ActiveX Data Objects)访问数据库。
ADO.NET是基于Microsoft公司推出的.NET框架中的用于数据访问的组件。它使用Connection对象连接不同的数据源,使用Command对象实现对数据的操作,使用DataReader对象读取数据库中的数据,使用DataSet对象访问数据库中的数据。
1.2.3 语言环境
系统开发主要采用C#语言,由于Visual C#.NET是微软为.NET平台量身定做的程序语言,C#拥有C++的强大的功能以及Visual Basic简易的特性,它在带来对应用程序的快速开发能力的同时,并没有牺牲C与C++程序员所关心的各种特性,C#忠实的继承了C和C++的优点。在.NET运行库的支持下,.NET框架的各种优点在C#中表现的淋漓尽致[7]。
关于C#的突出优点:它是现代的编程语言,简化和现代化了C++在类、名字空间、方法重载和异常处理等领域,摒弃了C++的复杂性,使它更易用、更少出错。对C#的易用有贡献的是减少了C++的一些特性,不再有宏、模板和多重继承。特别对企业开发者来说,上述功能只会产生更多的麻烦而不是效益。
2 系统分析
2.1 系统目标需求
网上购物商城是基于B/S模式, 通过对一些典型电子商务网站的考察、分析,并结合企业要求, 而开发的一套拥有前后台的信息化管理系统。需满足以下要求:
◆ 统一友好的操作界面,保证系统的易用性;
◆ 商品分类详尽,可按不同类别查看商品信息;
◆ 为客户提供通过一个购物车模型就能够购买多个商品项的机制;
◆ 提供简单的安全模型,让客户必须先进行登录,才允许购买购物车的内容;
◆ 设计网站后台操作平台,管理网站的各项基本数据。
2.2 开发的可行性分析
2.1.1 管理上的可行性
把企业业务延伸到Internet上,建立电子商务网站,对运营商业企业来说,是企业对外展示信息,从事商务活动的窗口和界面。因此,高中层管理人员不会对此有很大的抵触情绪,主管领导也能够相应的支持。
2.1.2 技术上的可行性
根据系统目标需求分析得结果来看,不需要通过购买专业软件,仅采用VS.NET2005为开发工具,选择C#语言就可以解决相关的问题,从而保证系统功能的实现。
2.1.3 经济上的可行性
商业企业在运营过程中 ,经常会遇到产品的宣传受到限制,采购商或顾客只能通过上门咨询、电话沟通等方式进行各种信息的获取,受一定的时间与物理空间的局限并且成本较高。而本系统可以帮助企业正确认识电子商务技术在企业中的重要地位,以少量的时间和资金建立企业信息门户网站并架设一定范围的商务网络,以此来是企业与顾客间的经济活动变得更灵活、更主动。
2.3 业务流程分析
网站浏览者必须先 进行注册,才能够以网站用户的身份购买网站所展示的商品。浏览者注册的信息提交到网站后台,由网站管理员进行管理。网站为用户提供商品查询,商品购买的功能,并在收银台记录用户的购物选择,从而形成订单信息。在系统后台,管理员除了管理用户信息,公司信息以及商品信息外,还需将网站消息以公告的形式发布出去,同时也要及时查看网站留言板。主要业务流程如图2-1所示。
基于.NET的网上商城系统的分析与设计
图2-1系统业务流程图
若图片无法显示请联系站长QQ3710167
图2-2系统数据流程图
2.5 数据字典
表2-1 数据元素描述(部分)
编号
标识符
含义
类型
长度
特殊说明
YS01
username
用户名
char
10
YS02
freeze
状态
varchar
1
默认值为0
YS03
Pubdate
发布日期
datatime
8
2007-5-13
YS04
Price
价格
decimal
9
28.000000
表2-2 数据流描述(部分)
编号
名称
来源
去向
组成
高峰流量
平均流量
最低流量
L01
商品信息
公司
浏览者
(商品编号)、商品名称、价格、图片
60条/天
35条/天
10条/天
L02
用户信息
浏览者
后台管理处
(用户编号)、用户名、地址、电话、电子邮箱
240条/天
140条/天
40条/天
L03
购物选择
用户
收银台
用户名、商品编号、商品数量
1000条/天
800条/天
600条/天
L04
订单信息
收银台
用户
(订单编号)、购物车
900条/天
700条/天
500条/天
L05
网站公告
管理员
公告栏
(编号)、标题、内容
5条/天
3条/天
1条/天
表2-3 数据存储描述(部分)
编号
名称
组成
关键字
存储大小
CC01
商品
列表
商品编号 、商品名称、商品价格、发布日期、种类编号、图片编号、公司编号、备注
商品编号
4000条/月
CC02
用户
列表
用户编号、用户名、联系地址、联系电话、电子邮箱
用户编号
1000条/月
CC03
订单
列表
订单编号、商品编号、商品数量、收货者姓名、联系电话、送货地址
订单编号
4000条/月
CC04
公告
列表
公告编号、公告标题、公告内容、发布时间
公告编号
500条/月
CC05
公司
列表
公司编号、公司名称、公司描述、公司地址、联系电话、电子邮箱
公司编号
1000条/月
CC06
留言
板
编号、昵称、留言、留言时间
编号
500条/月
表2-4 数据结构描述(部分)
编号
SJJG01
名称
商品标识
组成
商品名称+种类编号+图片编号+单位
相关数据流
商品信息、公司信息、图片信息
相关处理逻辑
商品管理、商品查询、购物车
表2-5 处理逻辑描述(部分)
编号
名称
输入
处理
输出
LJ01
商品管理
商品信息
根据商品基本信息,存入后台数据库,并在网站首页展示以供浏览者浏览
商品列表
LJ02
商品查询
查询要求
根据浏览者选择的商品种类或用户输入的商品名称显示相关信息
查询结果
LJ03
用户注册
用户信息
将用户输入的基本信息存入后台数据库
用户列表
LJ04
用户管理
用户列表
查看用户的基本信息,通过设置freeze的值,冻结或解冻用户
修改后的用户列表
LJ05
购物车
购物选择
取出用户所选商品的标识,显示商品的相关信息和用户需要支付的费用
我的购物车
LJ06
订单管理
我的购物车、收货者息
根据收银台传来的信息,制订成订单,在用户确定后存入后台,管理员可根据订单编号查询相关信息
订单列表
LJ07
公司管理
公司信息
根据商品基本信息,存入后台数据库,仅供管理员查看
公司列表
LJ08
公告管理
网站消息
管理员将新的网站消息发布到网站前台的公告栏,并在后台将过时的网站消息删除
公告列表
LJ09
留言板
意见建议
用户或浏览者将自己对网站的意见和建议留在网站的留言板上,管理员进行查看和删除
留言板信息
3 系统设计
3.1平台设计
表3-1 系统平台设计
系统平台
详细设计
硬件平台
服务器:PIIII及以上CPU,512M内存,硬盘20G, 10/100M网络
客户端:IE6.0及以上
软件平台
操作系统:Windows XP
数据库:SQL Server 2000
3.2 软件总体结构设计
3.2.1功能结构图
若图片无法显示请联系站长QQ3710167
基于.NET的网上商城系统的分析与设计
图3-1电子商务网站前台功能结构图
图3-2电子商务网站后台功能结构图
3.2.2 模块说明书
表3-2 “用户管理”模块说明书
模块标识
EC01
所属子系统
模块名称
用户管理
主要功能
设置用户的可用状态,实现冻结和解冻,查看用户信息
调用模块
用户注册、用户登录,修改资料
输 入
用户信息
输 出
处理后的用户信息
相关数据表
用户表
主要内部变量
用户名,密码,所处状态
算 法
1)通过全局变量记录登录的用户名,在“修改资料”中引用该变量,修改该用户的资料。
2)通过所处状态,允许或拒绝用户进入
表3-3 “商品管理”模块说明书
模块标识
EC02
所属子系统
模块名称
商品管理
主要功能
添加商品种类,按种类查询商品,实现增加和删除
调用模块
商品种类管理,添加商品,删除商品
输 入
商品种类,具体商品信息
输 出
商品列表
相关数据表
商品种类表,商品信息表
主要内部变量
商品编号,商品价格,商品数量
算 法
1) 根据商品种类查看商品基本信息
2) 根据商品编号查看商品
3) 对查询结果进行操作(删除)
表3-4 “购物车”模块说明书
模块标识
EC03
所属子系统
模块名称
购物车
主要功能
添加购买的商品,从购物车中移出商品,查看购物车
调用模块
输 入
商品编号,商品名称,商品价格
输 出
商品基本信息,购买数量,商品总价格
相关数据表
商品信息表,图片信息表,购物车关系表
主要内部变量
商品编号,商品名称,购买数量,用户名
算 法
1)用户查看商品,选择要购买的商品
2)将选中的商品加入购物车
3)查看购物车,按照用户需求更改购买数量,以及确定购物选择
表3-5 “收银台”模块说明书
模块标识
EC04
所属子系统
模块名称
收银台
主要功能
填写订单信息,购物结账
调用模块
购物车
输 入
订单信息,购物车信息
输 出
送货信息
相关数据表
用户信息表,收货者信息表,购物车信息表,商品信息表
主要内部变量
商品编号,购物车编号,用户名
算 法
1)确定用户的购物信息
2)根据用户名生成订单
表3-6 “公告管理”模块说明书
模块标识
EC05
所属子系统
模块名称
公告管理
主要功能
发布公告,删除公告,查看公告
调用模块
输入
公告标题
输出
公告列表
相关数据表
公告信息表
主要内部变量
公告编号,公告标题
算法
1) 公告查询时,输入公告标题
2) 发布公告,编号自动增一
3) 根据选中的公告的编号,实现数据表删除相关内容
基于.NET的网上商城系统的分析与设计
表3-7 “留言板”模块说明书
模块标识
EC06
所属子系统
模块名称
留言板
主要功能
查看留言板,删除留言
调用模块
输入
意见、建议
输出
留言时间,昵称,留言
相关数据表
留言信息表
主要内部变量
用户名
算法
1)根据用户的输入显示及时信息,按当前时间降序排列
2)后台根据编号删除相关留言
3.3 代码设计
系统中对订单编号进行了代码设计,为使订单编号实现系统自动编码,编码采用层次码加顺序码,层次码表示年、月、日,顺序码则表示订单形成的先后次序。考虑到网站的规模和订单的数量,编号的顺序码采用三位。代码模型如图3-3所示。若图片无法显示请联系站长QQ3710167
图3-3订单编号的代码模型
3.4 数据库设计
3.4.1 E-R图
系统中主要涉及到的实体有“管理员”、“用户”、“商品”、“图片”、“购物车”、“公司”、“公告”、“订单”、“留言板”。实体与实体之间的联系如图3-4所示。若图片无法显示请联系站长QQ3710167
图3-4系统E-R图
3.4.2数据表设计
表3-8 Users(用户表)
字段名
描述
类型
长度
是否为空
PK/FK
userID
用户编号
int
4
not null
PK
username
用户姓名
char
10
null
password
用户密码
char
10
null
Address
联系地址
varchar
200
null
Telephone
联系电话
varchar
20
null
Email
电子邮箱
varchar
200
null
freeze
冻结状态
varchar
1
null
表3-9 Companys(公司表)
字段名
描述
类型
长度
是否为空
PK/FK
CompanyID
公司表主键
int
4
not null
PK
comname
公司名称
varchar
32
null
Description
详细描述
varchar
1000
null
Address
公司地址
varchar
200
null
Telephone
联系电话
varchar
20
null
Email
电子邮箱
varchar
200
null
表3-10 Products(商品表)
字段名
描述
类型
长度
是否为空
PK/FK
ProductID
商品主键
int
4
not null
PK
Description
商品描述名称
varchar
50
null
PictureID
商品的图片ID
int
4
null
FK
CompanyID
商品所属的公司ID
int
4
null
FK
CategoryID
商品所属的种类ID
int
4
null
FK
Quantity
商品的数量
int
4
null
Price
商品的价格
decimal
9
null
Pubdate
商品发布的时间
datetime
8
null
Details1
商品详细属性说明一
varchar
500
null
Details2
商品详细属性说明二
varchar
500
null
Details3
商品详细属性说明三
varchar
500
null
Details4
商品详细属性说明四
varchar
500
null
Details5
商品详细属性说明五
varchar
500
null
表3-11 Categorys(商品种类表)
字段名
描述
类型
长度
是否为空
PK/FK
CategoryID
商品种类主键
int
4
not null
PK
Description
种类描述
varchar
100
null
表3-12 ShopCarts(用户购物车表)
字段名
描述
类型
长度
是否为空
PK/FK
ShopCartID
用户购物车主键
varchar
11
not null
PK
UserID
购物车所属用户主键
Int
4
null
FK
Pubdate
发布时间
datetime
8
null
ProductNum
商品数量
int
4
null
TotalPrice
总消费额
int
4
null
表3-13 ProductCarts(商品和购物车关系表)
字段名
描述
类型
长度
是否为空
PK/FK
ProductID
商品主键
int
4
not null
PK
ShopCartID
购物车主键
varchar
11
null
FK
Quantity
商品在购物车中的数量
int
4
null
基于.NET的网上商城系统的分析与设计
表3-14 Pictures (商品图片表)
字段名
描述
类型
长度
是否为空
PK/FK
PictureID
商品图片主键
int
4
Not null
PK
Title
商品图片标题
varchar
100
null
PictureUrl
商品图片链接地址
varchar
200
null
表3-15 ManagerInfor(管理员表)
字段名
描述
类型
长度
是否为空
PK/FK
mngID
管理员主键
int
4
not null
PK
mngname
管理员姓名
char
10
null
magpassword
管理员密码
char
10
null
表3-16 Msg(留言板)
字段名
描述
类型
长度
是否为空
PK/FK
MsgID
留言板主键
int
4
not null
PK
username
用户名
char
10
null
Msgcontent
留言内容
varchar
200
null
Time
留言时间
datetime
8
null
表3-17 SHInformation(收货者信息表)
字段名
描述
类型
长度
是否为空
PK/FK
username
用户名
char
10
not null
PK
SHName
收货者姓名
varchar
10
null
SHAddress
收货者地址
varchar
200
null
SHCity
收货者城市
varchar
10
null
SHPhone
收货者电话
varchar
20
null
表3-18 BBS(公告表)
字段名
描述
类型
长度
是否为空
PK/FK
bbsID
公告主键
int
4
not null
PK
bbstitle
公告标题
varchar
100
null
bbscontent
公告内容
varchar
1000
null
bbspubdate
发布时间
datetime
8
null
3.5界面设计
系统界面风格基本一致,本着方便用户宗旨,在页面的设计上趋向于人性化,易于操作:
﹡界面清晰明了、协调一致,同样功能用同样的图形
﹡有清楚的错误提示,误操作后,系统提供有针对性的提示
﹡使用用户的语言,而非技术的语言
﹡方便退出,随时转移界面,很容易从一个界面跳到另外一个界面
﹡让用户知道自己当前的位置,使其做出下一步行动的决定
3.5.1 网站首页界面
网站首页界面由页面B2Cmain.aspx实现,B2Cmain.aspx.cs文件为它的代码隐藏文件。首页是网站的门面,需要把待售的商品展示给网站浏览者看,以吸引浏览者以网站用户身份登录购买。根据这种理念,在首页提供商品展示,商品查询,商品详细查看,展示流动公告,留言板,用户登录等基本功能,给浏览者足够的空间去决定下一步做什么。因此可以设计如图3-5所示的操作界面。
基于.NET的网上商城系统的分析与设计
图3-5网站首页界面
3.5.2用户注册界面 若图片无法显示请联系站长QQ3710167
用户注册由页面Regist.aspx实现,Regist.aspx.cs文件为它的代码隐藏文件。根据注册界面主要实现用户基本信息的录入功能,可以对有公认格式的数据做格式验证,将密码输入的数据显示由黑点替代,为确保用户记住自己的密码,需要设置确认密码项,两次密码输入结果相同方可提交。因此,可以设计如图3-6所示的界面。
图3-6用户注册界面
3.5.3 购物主界面若图片无法显示请联系站长QQ3710167
购物主界面由页面shopping.aspx实现,shopping.aspx.cs文件为它的代码隐藏文件。购物界面是网站用户登录后的界面,可以将用户的名字显示在页面上以示友好的欢迎,除了提供网站首页的功能外,还需提供商品购买和修改用户信息的接口。因此可以设计如图3-7所示的操作界面。
图3-7购物主界面
3.5.4 查看购物车界面若图片无法显示请联系站长QQ3710167
查看购物车由页面showcart.aspx实现,showcart.aspx.cs文件为它的代码隐藏文件。用户在查看购物车的时候,网站需提供显示用户所购买的商品信息,所需支付的金额的功能,此外为方便用户购买同样的商品,或者改变购物选择,还需要提供更改商品数量,删除商品,继续购买,去收银台的功能。因此可以设计如图3-8所示的操作界面。
图3-8查看购物车界面
3.5.5收银台界面
收银台由页面CheckShopCart1.aspx和CheckShopCart2.aspx实现,CheckShopCart1.aspx.cs和CheckShopCart2.aspx.cs分别为它们的代码隐藏文件。收银台主要实现显示送货信息,购买的商品的信息等功能,界面设计如图3-9所示。
3.5.6 后台管理首页
后台管理首页包括了实现整个后台管理系统功能的菜单,展示了所有后台界面的设计风格,由页面main.aspx实现,main.aspx.cs文件为它的代码隐藏文件。操作界面设计如图3-13所示。
图3-11后台管理首页
3.5.7 商品管理
商品管理由页面CategoryManage.aspx(商品种类管理)、AddProduct.aspx(添加商品)、ProductManage.aspx(删除商品)实现,CategoryManage.aspx.cs、AddProduct.aspx.cs、和ProductManage.aspx.cs文件分别为它们的代码隐藏文件。
图3-14删除商品界面
3.5.8 后台用户管理界面
用户管理由页面userInfor.aspx和fre-unfre-user.aspx实现,userInfor.aspx.cs和fre-unfre-user.aspx.cs文件分别为它们的代码隐藏文件。操作界面设计如图3-15所示。
图3-16冻结/解冻用户界面
3.5.9 后台管理其它界面
公司管理由页面CompanyInfor.aspx(查看公司列表)和CompanyAdd.aspx(新添供货公司)实现,订单管理由页面OrderList.aspx(查看订单信息)和 OrderDetails.aspx(查询详细信息),公告管理由页面BBCInfor.aspx(查看公告)、 AddBBS.aspx(添加公告)和 DeleteBBS.aspx(删除公告)实现,留言板由页面MsgInfor.aspx实现,界面的大体设计风格一致。
3.6系统安全设计
主要针对提高数据的安全保密性方面而言:
﹡对系统中的数据库定义访问权限。如对由某用户产生的数据,该用户对它具有操作权限,其他用户只有读权或无访问权。
﹡对软件的功能模块定义不同的操作权限,不同的级别,提供不同的操作。
﹡提供数据备份及恢复功能,以防系统遭到严重危害后,可恢复到较早前的状态。
基于.NET的网上商城系统的分析与设计
4 系统实施
4.1 数据库的实施
在Web Service的web.config页面进行数据库连接配制:
Name表示该数据库连接的名字;Database表求要连接的SQL数据库的名字;Server=(local)表求数据库为本地计算机连接;uid是连接数据库使用的用户名,pwd表示连接数据库登录的密码。
4.2 程序实现
4.2.1 系统类的编写
商品的类:
public class Products
{
public Products()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
int product_id;
string product_description;
decimal product_price;
int product_num;
DateTime product_pubdate;
public int ProductID
{
get { return product_id; }
set { product_id = value; }
}
public string ProductDescription
{
get { return product_description; }
set { product_description = value; }
}
public decimal ProductPrice
{
get { return product_price; }
set { product_price = value; }
}
public int ProductNum
{
get { return product_num; }
set { product_num = value; }
}
public DateTime ProductPubdate
{
get { return product_pubdate; }
set { product_pubdate = value; }
}
public Products(int productid, string productdescription, decimal productprice, int productnum,DateTime productpubdate)
{
product_id=productid;
product_description=productdescription;
product_price=productprice;
product_num=productnum;
product_pubdate =productpubdate ;
}
}
购物车的类:
public class ShoppingCarts
{
public ShoppingCarts()
{
}
Hashtable productOders = new Hashtable();
public ICollection Product
{
get { return productOders.Values; }
}
public void AddProductOrder(Products order)
{
Products product = (Products)productOders[order.ProductID];
if (product != null)
{
product.ProductNum += 1;
}
else
{
productOders.Add(order.ProductID, order);
}
}
public void RemoveProductOrder(int id)
{
if (productOders[id] != null)
{
productOders.Remove(id);
}
}
public decimal TotalPrice
{
get
{
decimal totalPrice = 0;
foreach (DictionaryEntry entry in productOders)
{
Products product = (Products)entry.Value;
totalPrice = totalPrice + product.ProductPrice * product.ProductNum;
}
return totalPrice;
}
}
public void UpdateProductOrder(int id, Products order)
{
if (productOders[id] != null)
{
productOders[id] = order;
}
}
}
4.2.2系统程序的实现
网站首页实现代码(B2Cmain.aspx.cs):
using System.Data.SqlClient;
public partial class B2Cmain : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
GetSourceListData();
基于.NET的网上商城系统的分析与设计
GetDataListData("select * from Products inner join Pictures on Products.PictureID=Pictures.PictureID");
bbsshow();
}
}
ConnectionStringSettings sets = ConfigurationManager.ConnectionStrings["DBConnection"];
SqlConnection conn;
protected void bbsshow()
{
conn = new SqlConnection(sets.ConnectionString);
SqlCommand cmd = new SqlCommand("select bbscontent from BBS ", conn);
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
Label2.Text += reader.GetString(0) + "
";
}
reader.Close();
conn.Close();
}
private void GetSourceListData()
{
SourceList.Items.Clear();
conn = new SqlConnection(sets.ConnectionString);
SqlCommand cmd = new SqlCommand("select CategoryID,Description from Categorys order by CategoryID", conn);
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
SourceList.Items.Add(new ListItem(reader["Description"].ToString(), reader["CategoryID"].ToString()));
}
reader.Close();
conn.Close();
}
private void GetDataListData(string sqlStr)
{
conn = new SqlConnection(sets.ConnectionString);
SqlDataAdapter da = new SqlDataAdapter(sqlStr, conn);
DataSet ds = new DataSet();
da.Fill(ds);
DataList1.DataSource = ds;
DataList1.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
GetDataListData("select * from Products inner join Categorys on Products.CategoryID=Categorys.CategoryID "
+ "inner join Pictures on Products.PictureID=Pictures.PictureID where Categorys.CategoryID=" + Convert.ToInt32(SourceList.SelectedValue));
}
protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{
if (e.CommandName == "image")
{
int product_id = Convert.ToInt32(DataList1.DataKeys[e.Item.ItemIndex]);
Session["product_id"] = product_id;
Response.Redirect("B2Cmain1.aspx");
}
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
Response.Redirect("Default.aspx");
}
protected void LinkButton2_Click(object sender, EventArgs e)
{
Response.Redirect("zxhIndex.aspx");
}
}
用户注册实现代码(Regist.aspx.cs):
public partial class Regist : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void handon_Click(object sender, EventArgs e)
{
zhuce();
}
protected void zhuce()
{
ConnectionStringSettings sets = ConfigurationManager.ConnectionStrings["DBConnection"];
SqlConnection conn = new SqlConnection(sets.ConnectionString);
SqlCommand cmd = new SqlCommand("insert into Users(username,password,Address,Telephone,Email) values ('" + UserName.Text + "','"+Password.Text+"','"+Address.Text+"','"+Telephone.Text+"','"+Email.Text+"')", conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
Response.Write("");
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("zxhIndex.aspx");
}
}
购物主界面的实现代码(shopping.aspx.cs):
public partial class shopping : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
BindData();
string username = Session["username"].ToString();
Label1.Text = username;
bbsshow();
}
ConnectionStringSettings sets = ConfigurationManager.ConnectionStrings["DBConnection"];
SqlConnection conn;
protected void bbsshow()
{
conn = new SqlConnection(sets.ConnectionString);
SqlCommand cmd = new SqlCommand("select bbscontent from BBS ", conn);
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
基于.NET的网上商城系统的分析与设计
while (reader.Read())
{
Label2.Text += reader.GetString(0)+"
";
}
reader.Close();
conn.Close();
}
protected void BindData()
{
conn = new SqlConnection(sets.ConnectionString);
SqlDataAdapter da = new SqlDataAdapter("select * from Products", conn);
DataSet ds = new DataSet();
da.Fill(ds);
productList.DataSource = ds;
productList.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
BindData2();
}
protected void BindData2()
{
string spmc = prodtdesn.Text;
conn = new SqlConnection(sets.ConnectionString);
SqlDataAdapter da = new SqlDataAdapter("select * from Products where Description='" + spmc + "'", conn);
DataSet ds = new DataSet();
da.Fill(ds);
productList.DataSource = ds;
productList.DataBind();
}
protected void LinkButton2_Click(object sender, EventArgs e)
{
Response.Redirect("userupdate.aspx");
}
protected void productList_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
productList.PageIndex = e.NewPageIndex;
productList.DataBind();
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
Response.Redirect("Default.aspx");
}
}
收银台功能实现代码(CheckShopCart2.aspx.cs):
public partial class CheckShopCart2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Userorders dingdan = (Userorders)Session["userorder"];
Label1.Text = dingdan.UserName;
Label2.Text = dingdan.UserAddress;
Label3.Text = dingdan.UserCity;
Label4.Text = dingdan.UserPhone;
ShoppingCarts cart;
cart = (ShoppingCarts)Session["shoppingcart"];
GridView1.DataSource = cart.Product;
GridView1.DataBind();
Label5.Text += cart.TotalPrice;
}
protected void Button2_Click(object sender, EventArgs e)
{
Response.Redirect("shopping.aspx");
}
protected void Button1_Click(object sender, EventArgs e)
{
ConnectionStringSettings sets = ConfigurationManager.ConnectionStrings["DBConnection"];
SqlConnection conn = new SqlConnection(sets.ConnectionString);
string username = Session["username"].ToString();
int n = GridView1.Rows.Count;
for (int i = 0; i < n; i++)
{
int id =Convert.ToInt32( GridView1.Rows[i].Cells[0].Text);
int num = Convert.ToInt32(GridView1.Rows[i].Cells[4].Text);
SqlCommand cmd = new SqlCommand("insert into ShopCarts(username,ProductID,ProductNum) values ('" + username+ "'," + id + "," + num+ ")", conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
SqlCommand cmd1 = new SqlCommand("insert into SHInformation(username,SHName,SHAddress,SHCity,SHPhone) values ('" + username + "','" + Label1.Text + "','" + Label2.Text + "','" + Label3.Text + "','" + Label4.Text + "')", conn);
conn.Open();
cmd1.ExecuteNonQuery();
conn.Close();
Response.Write("");
}
}
冻结/解冻用户实现代码(fre-unfre-user.aspx.cs):
public partial class fre_unfre_user : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
BindData();
}
ConnectionStringSettings sets = ConfigurationManager.ConnectionStrings["DBConnection"];
SqlConnection conn;
protected void BindData()
{
conn = new SqlConnection(sets.ConnectionString);
SqlDataAdapter da = new SqlDataAdapter("select * from Users", conn);
DataSet ds = new DataSet();
da.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
}
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
int id = Convert.ToInt32(GridView1.Rows[Convert.ToInt32(e.CommandArgument)].Cells[0].Text);
if (e.CommandName == "djyh")
{
conn = new SqlConnection(sets.ConnectionString);
SqlCommand cmd = new SqlCommand("update Users set freeze='1' where userID=" + id,conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
else if (e.CommandName == "jdyh")
{
conn = new SqlConnection(sets.ConnectionString);
SqlCommand cmd = new SqlCommand("update Users set freeze='0' where userID=" + id,conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
else
{ }
}
protected void Button1_Click(object sender, EventArgs e)
{
BindData2();
}
protected void BindData2()
{
string gkxm1 = gkxm.Text;
conn = new SqlConnection(sets.ConnectionString);
SqlDataAdapter da = new SqlDataAdapter("select * from Users where username='" + gkxm1 + "'", conn);
DataSet ds = new DataSet();
da.Fill(ds);
GridView1.DataSource = ds;
基于.NET的网上商城系统的分析与设计
GridView1.DataBind();
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();
}
}
留言板管理功能实现代码(DeleteBBS.aspx.cs):
public partial class DeleteBBS : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
BindData();
}
ConnectionStringSettings sets = ConfigurationManager.ConnectionStrings["DBConnection"];
SqlConnection conn;
protected void BindData()
{
conn = new SqlConnection(sets.ConnectionString);
SqlDataAdapter da = new SqlDataAdapter("select * from BBS ", conn);
DataSet ds = new DataSet();
da.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
conn = new SqlConnection(sets.ConnectionString);
int id = Convert.ToInt32(GridView1.Rows[e.RowIndex].Cells[0].Text);
SqlCommand cmd = new SqlCommand("delete from BBS where bbsID=" + id, conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
BindData();
}
protected void Button1_Click(object sender, EventArgs e)
{
BindData2();
}
protected void BindData2()
{
string ggbt1 = ggbt.Text;
conn = new SqlConnection(sets.ConnectionString);
SqlDataAdapter da = new SqlDataAdapter("select * from BBS where bbstitle='" + ggbt1 + "'", conn);
DataSet ds = new DataSet();
da.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
}
}
基于.NET的网上商城系统的分析与设计
5 结束语
论文从概述到系统分析再到系统设计最后进行系统实施,记录了系统开发的整个过程。在分析阶段对系统进行了目标需求分析,可行性分析,业务流程分析,数据流程分析。在设计阶段对整个系统的运行平台,数据库,操作界面,系统安全进行了详细的设计。在系统的实施阶段,主要从数据库和程序代码两个方面进行研究和实现。
由于初次独立开发,所以系统还存在一些不足之处。在分析阶段,由于对问题的认识不够深刻,可能导致在设计阶段出现一些设计性不足;在开发阶段,由于对软件工程的认识不够深入,在软件设计过程中许多代码没有考虑到其重用性,使系统中重写了许多代码,增加了代码的复杂度。
系统是采用Macromedia Dreamweaver MX 2004 开发Web静态网页,运用VS.NET2005动态网站开发技巧来实现与数据库的连接,从而开发成一个具有用户注册,商品展示,商品查询,购物车,收银台及网站后台管理等功能的小型的B2C模式的网上购物商城。由于时间和费用方面的关系,系统存在着很多的不足,实现的功能相对简单,但是系统已经具备了电子商务网站的核心功能,可以模拟电子商务的流程进行系统试运行,而且操作简单,界面友好,系统及数据库易于维护。
参考文献:
[1] 王虎,张骏.管理信息系统[M].武汉:武汉理工大学出版社,2002.
[2] 樊海斌.基于ASP.NET技术的办公自动化系统设计[J].软件导刊,2007(3):84-86.
[3] 韦欣.B2C电子商务模式的发展[J].科技前沿,2007(3):10-11.
[4] 谭芳芳,金晓青.我国现阶段电子商务B2C类型物流配送模式的经济学分析:以B2C网上书城为例[J].南方经济,2006(1):39-47.
[5] 李建华.基于.Net的三层结构[J].软件导刊,2007(3):73-74.
[6] 求是科技.ASP.NET数据库管理系统开发实例导航[M].北京:人民邮电出版社,2005.
[7] 谭桂华, 魏亮.Visual C#高级编程范例[M].北京:清华大学出版社,2004.
[8] 闫洪亮,潘勇.ASP.NET程序设计教程[M].上海:上海交通大学出版社,2006.
[9] 张大鹏,杨波.网页制作三剑客范例导航[M].北京:清华大学出版社,2006.
[10] 冯淑杰.网络新宠ASP.NET[J].科技咨询导报,2007(9):11.
[11] 求是科技,张蓓.ASP.NET通用模块及典型系统开发[M].北京:人民邮电出版社,2006.
[12] 郑耀东,蔡骞.ASP.NET网络数据库开发实例精解[M].北京:清华大学出版社,2006.
[13] 启明工作室.ASP.NET+SQL Server网络应用系统开发与实例[M].北京:人民邮电出版社,2005.
[14] 王晟.Visual C#.NET数据库开发经典案例解析[M].北京:清华大学出版社,2005.
[15] 万峰科技.ASP.NET网站开发四“酷”全书[M].北京:电子工业出版社,2005.
[16] 汤涛..NET企业级应用程序开发教程[M].北京:清华大学出版社,2005.
[17] 李应伟, 姚素霞, 景丽.ASP.NET数据库高级教程(C#篇)[M].北京:清华大学出版社,2004.
[18] David Flanagan.JavaScript权威指南[M].北京:机械工业出版社,2006.
[19] 蔡淑琴.管理信息系统[M].北京:科学出版社,2004.
[20] Dan Livingston.CSS与DHTML精髓[M].北京:清华大学出版社,2003.
[21] 肖建.ASP.NET编程实例与技巧集粹[M]. 北京:北京希望电子出版社,2003.
[22] 王惠刚,王挺. ASP.NET实用培训教程[M]. 北京:北京希望电子出版社,2003.
[23] Wright .C#编程技术与技巧[M]. 北京:机械工业出版社,2002.
[24] Roger Clarke. Promises and Threats in Electronic Commerce [EB/OL].http://www.anu.
Edu.au/people/Roger.Clarke/EC/Quantum.html,2007-04-10.
[25] Dinlersoz, Emin M,et al. On the diffusion of electronic commerce[J]. International Journal of Industrial,2005(4):623-628.
[26] Zuccato, Albin .Holistic security management framework applied in electronic commerce[J].Computers & Security,2007(3):256-265.
[27] Gupta, Amar; Denny, Nathan; Seshasai, Satwik. Offshoring and Outsourcing: The Innovation and its Impact on Electronic Commerce in Organizations[J].Journal of Electronic Commerce in Organizations,2007(2):1-4.
[28] Ming-Hsien Yang et al.The organizational transformation of securities brokerage firms under electronic commerce environment[J].Journal of Computer Information Systems,2007(3):111-117.
[29] Kartiwi, Mira; MacGregor, Robert C. Electronic Commerce Adoption Barriers in Small to Medium-Sized Enterprises (SMEs) in Developed and Developing Countries: A Cross-Country Comparison[J] Journal of Electronic Commerce in Organizations, 2007(3): 35-51.