第一篇:毕业论文_基于ASPNET的网站设计(含源文件)
(此文档为word格式,下载后您可任意编辑修改!)
四川建筑职业技术学院 计算机工程系
毕业设计(论文)
基于ASP.NET的网站设计
二零一三年六月
I
摘 要
当今随着互联网的发展,网上购物变得越来越普遍,而且已成为许多人生活中不可缺少的一部分。在网上商城里,对于那些商家来说,相比开实体店,节约了大量的成本,并且宣传、管理和经营都更便捷,比如网上销售库存压力较小、经营成本低、经营规模不受场地限制等。对消费者来讲,足不出门就能轻松地获得大量的商品信息,可以买到当地没有的商品,订货不受时间、地点的限制。而网上购物系统就如同建立在二者之间的沟通桥梁,将销售与购买紧紧相连,为商家和消费者提供了集交流、沟通和交易于一体的良好平台。现在人们都希望网上购物是便宜、快捷、安全的,这也跟网购系统开发商提出了较高的要求,显然,对于一个购物网站而言,一款好的网上购物系统是必不可少的。现在比较好的网上购物系统通常都包括商品功能、订单功能、会员功能、支付和配送功能、模板功能、文章功能、广告功能、管理功能、统计分析功能、促销功能、国际化功能、整合功能、系统功能、搜索引擎优化功能,功能全不全,操作是否简易,安全性高还是低,视觉感好与差,是检验购物网站好不好的标准。功能越全,操作越简单,安全性越高,给人的视觉感越好,就越会受到商家和顾客的青睐。
此次本人毕业设计所做项目是模仿京东商城,用Visual Studio 2008编程,SQL Server 2005做数据库,由于时间和技术有限,所做项目仅能实现顾客购物的部分过程,在此深表遗憾。网站所涉过程从消费者进入网站首页、注册、登录到浏览商品、加入购物车,再到结算、选择银行,最后是查看订单信息。在做这个项目的过程中,本人遇到了许多问题,一些是通过自己在网上搜索解决的,还有是请教老师和同学解决的。这使我深深感受到自我的局限性。网络为我们提供了巨大的资源空间,希望大家能好好利用,拓展自己的知识,相信将来会用得着的。
关键词:ASP.NET; 仿京东网站设计; 毕业论文
目 录
摘 要...............................................................................................................................I 目 录..............................................................................................................................II
1.1 本论文的背景和意义.............................................................................................1 1.2 本论文的主要方法和研究进展.............................................................................1 1.3 本论文的主要内容.................................................................................................2 1.4 本论文的结构安排.................................................................................................2 第2章 主要内容.................................................................................................................3
2.1 系统需求分析.........................................................................................................3 2.2 系统设计.................................................................................................................3 2.2.1 系统流程图.........................................................................................................3 2.2.2 系统功能结构.....................................................................................................3 2.2.3 系统预览.............................................................................................................4 2.2.4 数据库设计.........................................................................................................6
2.2.4.1 数据库概要说明.....................................................................................6 2.2.4.2 数据库E-R图分析.................................................................................7 2.2.4.3 数据表结构...........................................................................................10 2.2.4.4 网站文件夹组织结构...........................................................................12 2.3 注册模块功能介绍...............................................................................................13 2.4 商品浏览及加入购物车.......................................................................................14 2.5 核对订单...............................................................................................................16 2.6 查看订单及其详情...............................................................................................18 结 论.............................................................................................................................19 致 谢.............................................................................................................................21 附 录 1 错误收集...........................................................................................................22
第1章 绪 论
1.1 本论文的背景和意义
随着Internet的发展和迅速普及,网上购物这一新型购物方式已逐渐被人们所接受,并逐渐改变甚至取代了传统的购物观念。人么足不出户就可以在网上浏览到全国各地的商品信息,方便快捷地搜索到自己所需要的商品,而安全在线支付和送货上门服务,是人们更加深切地体会到这一购物方式的优越性。
与此同时,网上商城这种新的商业运营模式被越来越多的商家运用到竞争中,并得到了大多数顾客的认可,这种基于浏览器、服务器实现的销售方式已初具规模。一些电子商务网站的成立,从整体上降低了企业成本,加快了企业对市场的响应速度,提高了企业的服务质量和竞争力。
京东网是国内主要的购物网站之一,也是中国电子商务领域最受消费者欢迎和最具影响力的电子商务网站之一。相较于同类电子商务网站,360buy京东商城拥有更为丰富的商品种类,并凭借更具竞争力的价格和逐渐完善的物流配送体系等各项优势,赢得市场占有率多年稳居行业首位的骄人成绩。
此次毕业设计围绕在京东商城购物这一过程,用Visual Studio 2008作平台,ASP.NET技术开发,实现了消费者购物的基本过程。本论文主要针对毕业设计所做项目(仿京东网站设计)进行探讨和研究。写此论文一方面有助于提高自己的写作能力,培养自己综合运用、巩固与扩展所学的基础理论和专业知识,培养自己独立分析、解决实际问题的能力。另一方面,可以帮助教师提高教学质量。再者,将此论文写好并传到网上,可以让更多的人看到,帮助有的人查阅资料,了解软件开发,为社会创造价值。
1.2 本论文的主要方法和研究进展
本论文是经过实际的项目设计后得出的经验总结和心得体会,是对软件开发的论述和探讨,所以运用的主要方法是实践操作。通过实实在在的亲身体验,把自身在设计过程中遇到的问题和解决方法做出总结,将项目设计中运用的技巧和好的方法做出了归纳。由于时间和技术有限,此项目设计仅能实现从消费者注册、登录到
浏览商品、加入购物车、核算,最后查看订单及订单详情,而未能完整地将消费者在京东购物的过程实现,对此深表遗憾。另外,本论文可能存在遗漏或错误之处,还请广大读者批评指正。
1.3 本论文的主要内容
本论文会针对项目主要部分做简单的介绍和分析。消费者注册会涉及到邮箱验证,登录后要浏览商品,选中商品可以加入购物车,对购物车中的商品进行核算,提交订单之前需要核对订单,提交订单后会产生订单,消费者可以查看订单及详情。另外,对数据库的设计也会做简要的介绍。
1.4 本论文的结构安排
第二章第一节,对系统进行需求分析。第二章第二节,系统设计。
第二章第三节,注册模块,重点介绍邮箱验证功能。第二章第四节,商品浏览及加入购物车。第二章第五节,核对订单。
第二章第六节,查看订单及其详情。结论,对毕业设计做总结。
致谢,对在本次毕业设计过程中给予过帮助和支持的老师和同学表示感谢。参考文献,列出在本次毕业设计中所查阅的参考资料清单。附录1,对网站开发过程中遇到的问题和相应的解决方案做出总结。
第2章 主要内容
2.1 系统需求分析
随着中国市场经济的日趋成熟,中国企业面对的竞争压力越来越大,企业想要生存,在提高企业内部管理效率、充分利用企业内部资源的基础上,必须不断扩展销售渠道、扩大消费群体,提高企业的竞争力。随着信息化时代的到来,电子商务网站成为企业对外展示商品信息,从事商务活动的窗口。如何建立企业的电子商务网站,如何把企业业务扩展到Internet上,已成为企业普遍面临的问题。
2.2 系统设计
2.2.1 系统流程图
仿京东购物网站系统流程图,如图2-2-1-1。
图2-2-1-1 仿京东购物网站系统流程图
2.2.2 系统功能结构
仿京东购物网站前台管理系统功能设计如图2-2-2-1。
图2-2-2 网站系统结构图
2.2.3 系统预览
仿京东购物网站是由多个web页面组成,下面仅列出几个典型页面。网站首页如图2-2-3-1所示,主要提供商品分类导航信息和搜索商品功能。
图2-2-3-1 网站首页
购物车页面如图2-2-3-2所示,该页面主要用来查看所购商品,修改商品数量,删除所购商品。
图2-2-3-2 购物车页面
核对订单页面如图2-2-3-3所示,该页面主要用来修改收货人信息和支付及配送方式,展示商品清单。
图2-2-3-3 核对订单页面
“我的订单”页面如图2-2-3-4所示,该页面主要用来展示用户所有订单的简略信息,并提供根据订单日期、订单状态、商品编号等查询订单信息。点击订单号或查看,可以在另一个页面查看该订单详细信息。
图2-2-3-4 我的订单页面
订单详细页如图2-2-3-5所示,该页面主要显示订单详细信息。
图2-2-3-5 订单详细页面
2.2.4 数据库设计
通过对网站进行需求分析及网站系统流程的设计,数据库和对应的实体E-R图已初步定型,下面一一介绍。
2.2.4.1 数据库概要说明
图 2-2-4-1-1为数据表树形结构图,它包含了对系统中所有数据表的相关描述。
图2-2-4-1-1 数据表树形结构
2.2.4.2 数据库E-R图分析
消费者登录信息E-R图如图2-2-4-2-1所示。
图2-2-4-2-1 消费者实体E-R图
联系人信息实体E-R图如图2-2-4-2-2所示。
图2-2-4-2-2 消费者实体E-R图
地址信息实体E-R图如图2-2-4-2-3所示。
图2-2-4-2-3 地址信息实体E-R图
商品信息实体E-R图如图2-2-4-2-4所示。
图2-2-4-2-4 商品信息实体E-R图
购物车信息实体E-R图如图2-2-4-2-5所示。
图2-2-4-2-5 购物车信息实体E-R图
订单信息实体E-R图如图2-2-4-2-6所示。
图2-2-4-2-6 订单信息实体E-R图
订单状态实体E-R图如图2-2-4-2-7所示。
图2-2-4-2-7 订单状态实体E-R图
2.2.4.3 数据表结构
在设计完数据库实体E-R图之后,下面将根据实体E-R图设计数据表结构。tb_User(消费者登录信息表)。
消费者信息表主要存储消费者登录所需信息。数据表结构如图2-2-4-3-1所示。
图2-2-4-3-1 消费者登录信息表数据结构
tb_ConsigneeInfo(联系人信息表)联系人信息表主要存储消费者信息,商家才好根据这些信息配送货物。数据表结构如图2-2-4-3-2所示。
图2-2-4-3-2 联系人信息表数据结构
tb_Address(地址信息表)地址信息表主要存储地址,消费者在核对订单时会选择收货地址,会用到它。
数据表结构如图2-2-4-3-3所示。
图2-2-4-3-3 地址信息表数据结构
tb_Goods(商品信息表)商品信息表用来存储商品信息,如商品编号、名称、价格等,数据表结构如图2-2-4-3-4所示。
图2-2-4-3-4 商品信息数据表结构
tb_ShoppingCart(购物车信息表)购物车信息表主要用来存储商品信息和订单信息,数据表结构如图2-2-4-3-5所示。
图2-2-4-3-5 购物车信息数据表结构
tb_OrderInfo(订单信息表)订单信息表主要用来存储订单信息,数据表结构如图2-2-4-3-6所示。
图2-2-4-3-6 订单信息数据表结构
tb_OrderState(订单状态表)订单状态表主要用来存储订单状态,数据表结构如图2-2-4-3-7所示。
图2-2-4-3-7 订单状态数据表结构
2.2.4.4 网站文件夹组织结构
网站文件夹组织结构图如图2-2-4-4-1所示。
图2-2-4-4-1 网站文件夹组织结构
2.3 注册模块功能介绍
一个购物网站没有注册功能是不行的,只有注册账号过后才可以登录,进而进行购物。下面图2-3-1是笔者仿京东做的注册页面,前台页面大部分代码来自京东原代码,只有后台是笔者自己写的。
图2-3-1 注册页面
前台页面引入了些js文件,这些文件的功能基本上在这里体现在对用户输入的邮箱、密码、验证码的合法性的验证。.cs代码中有一个邮箱验证功能,在笔者看来是一个重难点。邮箱验证功能包括发送邮件前的验证,发送邮件和激活账户三个步骤,而发送邮件又是这里的重难点。
下面是这个页面的重点代码:
MailMessage m = new MailMessage();建立邮件发送对象 m.From = new MailAddress(FROM);获取发件人地址 m.To.Add(TO);获取收件人地址
m.Subject = SUBJECT;获取此电子邮件的主题 m.Body = BODY;获取邮件正文
m.BodyEncoding = System.Text.Encoding.UTF8;设置邮件正文的编码 m.IsBodyHtml = bIsHtml;设置邮件正文是否为HTML格式 m.ReplyTo = new MailAddress(FROM);设置邮件的回复地址
SmtpClient smtp = new SmtpClient(“smtp.163”, 25);初始化邮件传输协议 smtp.Credentials
=
new
NetworkCredential(“***”, “wangjing911214++”);用指定的用户名和密码作为用于验证发件人身份的凭据
smtp.EnableSsl = true;smtp.Send(m);发送邮件
2.4 商品浏览及加入购物车
当登录的用户在首页搜索栏里输入包含“手机”的关键词后,就会跳转到手机展示界面。在手机展示界面点击一个手机图标,通过页面传参,将该手机的“商品编号”传到ProductDisplay.aspx页面,在ProductDisplay.aspx页面根据获取到的参数进行产品信息查询,然后将该产品有关信息显示在页面上。商品信息显示如图2-4-1所示。
图2-4-1 商品信息
在ProductDisplay.aspx页面输入购买数量,点击“加入购物车”按钮,会跳转到AddToCart.aspx页面,在这个页面,用户可以点击“继续购物”按钮,回到ProductDisplay.aspx页面,也可以点击“去结算”按钮,跳转到MyShoppingCart.aspx页面,如图2-4-2所示。
图2-4-2 购物车页面
在上图中,笔者在页面上加了一个GridView控件,用来显示已经加入购物车但未提交订单的商品信息,包括商品图片、名称、单价、数量和总价。另外,消费者可以对单个商品进行数量的修改,如果不想要,可以直接点击“删除”。删除操作也可以通过勾选复选框,点击“删除选中的商品”进行删除操作。可以在上图中看到“-”、“+”、“删除”按钮,它们都是放在GridView控件的模板列里的,点击它们产生相应效果是通过触发RowCommand事件实现的。在此事件里,用到了下面的代码
:
GridViewRow
gvr
=(GridViewRow)(((Button)emandSource).NamingContainer);该代码用来初始化点击控件所在的数据行
int index = gvr.RowIndex;这句话用来获取控件所在行的行索引值 string cardId = GridView1.Rows[index].Cells[0].Text.Trim();获取点击的btnReduce控件所在行的第一列的文本,第一列就是购物车编号,接下来就可以根据购物车编号查询购物车信息,删除一条记录,修改商品数量等。
该页面重要代码如下:
Label lblText = e.Row.Cells[1].FindControl(“lblGoodsId”)as Label;string goodsidString = lblText.Text;string strSelect = “select * from tb_Goods where GoodsId='” + Convert.ToInt32(goodsidString)+ “'”;根据商品编号查询商品信息 SqlConnection conn = operate.getcon();建立数据库连接对象
SqlCommand scd = new SqlCommand(strSelect, conn);建立数据库命令对象 conn.Open();打开数据库连接
SqlDataReader sdr = scd.ExecuteReader();建立数据读取器对象 sdr.Read();读取数据
string img = @“..Images”;设置图片路径
Image imagGoods = e.Row.Cells[1].FindControl(“imgGoods”)as Image;imagGoods.ImageUrl = img + sdr[“Photos”].ToString();获取图片位置
lblText.Text = sdr[“GoodsName”].ToString();将第一列的Lable控件的文本值改为对应的商品名称
e.Row.Cells[2].Text = “¥” + sdr[“Price”].ToString();
e.Row.Cells[4].Text = “¥” + e.Row.Cells[4].Text;sdr.Close();关闭数据读取器 conn.Close();关闭数据库连接 设置鼠标悬停行的颜色
e.Row.Attributes.Add(“onMouseOver”, “Color=this.style.backgroundColor;this.style.backgroundColor='lightBlue'”);e.Row.Attributes.Add(“onMouseOut”, “this.style.backgroundColor=Color;”);2.5 核对订单
点击上图2-4-2所示页面中的“去结算”按钮,会跳转到CheckOrder.aspx页面,如图2-5-1所示。
图2-5-1 核对订单信息
在图2-5-1所示页面可以修改收货人信息、支付及配送方式。这个页面最麻烦的是控制div的显示与隐藏,笔者不仅在前台页面加了控制显示与隐藏的jQuery代码,在后台页用c#代码也进行了控制,最终才勉强达到理想的效果。这个页面有个供用户选择的“所在地区”,用到了三个DropDownList控件,第一个显示省份,第二个显示市,第三个显示区(县),这个最重要的是控制DropDownList的SelectedIndexChanged事件。因为当选中第一个下拉框中的某项时,需要根据这一
项绑定第二个下拉框中显示的内容,第三个下拉框中内容又要根据第二个下拉框选中的内容来绑定。
该页面重要代码如下所示:
Label lblgoodsText = e.Row.Cells[1].FindControl(“lblGoodsId”)as Label;初始化第一列ID为lblGoodsId的控件
string goodsId = lblgoodsText.Text;获取商品编号
string strSelectGoods = “select * from tb_Goods where GoodsId='” + Convert.ToInt32(goodsId)+ “'”;根据商品编号查询商品信息 SqlConnection conn = operate.getcon();建立数据库连接对象
SqlCommand scd = new SqlCommand(strSelectGoods, conn);建立数据库命令对象
conn.Open();打开数据库连接
SqlDataReader sdr = scd.ExecuteReader();建立数据读取器对象 sdr.Read();读取数据
Image imgPhone = e.Row.Cells[1].FindControl(“Image26”)as Image;在第一列中查询ID为Image26的控件
imgPhone.ImageUrl = @“..Images” + sdr[“Photos”].ToString();设置图片的路径 lblgoodsText.Text = sdr[“GoodsName”].ToString();显示商品名称
e.Row.Cells[5].Text = sdr[“StoreState”].ToString();将每件商品对应的库存状态显示出来
e.Row.Cells[2].Text = “¥” + sdr[“Price”].ToString();显示商品单价 sdr.Close();关闭数据读取器
string strgoodnum = “select * from tb_ShoppingCart where ShoppingCartId='” + Convert.ToInt32(e.Row.Cells[0].Text)+ “'”;根据购物车编号查询购物车信息 SqlCommand scd2 = new SqlCommand(strgoodnum, conn);建立数据库命令对象
SqlDataReader sdr2 = scd2.ExecuteReader();建立数据读取器对象 sdr2.Read();读取数据
e.Row.Cells[4].Text = “x” + sdr2[“GoodsNumber”].ToString();设置第4列的值
sdr2.Close();关闭数据读取器 conn.Close();关闭数据库连接
2.6 查看订单及其详情
当提交订单后,就可以查看“我的订单”。“我的订单”页面如图2-6-1所示。此页面可供消费者根据所选条件筛选订单信息,也可以点击“订单号”或“查看”跳转到另外个页面查看订单详情。
图2-6-1 订单页
在图2-6-1所示的页面中,比较麻烦点的就是筛选查看功能。筛选可根据订单时间、订单状态、商品名称、商品编号或订单编号进行。这里面挺麻烦的是根据商品编号或商品名称进行查询。因为订单表并未包含商品编号或商品名称,而只能通过购物车表进行查询。另外一个难点是,在根据商品编号或商品名称进行查询时,要考虑到一件商品可能存在于一条订单中,也可能存在于多条订单中,不同的情况,查询语句也会有差异。
点击任意一条记录的订单号或“查看”,都会跳转到OrderDetail.aspx页面,如图2-6-2所示。
图2-6-2 订单详细页
订单详细页主要显示收货人信息、支付及配送方式、发票信息、商品清单等信息。该页面简单明了且美观,离不开div+css布局,层与层的嵌套稍不注意就会让页面失去想要达到的效果。
结 论
本次毕业设计共花时间近七周,在笔者的努力下,在老师和同学的帮助下,笔者的“仿京东购物网站”能实现消费者购物的基本流程。主要流程是用户注册、登录、浏览商品、加入购物车、核对订单、查看订单和订单详情。其中花时间最多的是核对订单,因为这个页面需要控制层的显示与隐藏,而本人能力有限,费了九牛二虎之力才基本达到京东上原有的效果。
在人生做学生的最后一段时间,能有效利用起来是很有意义的。做毕业设计作为高校毕业生必不可少的学习环节,是有它的独到之处的。第一,通过自主学习和寻求帮助,它可以使人的专业知识水平与分析和解决问题的能力得到快速提升;其二,坚持做能锻炼人的意志力;其三,在不断的碰到问题然后解决问题的循环过程中可以尝到失败的无奈和成功带来的喜悦;其四,各方面能力的提升会为毕业生就业甚至未来的发展起到重要促进作用;其五,毕业设计交到老师那里可以为老师提供改进教学的素材;其六,把毕业设计项目和论文传到互联网上,可以给更多的爱好者或专业人士提供解决问题的素材和资料,让更多的人学得更多的东西,从而促
进社会和人类文明的发展。“书山有路勤为径,学海无涯苦作舟”,学习应该说主要靠自己,靠自己的勤奋。“活到老,学到老,还有三分没学到”,要想学精一样东西,不是三两天就能摆平的,而是需要通过自己长期的刻苦努力才能达到,所以,不管现在还是以后,都应该树立学习的意识,要踏实认真地学,坚持学,才能学到真本事、真功夫。
我国现在正处在社会主义发展的初级阶段,也正以矫健的步伐朝着全面小康奋进,其间充满竞争和挑战,刚步入社会的我们面对的压力可能很大,但是,我们不能悲观,而要将压力转换为动力,努力为自己创造机遇,使自己尽可能快地融入社会,成为社会人。
今后不管自己发展如何,都不应该忘了曾经帮助过我们、支持过我们的人,要懂得回报,尤其是我们的祖国,我们应该为祖国的发展贡献自己的青春!
致 谢
在做毕业设计的过程中,笔者遇到了不少问题,大多数是通过自己思考或查阅资料解决的,但有部分是通过请教老师和同学才得以解决的,真心感谢这些老师和同学,他们的帮助给我带来了喜悦,给予我信心,让我较顺利地完成了毕业设计。在这里要特别感谢我们的指导老师史红军老师和宋全记老师,他们从开始到结束就一直关心我们,指导我们,尽职尽责,给予了我们莫大的帮助。也感谢从北软来的舒杨老师和郭海林老师,他们远道而来给我们提供了技术上的帮助。
希望毕业后还有机会见到这些老师和同学,最后祝愿各位老师工作顺利、身体健康,祝愿各位同学前程似锦、生活愉快!
附 录 1 错误收集
错误1:您正在查找的资源(或者它的一个依赖)可能已被删除,或其名称已更改,或暂时不可用,请检查以下URL并确保其拼写正确,如图1-1所示。
图1-1 错误1 下面是解决方法,如图1-2所示。
图1-2 错误1的解决方法
错误2:某某附近有语法错误,如图1-3所示。
图1-3 错误2及解决方法
错误3:要求已打开且可用的连接。连接的当前状态为已关闭,错误如图1-4和1-7所示。
图1-4 连接状态出错
分析结果如图1-5所示。
图1-5 错误3的分析结果
对错误3做修改,如图1-6所示。
图1-6 错误3修改后的展示
图1-7 连接状态错误及解决方法
错误4:连接尝试失败,如图1-8所示。
图1-8 连接尝试失败错误
错误5:必须放在具有runat=server的窗体标记内,如图1-9所示。
图1-9 错误5 解决方法:把你的代码放在