基于ASP.NET的网上书店系统的设计与实现 毕业论文.doc

上传人:小小飞 文档编号:3919965 上传时间:2019-10-10 格式:DOC 页数:37 大小:689.02KB
返回 下载 相关 举报
基于ASP.NET的网上书店系统的设计与实现 毕业论文.doc_第1页
第1页 / 共37页
基于ASP.NET的网上书店系统的设计与实现 毕业论文.doc_第2页
第2页 / 共37页
基于ASP.NET的网上书店系统的设计与实现 毕业论文.doc_第3页
第3页 / 共37页
基于ASP.NET的网上书店系统的设计与实现 毕业论文.doc_第4页
第4页 / 共37页
基于ASP.NET的网上书店系统的设计与实现 毕业论文.doc_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《基于ASP.NET的网上书店系统的设计与实现 毕业论文.doc》由会员分享,可在线阅读,更多相关《基于ASP.NET的网上书店系统的设计与实现 毕业论文.doc(37页珍藏版)》请在三一文库上搜索。

1、摘 要 网上书店系统是一个基于ASP.NET技术和SQL Server数据库开发的系统。本论文首先介绍了网上书店系统开发的背景,然后详细描述了系统分析和数据库设计,最后又详细介绍了网上书店系统的模块设计与实现。通过本系统管理员可以通过Web浏览器进入后台,实现网上图书添加、删除、图书分类管理及定单管理、用户管理等功能和用户登录、注册,在站内进行搜索等功能。系统运行后,操作界面简单流畅,实用性强。关键词:网上书店;数据库;ASP.NETABSTRACTOnline bookstore system is a based on ASP technology and SQL Server data

2、base development system. This paper firstly introduces the background of the development of online bookstore system, then describes the detailed system analysis and database design, then introduced the module of online bookstore system design and implementation. Through the system administrator can

3、through the Web browser into the background, the realization of online books add, delete, book classification management and order management, customer management function and user login, registered, standing in within the search, and other functions. After the operation of the system, operation int

4、erface is simple and fluent, the function is strong.Key words:Online bookstore;Database;ASP.NET目 录1 绪论11.1 课题背景11.2 开发目标12 系统分析22.1 需求分析22.2 可行性分析22.2.1 需求可行性22.2.2 技术可行性23 总体设计43.1 设计方案43.2 数据库设计43.2.1 数据库概念设计43.2.2 数据库E-R图53.2.3 数据库逻辑结构设计53.3模块划分74 实现数据库访问层104.1 一般数据库操作的封装104.2存储过程操作的封装125 详细设计与实现

5、135.1 用户管理模块135.1.1 用户注册135.1.2 用户登录145.1.3 找回丢失密码155.1.4 修改个人信息165.2 图书管理模块175.2.1 管理图书类别185.2.2 添加、删除、修改图书信息185.2.3 列表显示图书195.2.4 搜索图书205.3 购物车管理模块225.3.1 查看购物列表225.3.2 结账235.4 订单管理模块245.4.1 客户订单管理245.4.2 管理员订单管理255.5 后台管理模块275.5.1 查询用户信息285.5.2 查询销售情况296 系统测试306.1 单元测设306.2 集成测试30结论31致谢29参考文献3334

6、基于ASP.NET的网上书店系统的设计与实现1 绪论1.1 课题背景 随着网络技术的迅猛发展,越来越多的人热衷于上网,网上购物俨然已成为一种时尚和潮流。人们只要打开电脑,轻点鼠标,登录到购物网站,即可突破地域的限制,恣意遨游于信息的海洋。书籍作为一种文化的载体、智慧的结晶,也加入到了网络购物的热潮之中,越来越多的网上书店诞生了,并且生机勃勃。1.2 开发目标在Visual Studio 2010开发工具和SQL Server 2008数据库软件基础上,采用ASP.NET语言,开发一套网上书店系统,实现管理员可以通过Web浏览器进入后台,实现网上图书添加、删除、图书分类管理及定单管理、用户管理等

