《毕业设计(论文)ASP.NET网上购物系统.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)ASP.NET网上购物系统.doc(29页珍藏版)》请在三一办公上搜索。
1、玩美网上购物系统摘要:随着信息时代的飞速发展,网络信息化管理系统以信息量大、数据精准、速度快、管理全面等特点在现实生活中得到广泛应用,网上购物系统就是网络时代的产物,它是指在电子网络上进行商品买卖和服务交易的过程。这种购物方式也已经逐渐被人们接受,并逐渐改变甚至取代了原有的购物的理念。本系统就是在网络上架构一个供消费者们购买物品的应用系统平台。本设计采用的是SQL数据库,使用Visual Studio 2005做为开发环境,编程使用C#语言。用Dreamweaver 8做整体布局设计,并使用Photoshop进行系统的美化处理。系统通过调试运行,初步实现设计目标,并且经过适当完善后,将可以应用
2、在商业中解决实际问题。 关键词:C#;SQL Server 2000;ASP.Net;购物车;网上购物系统 一、引言近年来,随着Internet的迅速崛起,互联网已日益成为收集提供信息的最佳渠道并逐步进入传统的流通领域。于是电子商务开始流行起来,越来越多的商家在网上建起商店,向消费者展示出一种新奇的购物理念。网上购物系统是一种具有交互功能的商业信息系统。它向用户提供静态和动态两类信息资源。所谓静态信息是指那些不会经常变动或更新的资源,如公司简介、治理规范和公司制度等等;动态信息是指随时变化的信息,如产品价,产品更新等。网上购物系统具有强大的交互功能,可使商家和用户方便的传递信息,完成电子交易。
3、在现实生活中,网上购物已经成为现代人的一种需求,它的方便快捷是传统购物方式无法比拟的。 二、需求分析(一)顾客对于系统的需求顾客在网上购物看重的是方便和快捷,因此系统要使顾客能够在大量的产品信息中迅速搜索到自己想要了解的产品信息。并且,由于顾客中可能存在有很多并不熟悉网上购物流程的人,系统操作流程应该简单、易用。 首先顾客能在商城中查询各种商品的介绍、图片、价格等基本信息,以便顾客确定自己满足的商品。选好商品后,顾客可以将所选商品放入购物车,假如在结算前改变主意,依然可以不用购买。当顾客选定所要购买的商品后,能够向系统提交并由系统自动生成相应的定单号。1. 注册会员:用户登录商城后可以注册成为
4、会员,之后可以购买商品。2. 登陆功能:用户注册成功后,可以正常登录到系统中。3. 修改个人密码功能:可在个人信息管理页面修改自己的密码。4. 修改个人信息功能:可在个人信息管理界面修改自己的详细信息。5. 留言功能:用户登录后可成功发表留言。6. 购物车:用户可以选择商品,放入购物车中,还具有更新购物车,清空购物车等功能。7. 搜索功能:普通用户和会员均可使用搜索功能,输入商品名称即可查看到该商品详细信息。 (二)管理员对于系统的需求 系统管理员在此系统中扮演着非常重要的角色,管理员可以进行商品管理、定单管理、注册用户管理等需求。并且系统面对大量的信息应该做到条理清楚,管理员能够轻松的找到需
5、要的管理类别。为了实现这些需求,管理中心应该做到功能齐全,模块划分明确。本系统中管理部分分为订单管理、商品管理、会员管理、公告管理、物流管理这五个模块。 1. 订单管理:管理员可以查看订单状态以及确认订单。(开发中)2. 商品管理:管理员可进行添加商品操作,也可以对商品进行编辑删除操作,对商品的类 别进行添加和编辑删除。 3. 会员管理:可以添加管理员、编辑删除管理员信息,查看会员信息。4. 公告管理:可以对网站公告进行添加,编辑,删除。5. 物流系统:可以添加支付方式,配送方式,配送地点。(开发中)(三)数据库需求分析网上购物系统的数据库功能主要体现在对各种信息的提供、保存、更新和查询操作上
6、,包括会员信息、商品信息、商品分类信息、购物车信息、订单信息和订单详细信息,各个部分的数据内容又有内在联系。针对该系统的数据特点,可以总结出如下的需求。 具有会员身份的用户才可以执行购物车功能。 会员信息记录会员的详细资料,方便订单的发送及货物的邮寄。 商品信息记录了商品的价格、简介、图片等信息。 商品需要一个分类,以方便查找。 可以发表留言和咨询,方便提交意见。 购物车需要有购物车编号等特性。 订单记录了用户提交的购物信息。经过上述系统功能分析和需求总结,可设计如下的数据项和数据结构。 商品信息,包括商品编号、商品名称、销售价格等数据项。 会员信息,包括会员编号、会员姓名、会员地址等数据项。
7、 商品分类信息,包括分类编号和分类名称等数据项。 留言信息,包括留言人,留言标题,留言时间,留言内容。 购物车信息,包括购物车编号、商品编号、商品数量等数据项。 订单信息,包括订单编号、会员编号和下订单日期等数据项。 订单详细信息,包括订单编号、商品编号、消费金额等数据项。(四)可行性分析 当前网上购物市场是具大的,而且市场还在发展初期,其市场潜力不可估量,综上所述,系统的市场前景是可行的。一个系统在技术上是否可行,往往从开发的风险,资源的有效性,相关技术的发展等方面来分析。开发风险的大小直接关系到系统的成败。本系统的实现从其所需要实现的功能上来说,现有的比较成熟的技术已基本上能满足其功能需求
8、,而且有很多当前已成功开发并投入使用的网上购物系统可供借鉴。因此,从系统的开发风险来分析,本系统的开发是可行的。在本系统的开发过程中,主要用到开发工具有VisualStudio2005、SQLServer2000、Dreamweaver8、Photoshop等。这些技术和开发工具都是完善,在实践中多次被运用的,是完全可行的,不会存在技术上的问题。所以从技术环节上来说不存在无法实现的情况发生。开发语言采用ASP.NET(C#),综合现有知名购物网站进行系统开发,在购物流程和用户好感度等方面做了较好的改进,本系统通过该信息平台,客户可以进行会员身份验证、查看购物车、更新购物车、清空购物车、查询订单
9、和查找商品等操作从而满足客户各种不同的服务要求。三、系统总体设计(一)系统E-R图在本商城中,只有会员才有使用购物车和使用订单的功能,普通的顾客只有查询商品和浏览商品的权限。会员登陆后,可以进入自己的个人中心,有修改密码,修改个人注册信息,以及发表留言等功能。还可以在网上购买东西,最后生成订单,并提交。而普通顾客则不能在网上购物,只能通过查询商品名称或浏览首页产品,来获得商品的详细信息。根据上述购物流程,就可以设计满足需求的各种实体及相互关系,再用实体-关系图,即E-R(Entity-Relationship)图将这些内容表达出来,为后面的逻辑结构设计打下基础。本系统E-R图如图3-1、图3-
10、2、图3-3所示。实体型: 属性: 会员地区性别密码会员姓名会员ID生日联系:图3-1会员的实体E-R图商品信息商品图片商品热销价商品简介商品编号商品名称商品价格 图3-2商品信息的实体E-R图会员登陆购物车商品订单详情商品分类订单顾客查询选购提交划分会员编号登陆密码订单总金额订单日期商品编号登陆密码商品价格会员姓名订单编号购物数量图3-3系统E-R图(二)系统功能模块结构图本系统功能模块结构图如图3-4所示:玩美网上购物系统商品分类列表模块商品查找模块订单查询模块会员登陆管理模块商品详细信息模块最新商品模块会员注册模块购物车模块图3-4系统功能模块结构图系统前台如图3-5所示:玩美网上购物商
11、城前台管理系统本站公告最新商品推荐商品热门商品商品分类用户中心我的留言会员登陆我的购物车图3-5系统前台系统后台如图3-6所示:玩美网上购物商城后台管理系统商品管理订单管理管理员管理理会员管理公告管理删除会员商品添加编辑订单查询订单添加管理员删除管理员管理会员公告添加商品管理公告管理图3-6系统后台功能结构图(三)系统流程图本系统流程图如图3-7所示:电子商务网站网站管理员购 物 车会员中心进行商品信息管理、用户管理、网站信息管理网站访问者浏览网站其他功能登 录注 册选择商品登 录购 买在线支付否否是是否是否是否是图3-7系统流程图四、数据库设计数据库结构设计的好坏直接影响到信息管理系统的效率
12、和实现的效果。合理地设计数据库结构可以提高数据存储的效率,保证数据的完整和统一。在网上购物系统中,首先要创建网上购物系统数据库,然后在数据库中创建需要的表和字段。(一)创建数据库在Visual Studio.NET开发环境中,启动“服务器资源管理器”窗口,在SQL Server 2000服务器节点右击,在弹出的快捷菜单中选择“新建数据库”命令打开“创建数据库”对话框,在“新数据库名”文本框中输入需要创建的数据库的名称:NetStore,在安全性-登录选项中配置sa的密码为空。(二)创建表与字段数据库NetStore保存在文件夹App_Data内,包含数据表有:(1) Admin表:包括字段管理
13、员ID,管理员姓名,管理员密码。 如表4-1所示:表4-1 admin表(2) UserInfo表:包括字段用户ID,用户姓名,用户Email,用户真实姓名,用户生日,用户性别,用户联系电话,用户联系手机,用户联系地址,用户邮政编码,用户密保问题,用户密保问题答案。 如表4-2所示:表 4-2 UserInfo表(3) OrderInfo表:包括字段订单ID,订单日期,地区,商品价格,邮递价格,总价,收货人姓名,电话,手机,邮编,地址,邮件,是否确认,是否发送,是否结束,管理员ID等。 如表4-3所示:表 4-3 OrderInfo表(5)ProductInfo表,包括商品ID,商品分类ID,
14、商品简介,商品品牌,商品单位,商品重量,商品图片地址,上篇市场价,热卖价,是否最新、最热、推荐,上架日期等。如表4-4所示:表 4-4 ProductInfo表五、系统详细设计(一)前台设计1系统风格设计(FunStyleMasterPage.Master)此页面为笨系统的母板页,其中主要包含有网站导航、用户登录、最新商品、热卖商品、推荐商品、促销商品、捆绑商品、网站新闻等版块。采用Div+Css结构设计。如图5-1所示:图5-1系统风格设计其设计代码如下: /在母板页中链接Css样式表文件/wmsc.css内容摘要: bodymargin: 0px; /上、右、下、左四个外边距都是0pxfo
15、nt-size: 12px;.tab background-image: url(./images/teb_bj.jpg); /背景图片float: left; padding-left: 110px; /左内边距2首页(Default.aspx)此页面为系统主页面内容页,嵌套在母板页之中,其中包括最新公告显示、最新商品、最热商品以及推荐商品模块。用户可通过此页面浏览商品。已登陆用户点击首页上的购买按钮可直接进入购物车页面。如图5-2所示:图5-2首页设计其核心代码如下:public void BindReperterByDataSet() /绑定DataSet函数 RepNew.DataSo
16、urce = BindReper1(IsNew=1);/选择最新商品IsNew字段为1的数据 RepNew.DataBind(); /绑定数据 public DataSet BindReper1(string sstatus) /定义DataSet BindReper1的参数sstaus /链接数据库DataSet ds = new DataSet(); string Sql = select top 4 * from ProductInfo where + sstatus; /从数据库中读取“IsNew=1”的数据 SqlCommand Cmd = new SqlCommand(Sql, m
17、ycon); /定义一个命令对象 SqlDataAdapter Dr = new SqlDataAdapter(Cmd); /定义一个适配器 Dr.Fill(ds); /数据绑定 return ds;3登陆(Login.aspx)用户登录有:供用户输入用户名、密码的两个文本框,输入正确登录成功后,自动跳转到首页,并在首先显示欢迎信息。如果还没有帐号,可点击注册,到注册页面新注册一个用户帐号。如图5-3所示:图5-3登陆设计 如果用户名与密码正确,弹出如图5-4对话框,点击回到首页。如果输入错误,弹出如图5-5对话框,点击返回登陆页面。 图5-4 登陆成功 图5-5 登陆错误其核心代码如下: p
18、rotected void Button1_Click(object sender, EventArgs e) /会员登录按钮 string SqlCheckUser = select * from UserInfo where UserName = + UserName + and UserPwd = + UserPwd + ; /查询用户名与密码 SqlCommand CmdCheckUser = new SqlCommand(SqlCheckUser, mycon); SqlDataReader Dr; Dr = CmdCheckUser.ExecuteReader(); if (Dr.
19、Read() if (Dr.GetValue(1).ToString() = UserName) if (Dr.GetValue(3).ToString() = UserPwd) SessionIsLoginOK = OK; /记录session SessionUserName = UserName; Response.Write(alert(登陆成功,点击返回首页);location.href=Default.aspx;); else Response.Write(alert(用户名或密码错误);location.href=Login.aspx;); 4注册(Register.aspx)注册
20、页面是提供注册新用户的页面,包括填写用户名、地区、密码、密码确认、e-mail、真实姓名、生日性别、联系电话、联系手机、联系地址、邮政编码、密保问题、答案等内容。页面内有许多验证控件,必须按照规定的格式正确填写才能注册成功。如图5-6所示:图5-6注册设计 如果注册的用户名数据库里已经存在,就会弹出如图5-7对话框,提醒用户更换用户名,如果注册用户名可用,就会弹出如图5-8对话框。 图5-7错误提示 图5-8正确提示其核心代码如下: string SqlUserAdd = insert into UserInfo(sUserID,UserName,Hometown,UserPwd,Email,
21、UserRealName,Birthday,Sex,Tel,Phone,Address,Zipcode,Question,Answer) values( + sUserID + , + sUserName + , + sPssroAndCity + , + sUserPwd + , + sUserEmail + , + sUserRealName + , + sBithday + , + sSex + , + sUserTel + , + sUserPhone + , + sAddress + , + sZipCode + , + sQuestion + , + sAnswer + ); /s
22、ql语句插入到数据库 SqlCommand inst = new SqlCommand(SqlUserAdd, mycon); inst.ExecuteNonQuery(); DataSet dst = new DataSet(); SqlCommand cmd = new SqlCommand(select * from UserInfo, mycon); SqlDataAdapter dap = new SqlDataAdapter(cmd); dap.Fill(dst, UserInfo); mycon.Close(); Response.Write(alert(恭喜你,注册成功!请登陆
23、);location.href=Login.aspx;); 5商品详情(ProInfo.aspx)通过点击首页的商品图片即可进入到本页面,在本页面可以查看到从数据库中读出来的商品具体参数及图片,点击立即购买即可加入到购物车中。如图5-9所示:图5-9 商品详情其核心代码如下: private void BindProduct(string ProductID) DataSet ds = new DataSet(); string SqlCheckProduct = select * from ProductInfo where ProductID= + ProductID + ; /从Prod
24、uctInfo表中查找商品信息 SqlCommand CmdCheckProduct = new SqlCommand(SqlCheckProduct, mycon); SqlDataAdapter Dr = new SqlDataAdapter(CmdCheckProduct); Dr.Fill(ds); if (ds.Tables0.Rows.Count 0) /如果dataset的行数大于0 Literal1.Text = ds.Tables0.Rows0ProductBrand.ToString(); Image1.ImageUrl = ds.Tables0.Rows0ImageUrl
25、.ToString(); cbxIsnew.Checked = Convert.ToBoolean(ds.Tables0.Rows0IsNew.ToString();/显示是否最新6购物车(Cart.aspx) 只有登陆用户点击购买才可以进入到此页面。本页面可以完成商品添加,更新购物车,清空购物车,以及继续购物功能,可以计算出商品总价格。如图5-10所示:图5-10 购物车其核心代码为: DataTable dstable; /计算价格 int i = 1; float price;/商品单价 int count; /商品数量 float totalPrice = 0; /商品总价格 fore
26、ach (DataRow drRow in dtTable.Rows) strSql = select ProductName,ProductHotPrice from ProductInfo where ProductID= + Convert.ToInt32(drRowProductID.ToString(); dstable = dbObj.GetDataSetStr(strSql, tbGI); drRowProductName = dstable.Rows00.ToString();/商品名称 drRowprice = (dstable.Rows01.ToString();/单价 p
27、rice = float.Parse(dstable.Rows01.ToString();/单价 count = Int32.Parse(drRowNum.ToString(); drRowtotalPrice = price * count; /总价 totalPrice += price * count; /计算合价 i+; this.labTotalPrice.Text = 总价: + totalPrice.ToString();/显示所有商品的价格this.gvShopCart.DataSource = dtTable.DefaultView; /绑定GridView控件this.gv
28、ShopCart.DataKeyNames = new string ProductID ;this.gvShopCart.DataBind(); public void bind() if (SessionShopCart = null) /如果没有购物,则给出相应信息,并隐藏按钮 this.labMessage.Text = 您还没有购物!; this.labMessage.Visible = true; /显示提示信息 this.LBclear.Visible = false; /隐藏“清空购物车”按钮 this.LBcontinue.Visible = false; /隐藏“继续购物”
29、按钮 else hashCar = (Hashtable)SessionShopCart; /获取其购物车 if (hashCar.Count = 0) /如果没有购物,则给出相应信息,并隐藏按钮 this.labMessage.Text = 您购物车中没有商品!; this.labMessage.Visible = true; /显示提示信息 this.LBclear.Visible = false; /隐藏“清空购物车”按钮 this.LBcontinue.Visible = false; /隐藏“继续购物”按钮 else /设置购物车内容的数据源 dtTable = new DataTa
30、ble(); DataColumn column1 = new DataColumn(No); /序号列 dtTable.Columns.Add(column1); /添加新列 DataRow row; /对数据表中每一行进行遍历,给每一行的新列赋值 foreach (object key in hashCar.Keys) row = dtTable.NewRow(); rowProductID = key.ToString(); rowNum = hashCarkey.ToString(); dtTable.Rows.Add(row); /计算价格 DataTable dstable; in
31、t i = 1; float price;/商品单价 int count; /商品数量 float totalPrice = 0; /商品总价格 foreach (DataRow drRow in dtTable.Rows) strSql = select ProductName,ProductHotPrice from ProductInfo where ProductID= + Convert.ToInt32(drRowProductID.ToString(); dstable = dbObj.GetDataSetStr(strSql, tbGI); /drRowNo = i;/序号 dr
32、RowProductName = dstable.Rows00.ToString();/商品名称 drRowprice = (dstable.Rows01.ToString();/单价 price = float.Parse(dstable.Rows01.ToString();/单价 count = Int32.Parse(drRowNum.ToString(); drRowtotalPrice = price * count; /总价 totalPrice += price * count; /计算合价 i+; this.labTotalPrice.Text = 总价: + totalPri
33、ce.ToString(); /显示所有商品的价格 this.gvShopCart.DataSource = dtTable.DefaultView; /绑定GridView控件 this.gvShopCart.DataKeyNames = new string ProductID ; this.gvShopCart.DataBind(); protected void lnkbtnUpdate_Click(object sender, EventArgs e) hashCar = (Hashtable)SessionShopCart; /获取其购物车 /使用foreach语句,遍历更新购物车
34、中的商品数量 foreach (GridViewRow gvr in this.gvShopCart.Rows) TextBox otb = (TextBox)gvr.FindControl(txtNum); /找到用来输入数量的TextBox控件 int count = Int32.Parse(otb.Text);/获得用户输入的数量值 string ProductID = gvr.Cells1.Text;/得到该商品的ID代 hashCarProductID = count;/更新hashTable表 SessionShopCart = hashCar;/更新购物车 Response.Re
35、direct(Cart.aspx); protected void lnkbtnDelete_Command(object sender, CommandEventArgs e) hashCar = (Hashtable)SessionShopCart;/获取其购物车 /从Hashtable表中,将指定的商品从购物车中移除,其中,删除按钮(lnkbtnDelete)的CommandArgument参数值为商品ID代号 hashCar.Remove(e.CommandArgument); SessionShopCart = hashCar; /更新购物车 Response.Redirect(Cart.aspx); protected void gvShopCart_PageIndexChanging(object sender, GridViewPageEventArgs e) gvShopCart.PageIndex = e.NewPageIndex; bind(); protected void txtNum_TextChanged(object sender, Ev
链接地址:https://www.31ppt.com/p-3976236.html