资源描述
基于.NET的网上购物商城网站(完整资料)
(可以直接使用,可编辑 优秀版资料,欢迎下载)
毕业设计(论文)
论文题目:基于。NET的网上购物商城网站
系 别: 计算机与信息技术系
专业班级: 14计算机信息管理
学生姓名:
指导教师:
二○一七 年 五 月 二十 日
目 录
摘要1
引言2
1绪论2
1。1系统开发的背景及意义2
1.2国内外研究现状2
2 系统开发工具及环境2
2.1系统开发环境2
2.2 ADO.NET简介3
2。3 Sql Server简介4
3需求分析4
3.1可行性分析4
3.2系统的目标5
3.3功能结构图5
4系统的总体设计6
4.1数据库实体设计6
4.2 数据表设计9
5 功能模块设计说明10
5。1会员注册页面10
5.2商品列表页面11
5。3商品详情页面12
5.4购物车页面14
5.5 商品评价页面16
5。6我的信息页面17
5.7管理员登录页面18
5.8管理订单信息页面19
5总结20
参考文献21
致谢22
基于。NET的网上购物商场网站
【摘要】近年来,随着Internet的迅速崛起,互联网已日益成为收集提供信息的最佳渠道并逐步进入传统的流通区域。于是电子商务开始流行起来,越来越多的商家在网上建起了在线商店,向消费者展示出一种新颖的购物理念.网上购物系统是一种具有交互功能的商业信息系统,它向用户提供静态和动态两类信息资源.在现实生活中,网上购物已经成为现代人的一种需求,它的方便快捷是穿那个痛购物方式无法比拟的。该网站主要实现了会员注册、登录、浏览、订购商品、发表评价、管理购物车、管理订单等功能。通过后台管理模块可以实现管理员对会员、商品、订单、商品评价的管理等功能,可以查看报表统计。以Microsoft Visual2005作为开发环境,采用ASP。NET技术,使用SQL Server2005数据库开发,整个网站操作简单,界面友好,灵活,实用。
【关键词】网上购物 电子商务 ASP。NET SQL Server 2005ﻭ引言
近年来,随着信息技术的不断发展和Internet互联网技术的日益普及,人们越来越意识到电子商务对国家经济、企业管理和个人生活所带来的巨大影响。它满足企业、商人和消费者对提高产品和服务的质量、加快服务速度、降低费用等方面的需求,也帮助企业和个人通过网络查询和信息检索为企业下一步的发展方向提供支持。借助电子商务,企业和个人,企业和企业可以通过网络进行交易和全过程的服务。
1 绪论
1.1 系统开发的背景及意义
计算机及网络技术,在国内网络应用和不断增长的全球普及的快速发展,网络已经是人们不可缺少的一部分。网上购物也越来越流行。生活节奏的不断加快,越来越多的人希望有一个快速简便的购物方式.网上购物已逐渐发展成为一种趋势,有更多的人喜欢网上购物。正因为如此,网上购物以迅猛的速度,蔓延到全球的所有国家。
网上购物以其方便,快捷,高效,高选择性等优点,迅速得到了广大网友的喜爱与青睐,现在的网上购物已经非常普及。本系统设计就是为了满足广大网友的这些需求,改变传统的交易模式,通过互联网完成查看商品,购买商品等完成网上交易。方便消费者,同时对商家的商品信息进行管理,便于商家的商品数据分析。
1.2 国内外研究现状
随着计算机技术的不断发展以及越来越多的人口网络,电子商务已经成为现代社会的一个标志.在我国,随着网络的普及,以及拥有13亿人的消费大国,一些风险投资商纷纷争夺中国的网上购物市场,比如当当网、易趣网、8848等.而在美、日等信息化程度较高的国家和地区,网络商店发展速度迅猛,美国的世界级超一流的零售商,如沃尔玛、凯玛特、家庭仓储、科罗格、J。C培尼等纷纷跻身于网络经商的行列。调查表明:美国的家庭己越来越习惯于在家中从网上购物。
2系统开发工具及环境
2.1系统开发环境
硬件平台:硬盘空间: 80G以上;
内存:1G以上;
CPU: Inter Pentium 4 3。0GHz 或更高;
操作系统:Windows 2000/windows XP/Windows 7
其它软件:浏览器:IE浏览器 6.0以上
数据库:SQL Server 2005
开发平台:Microsoft Visual Studio 2005
2。2ADO.NET简介
ADO。NET可以实现不同的数据库调用同一个统一的数据库访问接口,使得访问过程更加简便,快速,提高软件开发的通用性,灵活性,可重用性和可扩展性。 ADO.NET由ADO演变,ADO(ActiveX数据对象)是编程接口,应用层,数据COM接口穿过OLEDB提供访问数据库。 ADO命令对象执行SQL命令. ADO可以继承RDO(远程数据对象)和DAO(数据访问对象)和其他数据访问对象层。 ADO系统,Recordset对象是最强大的,可以访问数据集,并可以显示,统计数据,每个数据更新。虽然ADO有很多优点,但也存在一些不足之处,它只能返回一个数据集,因此不支持XML。随着以这些限制克服这些困难,并出现了ADO。NET,它取代了ADO,ADO。NET系统中,DataSet对象是关键。 DataSet对象和DataAdapter对象共同实现Recordset对象的功能.在断开模式下可以被编程为提高程序执行的效率,并且可以实现非常复杂的功能. ADO.NET系统中常用的对象有:连接对象,命令对象,DataAdapter的对象,DataReader对象和DataSet对象。
(1)连接对象
连接对象用于连接数据源,数据源类型,位置和其他属性是由不同的属性集。它提供了连接的数据库的详细信息和数据源,所述指令可被转移到数据存储器。对象好像深水水龙头为保持水的连接.自来水连接,该数据库的一端;的另一端被连接到其他地方,以便于泵送。
(2).Command对象
Command对象用于实现数据库中的数据进行添加,修改,或调用存储过程等操作,提供详细的信息来运行的指令.对象是像泵抽水的权力。
(3).DataAdapter对象
DataAdapter对象是用于连接到数据库和断开对象,对于离线处理数据的填充方法。对象是像水管,用于输送水,水的运输,从源头上水库.
(4).DataReader对象
DataReader对象是用来检查数据行,迅速地返回到只读数据,提供到数据库的连接可以处理大量数据。的对象也可以比喻为管道,但它不传送到储存器,而是直接输送到水需要它的地方比在储存器,以更快的过境。
(5).DataSet对象
DataSet对象包含许多DataTable对象,性能是非常有效的.对象是不是要与数据库通信,填充从数据库中的数据集传送的数据的方法,你可以传递给DataAdapter的DataSet对象。同样,你可以更新DataAdapter对象未决更改数据库中的数据集对象的方法.对象是水库,存储在关联池中的水,即使断开,也可以有水,让水漏,这是ADO.NET的核心。
2.3Sql Server简介
SQL(结构化查询语言),结构化查询语言。 SQL语言的主要功能是建立与各种数据库进行通信联系.按照ANSI(美国国家标准协会)的规定,SQL是一种标准语言,关系数据库管理系统。 SQL语句可以用来从数据库等执行各种操作,诸如在数据库中的更新数据,提取数据.流行的关系数据库管理系统绝大多数都采用了标准的SQL语言。虽然很多数据库SQL语句重建及扩建计划,但包括选择,插入,更新,删除,创建,删除,其中包括标准的SQL命令仍然可以用来完成几乎所有的数据库操作。
3需求分析
3.1 可行性分析
综合在线购物市场用户群体的特点和不断增长的需求,以及技术、市场前景趋势等因素,在线购物市场有很大的发展前途,而网上购物商城系统则是建立在对商品的价格等参数对比的基础上的在线购物系统,因此本系统的开发是具有可行性的。
3.1.1技术可行性
目前,实体店铺购物某些工作存在盲目性、随意性、和无效消耗,不能保证工作质量,影响商品的销售,从销售者角度考虑可能带来实际的和潜在的经济损失。若开发成功本系统,将有助于卖家更好地预测市场,更好的开发客户及时调整经营销售策略,在激烈的市场竞争中把握主动。因此,从长远利益考虑,本项目若能开发成功,它所带来的效益将远高于系统投入.
3。1.2运行可行性
在实体店铺的业务方面,由于日常信息处理量大,耗费时间长,出错效率高,在系统投入运行后,可以实现业务中的信息集中处理、分析利用信息和信息的交流辅助市场的业务监管和重大决定。并且可以实现实体店铺进一步向网络服务发展,为信息工作打下良好的基础。
3.1.3操作可行性
由于计算机应用的普及,大多数人对电脑的管理和具体操作都耳熟能详。在网站设计,它将给用户的使用习惯充分考虑,它使操作方便;数据录入快捷,规范,可靠;准确的统计信息;适应能力强;易于扩展。尽量减少使用者的操作量来使用该系统中一个用户友好的环境.因此,使用该系统具有操作可行性的用户。
3.2系统的目标
开发出的系统应具备很强的开放性和扩展性等特性.本系统实现一个购物网站,应分为前台会员和后台管理员两大部分。前台会员部分:应完成会员注册登录,网站公告浏览,商品浏览,商品搜索,商品订购,购物车,个人订单查询,商品评价等功能,后台管理系统应完成会员管理,网站公告管理,商品类别管理,商品管理,订单管理,商品评价管理,系统管理等功能.从而在网上实现在线商品展示功能,在线交易功能等电子商务功能.
3.3功能结构图
系统的功能结构如图3—1所示:
图3-1系统功能结构图
3.4功能需求具体描述:
(1)前台管理包括的模块
会员注册及登陆模块、会员信息管理模块、购物信息管理模块、会员会员订单查询模块、会员商品评论模块。
(2)后台管理包括的模块
管理员注册及登陆模块、管理员信息管理模块、订单查询模块、订单管理模块、评论信息管理模块、会员信息管理模块、邮递方式管理模块和商品信息管理。
(3)会员注册及登陆模块
为了确保交易信息的有效性和网站功能拓展,购物网站需要以会员机制运作,浏览者必须成为会员,才能够在网站中购物。该模块通过与浏览者的交互,记录浏览者的基本信息,通过后台审核确定其信息的有效性。
(4)会员基本信息管理模块
会员在刚刚注册信息的时候,可能有些选择项没有填写或是对当时自己设置的密码的安全性不够放心,会员可在此模块中对自己的信息再次进行修改、确认,以保证信息的完整性和安全性。
(5)会员购物车及购物信息管理模块
是一个人性化的工具,浏览者对于中意的商品,在购买前临时存放在购物车中,并可以随时增减购物车中的商品种类和数量,以提高购物效率。浏览者购物完毕,系统会引导其进行结账,在选择好结账方式后,系统会自动生成并交给客户一个唯一的订单号。
(6)会员订单查询模块
会员记录下订单号后,可在此模块中进行查询,通过查询可调出所买商品的详细信息及是否已经发货等的信息。
(7)会员评论模块
会员在购买完商品后,还可对自己购买的商品的满意度进行点评,评论的内容会公布在网上,以供其他购买者参考。
(8)管理员注册及登录模块
与会员一样,管理员也有自己的信息,有固定的登录名和密码,需注册登录可以多个管理员管理此商品系统,避免了商品管理的局限性.
(9)管理员信息修改模块
管理员也可对自己的信息进行修改,例如修改密码等操作。
4系统的总体设计
4。1数据库实体设计
软件需求分析完成后,软件设计就可以开始。在软件开发周期,设计阶段是最有活力,最有创意的。该系统的整体设计阶段是使软件需求分析阶段所产生的描述转变成软件与适当的方法来表达的设计方案。
这一设计阶段是在需求分析的基础上,设计出能够满足需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。根据上面的设计规划出的实体有管理员实体、会员实体、商品类别实体、商品实体、商品评价实体、订单实体、订单内容实体、网站公告实体、积分记录实体。各个实体的E—R图及其关系描述如下:
1、管理员实体:
图4-1 管理员实体属性图
2、会员实体:
图4—2 会员实体属性图
3、网站公告实体:
图4-3 网站公告实体属性图
4、商品类别实体:
图4-4 商品类别实体属性图
5、商品实体:
图4—5 商品实体属性图
6、商品评价实体:
图4-6 商品评价实体属性图
7、订单实体:
图4—7 订单实体属性图
8、订单内容实体:
图4-8 订单内容实体属性图
4。2数据表设计
该系统数据库中各个表的设计结果如下:
表4—1管理员信息表
aid
管理员编号
int
4
是
否
lname
登录名
varchar
50
否
是
pwd
密码
varchar
100
否
是
flag
标识
int
4
否
是
表4-2会员信息表
lname
用户名
varchar
50
是
否
pass
登录密码
varchar
50
否
是
mname
姓名
varchar
50
否
是
sex
性别
varchar
10
否
是
tel
联系方式
varchar
50
否
是
address
收货地址
varchar
100
否
是
point
积分
int
4
否
是
表4—3商品信息表
pid
商品编号
int
4
是
否
pname
商品名称
varchar
50
否
是
tid
所属类别
int
4
否
是
pic
商品图片
varchar
100
否
是
price
售价
decimal
9
否
是
quan
库存数量
int
4
否
是
memo
商品简介
ntext
16
否
是
addtime
上架时间
datetime
8
否
是
flag
状态
varchar
50
否
是
表4—4订单表
oid
订单编号
varchar
50
是
否
lname
订购人
varchar
50
否
是
sprice
订单金额
decimal
9
否
是
pay
支付方式
varchar
50
否
是
atime
订购时间
datetime
8
否
是
flag
订单状态
varchar
50
否
是
表4-5订单内容表
id
编号
int
4
是
否
oid
订单编号
varchar
50
否
是
pid
商品编号
int
4
否
是
oprice
价格
decimal
9
否
是
quuantity
订购数量
int
4
否
是
5 功能模块设计说明
5.1会员注册页面
此页面实现会员的注册,会员必须注册后才能购买商品,用户名为主键唯一标识,不允许重复,如果重复将会弹出“该用户名已存在,请重新输入!"的提示,页面非空验证采用js实现。运行效果如图5—1所示:
图5—1 会员注册页面
主要实现代码如下:
protected void btnSave_Click(object sender, EventArgs e)
{ if (SqlHelper.GetCount("select count(*) from members where lname=’" + txt_lname.Text + "' ”) > 0)
{MessageBox.Show(this, "该用户名已存在,请重新输入!");
return; }
if (txt_pass2.Text!=txt_pass.Text)
{ MessageBox。Show(this, "两次密码不一致, 请确认!");
return; }
StringBuilder strSql = new StringBuilder();
strSql.Append(
@”insertinto Members ( lname,pass,mname,sex,tel,address,point,regtime ) ");
strSql.Append(
@" values (@lname,@pass,@mname,@sex,@tel,@address,@point,@regtime)");
SqlParameter[] parameters = new SqlParameter[] {
new SqlParameter("@lname", SqlDbType.VarChar,50),
new SqlParameter("@pass", SqlDbType.VarChar,50),
new SqlParameter("@mname”, SqlDbType。VarChar,50),
new SqlParameter(”@sex”, SqlDbType。VarChar,10),
new SqlParameter("@tel", SqlDbType.VarChar,50),
new SqlParameter(”@address", SqlDbType。VarChar,100),
new SqlParameter(”@point”, SqlDbType。Int,4),
new SqlParameter(”@regtime", SqlDbType.DateTime,8) };
SqlHelper。ExecuteNonQuery(strSql.ToString(),
CommandType.Text, parameters);
MessageBox。ShowAndRedirect(this, "恭喜您注册成功,请登录!", "login.aspx");}
5.2商品列表页面
此页面显示商品列表,商品列表显示采用Repeater数据控件,数据填充代码放在bind方法中,在Page_Load事件中调用bind即可实现数据的填充,数据分页采用第三方分页控件AspNetPager实现,默认每页显示16条信息,如果超出将会自动显示出分页.运行效果如图5—2所示:
图5-2商品列表页面
主要实现代码如下:
protected void bind()
{ DataPage dp = new DataPage();
string where = " flag='上架' ”;
if(Request.QueryString["tid”]!=null)
{if(Request.QueryString["tid”]!=”")
{ where += ” and tid=" + Request.QueryString["tid”];}}
if(Request.QueryString[”k”]!=null)
{ where += " and pname like '%" + Request。QueryString[”k"] + "%' ";}
int recordcount;
int pagesize = this.AspNetPager1.PageSize;
int pageindex =this.AspNetPager1.CurrentPageIndex;
Repeater1。DataSource =dp.pagelist(pagesize, pageindex, ”products", " * ”, "pid”, where, "pid desc”, out recordcount);
Repeater1.DataBind();}
5.3商品详情页面
此页面显示商品详情,还可以查看商品评价信息,会员登录后可以把商品加入购物车,运行效果如图5-3所示:
图5-3 商品详情页面
主要实现代码如下:
protected void Button1_Click(object sender, EventArgs e)
{ if (Session["name”] == null)
{ MessageBox。Show(this, ”请先登录!");
return; }
if (!PageValidate.IsNumber(TextBox1。Text))
{ MessageBox。Show(this, "数量输入有误,请重新输入!”);
return; }
if (int。Parse(TextBox1。Text)〉int。Parse(lblquan。Text))
{ MessageBox.Show(this, ”订购数量不能大于库存数量,请重新输入!”);
return; }
shoppingcart car = new shoppingcart();
if (Session[”car"] != null)
{ car = (shoppingcart)Session["car”];}
car_class product = new car_class(Request.QueryString["id”], lblpname.Text, decimal.Parse(lblprice。Text), int.Parse(TextBox1。Text), imgpic.ImageUrl);
car.additem(product);
Session["car"] = car;
MessageBox.ShowAndRedirect(this, "操作成功,请返回!”, Request.Url.ToString());}
5。4购物车页面
此页面实现购物车商品的显示,可以删除购物车中的商品,清空购物车,提交订单,还可以使用积分低用金额,运行效果如图5-4所示:
图5-4 购物车页面
主要代码如下:
shoppingcart car = new shoppingcart();
if (Session[”car"] != null)
{ car = (shoppingcart)Session[”car"];}
string oid = DateTime.Now.ToString("yyyyMMddhhmmssfff");
StringBuilder strSql = new StringBuilder();
strSql.Append(@”insert into Orders ( oid,lname,sprice,pay,atime,flag ) ”);
strSql.Append(@" values (@oid,@lname,@sprice,@pay,@atime,@flag)");
SqlParameter[] parameters = new SqlParameter[] {
new SqlParameter("@oid”, SqlDbType。VarChar,50),
new SqlParameter("@lname”, SqlDbType.VarChar,50),
new SqlParameter("@sprice", SqlDbType.Decimal,9),
new SqlParameter("@pay", SqlDbType。VarChar,50),
new SqlParameter("@atime", SqlDbType。DateTime,8),
new SqlParameter(”@flag”, SqlDbType。VarChar,50) };
parameters[0].Value = oid;
parameters[1].Value = Session["name"].ToString();
parameters[2].Value = Literal3.Text;
parameters[3].Value = type;
parameters[4]。Value = DateTime.Now;
parameters[5].Value = "等待发货";
SqlHelper.ExecuteNonQuery(strSql.ToString(), CommandType。Text, parameters);
ICollection orders = car.orders;
foreach (car_class pd in orders)
{ StringBuilder strSql2 = new StringBuilder();
strSql2.Append(@"insert into OrdersMore ( oid,pid,oprice,quantity ) ”);
strSql2.Append(@" values (@oid,@pid,@oprice,@quantity)”);
SqlParameter[] parameters2 = new SqlParameter[] {
new SqlParameter("@oid”, SqlDbType。VarChar,50),
new SqlParameter("@pid", SqlDbType.Int,4),
new SqlParameter("@oprice”, SqlDbType.Decimal,9),
new SqlParameter("@quantity”, SqlDbType.Int,4) };
parameters2[0]。Value = oid;
parameters2[1]。Value = pd.itemid;
parameters2[2].Value = pd。price;
parameters2[3].Value = pd。quantity;
SqlHelper.ExecuteNonQuery(strSql2.ToString(), CommandType。Text, parameters2);
SqlHelper。ExecuteNonQuery(”update products set quan=quan-”+pd.quantity.ToString()+" where pid="+pd。itemid.ToString()); }
int score =int。Parse( Math.Floor(decimal.Parse(Literal3。Text)).ToString());
SqlHelper.ExecuteNonQuery("insert into Records ( lname,rtype,memo,atime ) values(’” + Session["name"].ToString() + "’,’增加’,'购买商品获增["+score+”]积分',getdate())");
SqlHelper。ExecuteNonQuery("update members set point=point+” + score + ” where lname=’” + Session[”name”]。ToString() + "' ”);
if(TextBox1.Text!=”0")
{ SqlHelper。ExecuteNonQuery(”insert into Records ( lname,rtype,memo,atime ) values('” + Session["name"].ToString() + "','扣除’,'购买商品兑换[" + TextBox1。Text + "]积分',getdate())");
SqlHelper。ExecuteNonQuery("update members set point=point—” + TextBox1.Text + ” where lname='" + Session["name”].ToString() + "' "); }
car。clarecar();
Session["car”] = car;
5.5商品评价页面
此页面为会员功能,会员登录后可以通过我的订单进入此页面,查看订单详情,确认收货,并对购买的商品进行评价,运行效果如图5—5所示:
图5—5商品评价界面
主要实现代码如下:
protected void btnMess_Click(object sender, EventArgs e)
{StringBuilder strSql = new StringBuilder();
strSql。Append(@"insert into ProductAssess ( pid,oid,lname,star,memo,atime ) ");
strSql。Append(@” values (@pid,@oid,@lname,@star,@memo,@atime)”);
SqlParameter[] parameters = new SqlParameter[] {
new SqlParameter(”@pid”, SqlDbType。Int,4),
new SqlParameter(”@oid”, SqlDbType。VarChar,50),
new SqlParameter(”@lname", SqlDbType.VarChar,50),
new SqlParameter(”@star”, SqlDbType。VarChar,50),
new SqlParameter("@memo”, SqlDbType。VarChar,500),
new SqlParameter("@atime”, SqlDbType。DateTime,8) };
SqlHelper.ExecuteNonQuery(strSql.ToString(), CommandType。Text, parameters);
MessageBox.ShowAndRedirect(this, ”发表成功!", ViewState["url"].ToString()); }
5。6我的信息页面
此页面会员功能,会员可以通过此页面查看修改个人资料,运行效果如图5—6所示:
图5-6 我的个人资料页面
主要实现代码如下:
protected void btnSave_Click(object sender, EventArgs e)
{ StringBuilder strSql = new StringBuilder();
strSql。Append("update members set ”);
strSql.Append(”mname = @mname,");
strSql.Append("sex = @sex,");
strSql.Append("tel = @tel,”);
strSql.Append(”address = @address");
strSql.Append(" where lname=@lname");
SqlParameter[] parameters = new SqlParameter[] {
new SqlParameter("@lname", SqlDbType.VarChar,50),
new SqlParameter("@mname”, SqlDbType。VarChar,50),
new SqlParameter("@sex", SqlDbType。VarChar,10),
new SqlParameter(”@tel", SqlDbType.VarChar,50),
new SqlParameter("@address”, SqlDbType.VarChar,100) };
parameters[0].Value = txt_lname。Text;
parameters[1].Value = txt_mname.Text;
parameters[2].Value = rtsex.SelectedValue;
parameters[3]。Value = txt_tel。Text;
parameters[4].Value = txt_address.Text;
SqlHelper。ExecuteNonQuery(strSql.ToString(), CommandType。Text, parameters);
MessageBox.Show(this, ”操作成功!"); }
5。7管理员登录页面
此页面实现管理员的登录,管理员必须输入正确的用户名和密码后才能进入系统,运行效果如图5-7所示:
图5-7 管理员登录页面
主要
展开阅读全文