7、功能,以及用户登录、注册,在站内进行搜索等功能。2 系统分析2.1 需求分析网上书店系统包括如下基本功能。l 用户注册和登录:为用户提供注册、登录、找回丢失密码、修改个人信息等功能。l 图书信息查询及管理:对信息进行灵活的分类、存储,方便用户迅速从少则几万,多则几十万甚至上百万种图书中找出自己所需图书。l 购物车管理:用语存储用户选择好的图书,完成购物后可以自动生成订单以供管理者进行管理。l 订单管理:为用户提供订单查询功能,同时为管理者提供订单查询功能及处理功能。l 后台管理:为管理者提供用户信息查询和销售情况查询等功能。2.2 可行性分析2.2.1 需求可行性 网上书店为人们提供了诸多方便

8、。l 更加广阔的环境:人们不受时间、空间的限制,不受传统购物的诸多限制,可随时随在网上交易。l 更加广阔的市场:在网上这个世界将会变得很小,一个商家可以面对全球的消费者,而一个消费者可以在全球的任何一家商家购物。l 更加快速的流通和低廉的价格:电子商务减少了商品流通的中间环节,节省大量开支,从而大大降低了商品流通和交易成本。l 更加符合时代要求:如今人们越来越追求时尚、讲究个性,注重购物的环境,网上购物,更能体现个性化的购物过程。 综合应用所学知识,构建网上书店系统,并重点实现网上书店系统所涉及的功能,从而使本人把所学的理论知识能够很好的运用到实践当中。2.2.2 技术可行性 近年来随着Int

9、ernet技术的飞速发展及用户需求的不断升级,Web页面技术也不断的推陈出新,使得Web站点的功能越来越强大,能够提供的服务种类越来越繁多。从HTML、Client Script 到CGI,从JAVA的诞生到ActiveX, Web页面设计人员不断受到冲击,微软公司在总结了以往技术,重新思考Web页面设计的真正需要后,推出了Active Server Pages (ASP),一种用以取代CGI(Common Gateway Interface,通用网关接口)的技术。 简单讲,ASP是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态

10、网页,包括使用 HTML 表单收集和处理信息,上传与下载等等。更重要的是,ASP使用的ActiveX技术基于开放设计环境,用户可以自己定义和制作组件加入其中,使自己的动态网页几乎具有无限的扩充能力,这是传统的Web编写工具所远远不及的地方。使用ASP还有个好处,就在于ASP可利用ADO(Active Data Object,微软的一种新的数据访问模型)方便快捷地访问数据库,从而使得开发基于WWW的应用系统成为可能,这也是本系统选择ASP作为开发工具最重要的原因之一。3 总体设计3.1 设计方案为实现需求分析中所提到的网上书店的功能,本系统分为4层,分别为表示层(由ASP.NET Web 窗体组

11、成,主要用于显示信息和与用户交互)、商务逻辑层(用于抽象表示层功能,为表示层提供服务)、数据访问层(为商务逻辑层提供访问数据库系统的接口)和系统数据库。表示层页面包括3类:用户处理相关图书信息的Book*.aspx、用于处理用户信息的User*.aspx页面、用于实现管理的Manage*.asp页面。商务逻辑层包含Book.cs、User.cs、ShopCart.cs、Order.cs、Admin.cs文件,分别封装了为实现对图书、用户、购物车、订单、管理进行操作而需要的方法。该层可以直接访问数据访问层,并为表示层提供了访问接口,起到了表示层和数据访问层的桥梁的作用。数访问层包含了SqlAce

12、ss.cs文件,封装了对SQL Server2008数据库中数据的读取和对储存过程的操作。图3.1 系统分层图3.2 数据库设计3.2.1 数据库概念设计该系统的数据库中涉及到的实体有:图书、用户、购物车、订单。图书的属性有:图书类别、图书名称、图书作者、图书译者、图书出版社、图书价格、图书封面、图书介绍。用户的属性有:用户角色、用户名称、用户真名、用户密码、用户邮箱、用户提示问题、提示问题答案。购物车的属性有:图书编号、图书名称、图书价格、购书数量。订单的属性有:订单日期、订单总额、所购图书名称、所购图书单价、所购图书数量。3.2.2 数据库E-R图图3.2 数据库E-R图3.2.3 数据库

13、逻辑结构设计 本系统是典型的电子商务系统,数据库包含6个表。1 图书类别表(e-BookCategory) 网站的图书种类繁多,用图书类别表存储网站图书种类信息,可以简化图书管理。该表字段说明如下表3.1所示:表3.1 图书类别表字段名类型长度允许空键值备注CategoryIdint4否是图书类别IDCategoryNamenvarchar50是否图书类别名称2 图书信息表(e-Booklnfo) 图书信息表存储网站图书具体信息,该表引用BookCategory表的CategoryId字段作为外键,具体字段说明如下表3.2所示:表3.2 图书信息表字段名类型长度允许空键值备注BookIdint

14、4否是图书IDBookNamenvarchar50是否图书名称Coverbinary50是否图书封面CategoryIdint4是否图书类别IDAuthornvarchar50是否图书作者Translatornvarchar50是否图书译者Pressnvarchar50是否图书出版社Pricedecimal9是否图书价格Intorductionnvarchar200是否图书介绍3 订单表(e-Order) 订单表用以存储用户订单,引用Userlnfo表中的UserId字段作为外键,其具体字段内容如下表3.3所示。表3.3 订单表字段名类型长度允许空键值备注OrderIdint4否是订单IDUs

15、erIdint4是否用户IDOrderDatedatetime8是否订单日期Statusnvarchar50是否订单状态4 订单信息表(e-Orderlnfo)订单信息表包含具体订单信息,引用BookInfo表的BookId作为外键,具体字段说明如下表3.4所示:表3.4 订单信息表字段名类型长度允许空键值备注OrderIdint4否是订单IDBookIdint4否是图书IDQuantityint4是否图书数量UnitCostdecimal9是否图书价格5 购物车表(e-ShopCart)购物车表主要存储网站用户购物车信息,该表引用Booklnfo表的BookId作为外键,其具体字段说明如下表

16、3.5所示:表3.5 购物车表字段名类型长度允许空键值备注Idint4否是IDCartIdnvarchar50是否购物车IDBookIdint4是否图书IDQuantityint4是否图书数量CreatedDatedatetime6是否创建日期6 用户信息表(e-Userlnfo) 用户信息表主要用于储存网站用户信息,字段说明如下表3.6所示。表3.6 用户信息表字段名类型长度允许空键值备注UserIdint4否是用户IDUserNamenvarchar50是否用户名称UserPwdnvarchar50是否用户密码UserRolenvarchar50是否用户角色UserRealNamenvar

17、char50是否用户真实姓名Questionnvarchar50是否用户提问Answernvarchar50是否提问答案Emailnvarchar50是否邮箱地址3.3模块划分该系统的整体模块组织图所示。图3.3 管理员功能设计图 图3.4普通用户功能设计图 该系统为普通用户和管理员提供了不同的操作界面,为普通用户设计的操作界设计面如下图3.5所示,为管理员设计的操作界设计面如图3.6所示。图3.5 普通用户界面设计图图3.6 管理员操作界面图 普通用户界面划分为修改信息、修改密码、管理购物车、管理订单、搜索等模块,管理员界面划分为修改信息、修改密码、管理图书类别、增加图书、管理图书信息、管理

18、订单、管理用户信息、查询销售信息和搜索等模块。4 实现数据库访问层在动态网页设计中,很多都要涉及到对数据库的操作,这是一件枯燥、费时、而且容易出错的工作,如果使用类来实现对数据库操作的封装,就可以使写出的程序在很小的改动下完成后台数据库的操作。4.1 一般数据库操作的封装SqlAcess.cs文件中封装了对一般数据库的操作,下面简单介绍下该文件中的主要数据库访问函数。l ExecuteNonQuery函数该函数执行Sql命令,参数为连接字符串connString、命令类型cmdType、存储过程名称或T-SQL命令cmdText、SQL参数组cmdParms,返回值为受影响的行数val。pub

19、lic static int ExecuteNonQuery(string connString, CommandType cmdType, string cmdText, params SqlParameter cmdParms) SqlCommand cmd = new SqlCommand(); /定义SqlCommand对象using (SqlConnection conn = new SqlConnection(connString) /定义SqlConnection对象PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParm

20、s); /调用PrepareCommand方法int val = cmd.ExecuteNonQuery(); /调用执行查询方法cmd.Parameters.Clear(); /清空参数return val; /返回vall ExecuteReader函数该函数执行Sql命令,参数为连接字符串connString、命令类型cmdType、存储过程名称或T-SQL命令cmdText、SQL参数组cmdParms,返回值为SqlDataReader数据集。public static SqlDataReader ExecuteReader(string connString, CommandTyp

21、e cmdType, string cmdText, params SqlParameter cmdParms) SqlCommand cmd = new SqlCommand();/定义SqlCommand 对象SqlConnection conn = new SqlConnection(connString);/定义SqlConnection对象try PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms); /调用PrepareCommand方法SqlDataReader rdr = md.ExecuteReader(Com

22、mandBehavior.CloseConnection);cmd.Parameters.Clear();/清空参数return rdr;/catch /捕获异常conn.Close();/关闭链接throw;/抛出异常l ExecuteDataset函数该函数通过SqlConnection执行Sql命令,参数为SqlConnection对象connection、命令类型cmdType、存储过程名称或T-SQL命令cmdText、SQL参数组cmdParms,返回值为DataSet数据集。public static DataSet ExecuteDataset(SqlConnection co

23、nnection, CommandType commandType, string commandText, params SqlParameter commandParameters)/创建一个SqlCommand对象,并对其进行初始化SqlCommand cmd = new SqlCommand();PrepareCommand(cmd, connection, (SqlTransaction)null, commandType, commandText, commandParameters);/创建SqlDataAdapter对象以及DataSetSqlDataAdapter da =

24、new SqlDataAdapter(cmd);DataSet ds = new DataSet(); /填充dsda.Fill(ds);/ 清除cmd的参数集合cmd.Parameters.Clear();return ds;/返回dsl PrepareCommand函数该函数完成数据库的连接和对命令的执行,供以上函数调用。private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlPar

25、ameter cmdParms) /判断连接的状态。如果是关闭连接,则打开if (conn.State != ConnectionState.Open)conn.Open();/关闭连接/cmd属性赋值cmd.Connection = conn;cmd.CommandText = cmdText;/是否需要用到事物处理if (trans != null)cmd.Transaction = trans;cmd.CommandType = cmdType;/添加cmd需要的存储过程参数if (cmdParms != null) foreach (SqlParameter parm in cmdPa

26、rms)cmd.Parameters.Add(parm);4.2存储过程操作的封装 网上书店系统的商务逻辑层调用数据访问层函数,完成对SQL Server数据库中存储过程的操作,这是因为使用存储过程封装应用有以下优点。l 代码模块化,以减少数据库操作员和程序员的错误。l 提高数据库安全性。l 减少网络通信流量。l 移植性较强。5 详细设计与实现5.1 用户管理模块 用户管理是一个网上书店系统补课缺少的部分,该模块主要实现用户注册、用户登录、找回丢失密码和修改个人信息等功能,用户管理模块主要包括以下页面。l 用户注册页面UserRegister.aspx,代码隐藏文件为UserRegister.

27、aspx.cs。l 用户登录页面UserLogin.aspx,代码隐藏文件为UserLogin.aspx.cs。l 找回丢失密码页面UserGetPassWord.aspx。代码隐藏文件UserGetPassWord.aspx.cs。l 修改个人信息页面UserChangeInfo.aspx,代码隐藏文件为UserChangeInfo.aspx.cs。 图5.1 User类中的主要函数列表5.1.1 用户注册在如图5.2所设计的各项文本框中输入对应信息,然后单击【注册】按钮,可以注册新用户。图5.2 用户注册界面设计图用户注册的功能由函数AddUser_Click实现。函数AddUser_Cl

28、ick代码如下,该段代码保存在UserRegister.aspx.cs文件中。protected void AddUser_Click(object sender, System.EventArgs e)/得到用户注册信息string userName = LoginName.Text.Trim();/定义用户名string password = Password.Text.Trim();/定义密码string question = Question.Text.Trim();/定义问题string answer = Answer.Text.Trim();/定义问题答案string userre

29、alname=UserRealName.Text.Trim();/定义用户真实姓名string email=Email.Text.Trim();/定义邮件地址string role=用户;User user = new User();int userId = user.RegisterUser(userName, password, question, answer,userrealname,email,role);/得到用户ID/如果返回值为-1,表示用户名已经存在if (userId = -1)Message.Text = 您注册的用户已经存在;else /设置用户为通过验证System.

30、Web.Security.FormsAuthentication.SetAuthCookie(userId.ToString(),false);/迁移购物车记录/将用户重定向至用户帐户页面Response.Redirect(UserLogin.aspx);5.1.2 用户登录在为用户登录所设计的图5.3中,输入对应信息,然后单击【登录】按钮,可以完成用户登录。图5.3 用户登录界面设计图用户登录的功能由函数LoginUser_Click实现,函数LoginUser_Click代码如下,该段代码保存在UserLogin.aspx.cs文件中。protected void LoginUser_Cl

31、ick(object sender, System.EventArgs e)/实体化User对象User user = new User();int userId = user.Login (LoginName.Text,Password.Text);/注册用户SessionUserRole =user.GetUserRole(userId);/得到用户角色if (userId = 0)/如果返回为空lblMessage.Text = 您输入的用户或密码有误;elseSystem.Web.Security.FormsAuthentication.RedirectFromLoginPage(us

32、erId.ToString(), CheckCookie.Checked);5.1.3 找回丢失密码在如图5.4所设计的【用户名】、【提示问题】、【问题答案】和【E-mail】文本框中输入对应信息,然后单击【提交】按钮,即可完成用户找回丢失密码的操作。图5.4 找回丢失密码界面 用户找回丢失密码的功能由函数Submit_Click实现。函数Submit_Click代码如下所示。该段代码保存在UserGetPassWord.aspx.cs文件中。其中User类中的GetBackPassword函数具体内容代码保存在了User.cs中。protected void Submit_Click(obj

33、ect sender, System.EventArgs e)/实例化user对象User user = new eBookShop.User();int result = user.GetBackPassword(LoginName.Text.Trim(), Question.Text.Trim(),Answer.Text.Trim(), Email.Text);/得到密码if (result = 1)/如果返回1Message.Text = 您的6位密码已发送,请到邮箱查收;/提示成功elseMessage.Text = 您的输入信息有误;/提示失败5.1.4 修改个人信息在程序执行后的界

34、面如图5.5所示,在真实姓名、问题、答案、E-mail文本框中输入对应信息,然后单击【提交】按钮,即可完成用户个人信息的修改。图5.5 修改个人信息界面修改个人信息的功能由函数UpdateUserInfo实现。函数UpdateUsernfo代码如下所示,这段代码保存在文件UserInfo.aspx.cs中。void UpdateUserInfo() /实例化user对象User user = new User();user.ChangeProfile(User.Identity.Name, RealName.Text,Question.Text,Answer.Text , Email.Text

35、);/改变用户信息5.2 图书管理模块图书管理是系统的重要组成部分,它主要实现图书类别的添加和删除,图书的添加、删除和修改,列表显示图书,图书搜索等功能。图5.6 Book类的主要函数列表5.2.1 管理图书类别 图书类别管理的执行流程如图5.7所示。在如图5.8所示的图书类型文本框中输入图书类型信息,然后点击【添加】按钮,可以完成图书类型的添加操作。图5.7 图书类别管理的执行流程图5.8 管理图书类别 添加图书类型的功能由函数Add_Click实现,Add_Click函数代码保存在ManageBookType.aspx.cs文件中。5.2.2 添加、删除、修改图书信息 添加、删除、修改图书

36、信息的执行流程如图5.9所示。 在本节代码实现后,如图5.9所示的【图书名称】、【作者】、【译者】、【出版社】、【价格】、【介绍】文本框中输入对应信息,并单击【浏览】按钮,选择图书封面后单击【确定】按钮,选择图书类别,然后单击【添加】按钮,即可完成新书的添加操作。开始修改选择添加、删除、修改修改成功删除成功添加成功结束添加确定修改确定删除确定添加删除填写修改信息选中删除填写图书信息图5.9 添加、删除、修改图书信息的执行流程图5.10 添加图书实现图5.2.3 列表显示图书 图书列表显示功能由 DataListBind函数实现,函数 DataListBind(代码如下,该段代码保存在文件Boo

37、kByType.aspx.cs中。 void DataListBind()dl_BookByType.DataSource=Product.GetBookByCategory(int.Parse(ViewStateBookTypeId.ToString() );/设置数据源dl_BookByType.DataBind();/绑定数据图5.11为按类别列表显示信息的界面实现图。 图5.11 列表显示图书图5.2.4 搜索图书搜索图书的流程如图5.12所示,在如图5.13所示的【图书名称】、【作者】、【译者】、【出版社】文本框中输入对应信息,在【图书类型】下拉列表框中选择图书种类,然后单击【查找】

38、按钮以实现搜索功能。显示相关数据存在不存在开始数据库中搜索信息是否存在填写搜索信息结束图5.12搜索图书的执行流程图5.13 搜索图书图5.14 搜索结果 图5.14以列表形式实现了显示搜索结果的程序,图书具体搜索功能由函数Bind实现。5.3 购物车管理模块购物车模块使用户可以在购物时随时查看自己购买的商品,并可以随时添加和删除所购买的商品。图 5-15 ShopCart类中的主要函数列图5.3.1 查看购物列表查看购物列表的执行流程如图5.16所示。用户可以通过点击图书旁边的“加入购物车”按钮,将图书加入购物车。图5.17显示了用户购物车,具体包括图书编号、图书名称、价格、数量、总金额记忆

39、合计金额等内容。开始查看购物列表更新购物车修改购物车结算购物列表是否有误结束是否图5.16 查看购物车列表的执行流程图5.17 查看购物车列表购物车列表显示功能由函数showshopcart 实现,该代码保存在MyShopCart.aspx.cs中。5.3.2 结账用户结账的执行流程如图5.18所示。图5.19为购物车结账界面,结账功能的实现与前面查看购物列表功能实现相似。是开始判断数据是否正确查看购物列表提交结束修改购物列表否图5.18 用户结账的执行流程图5.19 购物车结账界面 图5.19为代码实现后的截图,如果提交的购物记录出错,可跳转到购物车列表程序,而后再选择对现有的数据库的删除与

40、修改操作。5.4 订单管理模块图5.20 订单Orders类中的主要函数列图5.4.1 客户订单管理开始订单列表订单细节查询结束查询客户信息的执行流程如图5.21所示。图5.22显示了客户所提供的订单,包括订单号、订单时间、订单总额等信息。图 5.21 查询客户信息的执行流程图5.22 客户订单浏览设计图 客户订单浏览功能在函数page_load中实现,其代码如下所示,该段代码保存在MyOrder.aspx.cs文件中。protected void Page_Load(object sender, System.EventArgs e)string userID = User.Identity.Name;/得到用户ID Orders orderHistory = new Orders();/创建Orders对象MyList.DataSource = orderHistory.GetOrderList(userID);/设置数据源MyList.DataBind();/数据绑定if (MyList.Items.Count = 0)/判断订单是否为空MyList.Visible = false;MyError.Text = 您没有订单记录;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1