




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第24章 图书销售管理系统,随着B2C商务运营模式的开展,越来越多的公司构建了自己的网路图书销售系统,并通过这些商城实现商品的销售。B就是公司,C就是客户,一种公司直接对客户的销售模式,省去了中间的一些环节,这种购物方式便捷,所以大部分公司都有了自己的销售网站。本章就教读者如何构建一个网络销售平台。本章构建的是一个图书销售平台,从目录就可以看出本案例的整体架构。【本章示例参考:源代码C24】,24.1 系统总体设计,每个项目要想很好的被执行下去,则必须前期就设计好。如果设计好了,开发人员根据设计完成主要功能即可。本节就介绍图书销售平台的前期设计。,24.1.1 销售系统功能设计,网上书店销售平台是企业内部的一个完整B2C电子商务网站。在本系统中,它主要包括以下几点:1用户登录和注册功能2用户和角色管理功能3书籍信息类别管理功能4书籍信息管理功能5书籍附件和图片管理功能,24.1.2 系统功能模块划分,按照上一小节的系统功能设计,可以把系统划分为用户登录和注册模块、用户和角色管理模块、书籍信息类别管理模块、书籍信息管理模块以及书籍附件和图片管理模块。它们之间的关系如图24.1所示。,24.2 数据库设计,在网络上销售图书,必须有图书的相关资料,这些资料就存储在数据库中。如何存储这些相关的资料,就需要进行数据库设计。,24.2.1 系统概要设计,考虑网上书店销售平台的实际需要和上一节的总体设计,本系统至少需要的数据包括用户数据、角色数据、书籍类别数据、书籍数据、书籍的附件和图片数据。用户和角色的关系数据;书籍类别数据主要包括书籍的类别信息,如名称、上级类别等用户和角色主要包括用户数据、角色数据,以及信息;书籍数据主要包括书籍的信息,如书籍标题、详细介绍、出版社、作者、出版日期,以及书籍的属性等;书籍的附件和图片数据主要包括书籍的普通附件信息和图片附件信息。,24.2.2 数据库表设计,根据概要设计的要求,本节开始设计网络商城需要的数据表。1角色表Role2用户表User3书籍类别表Category4书籍表Book5书籍图片表Picture6书籍评论表Comment7订单表OrderForm8订单子项表OrderItem,24.2.3 数据库表关系设计,在本系统数据库中,各个表之间的关系比较简单,表之间的引用关系也比较简单。用户表User引用角色表Role的RoleID字段;书籍表Book分别与书籍类别表Category、书籍评论表Comment、书籍图片表Picture、订单子项表OrderItem形成关联;订单表OrderForm分别和用户表User、订单子项表OrderItem形成关联。最终设计各个表之间的关系图如图24.2所示。,24.2.4 数据表到数据类的映射(LINQ to SQL Classes),本章的数据库使用实体数据访问方式,这就用到了LINQ查询方式,实现完全面向对象的操作。所以需要把数据库中的所有表都映射到应用程序中。本例的映射步骤如下。(1)打开服务器资源管理器“Server Explorer”。(2)添加一个数据库连接,要连接的就是本例需要的数据库“OAManageDB”。(3)从表“Tables”节点中,可以看到当前数据库下的所有表。(4)在网站根目录下添加一个LINQ to SQL Classes类,会自动打开其设计视图。(5)把Tables节点下的所有表拖放到设计视图,单击“保存”按钮,保存所有的映射类。本例使用拖放方式就直接生成了数据表到数据类的映射。这些映射关系,以XML的形式保存在应用程序下,而类文件保存在“DataClasses.designer.cs”中。,24.3 网络商城的界面设计,本章的项目开发流程完全按照正常项目的开发流程走,当进行完系统设计和数据库设计后,本节开始设计网络商城的界面。,24.3.1 用户登录后的主界面设计(Main.aspx),系统主页面为Main.aspx,存放在文件夹“DesktopModules”下,它由页面Index.aspx、MainDesktop.aspx、LeftTree.aspx和页面头模块SystemTop.aspx共同组成。其中头模块存放在文件夹“UserControls”下,属于用户控件。主页面Main.aspx的组成如图24.3所示,它包含两个模块,即头模块(UserControls/SystmeTop.aspx)和主页面模块(DesktopModules/Index.aspx)。主页面模块也包含两个模块,即左边树模块(DesktopModules/LeftTree.aspx)和桌面主模块(DesktopModules/MainDesktop.aspx),如图24.4所示。,24.3.2 书籍的类别树设计,书籍的类别树主要由页面LeftTree.aspx实现,它的代码隐藏文件为LeftTree.aspx.cs,主要以树型形式显示系统的书籍类别。1界面设计在页面LeftTree.aspx上添加一个TreeView控件,它的名称为CategoryView,主要用来显示系统的书籍类别。单击书籍类别树的每个节点,主模块中显示相应的页面,如用户管理页面UserManage.aspx等。2页面初始化页面LeftTree.aspx初始化功能比较简单,主要从数据库的书籍类别表Category中获取所有信息,然后通过CategoryView控件显示这些信息。,24.3.3 系统主页面,系统运行之后,展开书籍类别树的所有节点,并单击“计算机”节点,此时页面Main.aspx如图24.6所示,此时用户未登录该系统。,24.4 用户登录和注册功能,用户登录是使用该系统的前提,只有当用户登录系统之后,用户才能拥有操作该系统的权限。用户注册是为本系统添加新的用户,并设置新用户的权限。下面详细介绍这两个功能。,24.4.1 用户登录,在本系统中,由于同时考虑用户登录和退出系统功能,所以用户登录功能比较复杂,它由页面UserLoginPage.aspx、用户控件UserLogin.ascx和用户控件UserLoginInfo.ascx共同实现,UserLoginPage.aspx.cs、UserLogin.ascx.cs和UserLoginInfo.ascx.cs分别为它们的代码隐藏文件,这些页面和用户控件均保存在文件夹“UserControl”下。1用户控件UserLogin.ascx2用户控件UserLoginInfo.ascx3页面UserLoginPage.aspx,24.4.2 用户注册,用户注册主要实现添加用户功能,它由页面AddUser.aspx实现,它的代码隐藏文件为AddUser.aspx.cs。该页面保存在文件夹“DesktopModules/User”下。在添加新用户时,同时需要设置该用户的角色,即设置该用户的管理权限。1界面设计2页面初始化3添加新用户,24.5 书籍类别管理功能,在本系统中,书籍的类别采用动态管理机制,即不限制类别的层数,它可以由用户动态维护。书籍的类别管理主要实现类别的添加、修改、删除和排序4大功能,下面将详细介绍这些功能。,24.5.1 类别管理界面设计,类别管理由页面CategoryManage.aspx实现,代码隐藏文件为CategoryManage.aspx.cs。该页面保存在文件夹“DesktopModules/Category”。1界面设计2页面初始化,24.5.2 使用TreeView控件设置导航信息,ASP.NET 3.5提供了TreeView控件,该控件可以以树型形式显示信息。在本系统中多次使用了该控件,如页面LeftTree.aspx使用TreeView控件显示系统的功能模块表的信息,书籍的类别管理页面CategoryManage.aspx使用TreeView控件显示书籍的类别信息。显示功能模块信息时,使用函数BindCategoryTreeView()和函数CreateChildNode()创建TrecView控件的节点。其中函数BindCategoryTreeView()带有3个参数:参数treeView表示TreeView控件、参数isExpanded表示节点是否扩展、参数sSelectedData选择节点的数据。该函数首先创建TreeView控件的根节点,然后调用函数CreateChildNode()递归创建其他所有子节点。函数BindCategoryTreeView()的程序代码如下所示。,24.5.3 添加新的图书类别,添加新的类别功能由AddBtn按钮控件实现,在Category输入框中输入新类别的名称,在Remak输入框中输入类别的备注信息,并单击“添加”按钮触发事件AddBtn_Click(object sender, EventArgs e),实现新类别的添加功能。在单击此按钮之前,必须选择类别树的某个节点,而且新添加的类别节点为选择节点的子节点,否则程序会提示用户先选择类别树的节点。事件AddBtn_Click()调用CategoryM类的函数AddCategory()添加新的类别到数据库中,如果添加成功,并显示提示信息,否则显示添加操作的失败信息。事件AddBtn_Click()的程序代码如下所示。,24.5.4 修改图书类别,修改类别信息由【修改】按钮(UpdateBtn)控件实现。首先选择类别树的需要修改的节点,并在Category输入框中输入修改的信息,类别的备注信息可以修改或者不修改。单击该按钮触发事件UpdateBtn_Click(object sender, EventArgs e),实现类别名称的修改功能。与添加新类别功能一样,该事件同样需要首先判定用户是否选择类别树的节点,否则显示提示信息。最后该事件调用CategoryM类的函数UpdateCategory()修改类别信息,并保存到数据库中,如果修改成功,并显示提示信息,否则显示修改操作的失败信息。类别的修改事件UpdateBtn_Click()的程序代码如下所示。,24.5.5 图书类别排序,排序类别功能实现类别的上移功能和下移功能,它们分别由“上移”控件(UpBtn)和“下移”控件(DownBtn)实现,这两个控件都触发事件UpDownBtn_Click(object sender, EventArgs e),当控件触发排序事件时,事件首先获取控件的“CommandName”属性的值,即判定是上移控件还是下移控件触发该事件。如果“CommandName”属性的值为“up”,则执行上移操作;如果“CommandName”属性的值为“down”,则执行下移操作。上移功能和下移功能均由CategoryM类的函数UpdateCategoryOrder(int nCategoryID,string sMoveFlag)实现,其中参数nCategoryID标识需要移动的类别ID,参数sMoveFlag标识移动操作(上移、下移)。若移动成功,则重新绑定类别树的数据。事件UpDownBtn_Click()的程序代码如下所示。,24.5.6 删除图书类别,删除类别功能由DeleteBtn按钮控件实现,该按钮触发事件DeleteBtn_Click(object sender, EventArgs e),在删除选择的类别时,需要判断该类别是否包含子节点。如果包含子节点,则不能删除该类别。事件DeleteBtn_Click()调用CategoryM类的函数DeleteCategory()删除选择的类别信息,并保存到数据库中,在删除类别节点之后,需要再次绑定类别树的数据。事件DeleteBtn_Click()的程序代码如下所示。,24.6 书籍管理功能,书籍管理功能由页面BookManage.aspx、页面LeftTree.aspx和页面MainManage.aspx共同实现,它们均保存在文件夹“DesktopModules/Book”下,它们的代码隐藏文件分别为文件BookManage.aspx.cs、文件LeftTree.aspx.cs和文件MainManage.aspx.cs。在页面BookManage.aspx定义了3个Frame,分别为thisFrame、LeftFrame和MainFrame,其中框架thisFrame加载文件夹“UserControls”下的页面SystemTop.aspx,框架LeftFrame加载页面LeftTree.aspx,框架MainFrame页面MainManage.aspx。页面BookManage.aspx的部分HTML设计代码如下所示。,24.6.1 动态加载书籍类别,加载书籍类别功能由页面LeftTree.aspx实现,它主要以树型形式显示书籍的所有类别信息,其中树型形式采用TreeView控件实现,它的名称为CategoryView。页面LeftTree.aspx的HTML代码如下所示。 ,24.6.2 书籍管理,书籍管理功能由页面MainManage.aspx实现,它的代码隐藏文件为MainManage.aspx.cs。该页面保存在文件夹“DesktopModules/Book”下。1界面设计2页面初始化3“添加新的书籍”链接4“修改书籍信息”链接5“书籍图片管理”链接6“书籍评论管理”链接7“查看书籍信息”链接,24.6.3 添加书籍,当用户单击页面MainManage.aspx中的“添加新的书籍”按钮时,程序跳转到添加新的书籍的页面AddBook.aspx,该页面的代码隐藏文件为AddBook.aspx.cs,它实现添加新的书籍功能。添加新的书籍到数据库中,即添加书籍的信息(如书籍名称、作者、出版社等信息)到数据库中,因此需要在页面AddBook.aspx中添加TextBox控件或者DropDownList控件供用户输入书籍的信息。由于书籍的信息比较多,在页面AddBook.aspx中添加TextBox控件或者DropDownList控件的数量也比较多,因此不再做详细介绍,读者可以直接参考该页面的设计源代码。页面AddBook.aspx的设计界面如图24.18所示。,24.6.4 修改书籍,当用户单击页面MainManage.aspx中的“修改书籍信息”按钮时,程序跳转到添加新的书籍的页面UpdateBook.aspx,该页面的代码隐藏文件为UpdateBook.aspx.cs,它实现修改书籍信息的功能。修改书籍信息不同于添加新的书籍信息,是由于在提交用户修改信息之前,必须先显示书籍修改前的信息。因此页面UpdateBook.aspx在初始化时,就首先调用初始化函数Page_Load(object sender,EventArgs e)和函数BindBookData(int nBookID)实现了这一功能,即显示书籍修改前的信息。值得注意的是,由于需要显示书籍修改前的信息,因此必须需要被修改书籍的ID值,该值由参数nBookID从页面UpdateBook.aspx的地址栏中获取。函数Page_Load(object sender,EventArgs e)和函数BindBookData(int nBookID)的程序代码如下所示。,24.6.5 删除书籍,当用户在页面MainManager.aspx上单击“删除书籍信息”按钮时,该按钮触发删除事件DeleteBtn_Click(object sender,EventArgs e),它实现删除书籍信息的功能。该事件调用类BookM中的函数DeleteBook(int nBookID)删除书籍的信息,从而完成书籍信息的修改功能。如果删除书籍成功,页面UpdateBook.aspx将进一步显示“删除书籍”操作的结果,如果失败,页面跳转到系统错误处理页面ErrorPage.aspx。事件DeleteBtn_Click(object sender,EventArgs e)的程序代码如下所示。,24.7 书籍图片管理功能,用户首先选择页面BookManage.aspx中BookList列表中的某本书籍,然后单击“书籍图片管理”按钮,系统跳转到页面PictureManage.aspx。图片管理功能主要对书籍的图片进行管理,如图片的显示、添加、删除等功能,而且一本书籍可以包含多个图片,但只有一张图片是该书籍的当前显示图片。图片管理功能主要由页面PictureManage.aspx实现,它的代码隐藏文件为PictureManage.aspx.cs。,24.7.1 图片的管理,页面PictureManage.aspx的界面设计可以分为两部分,一部分显示书籍的图片,可以采用ListBox控件实现;另外一部分上载图片,即输入图片的相关属性,如名称、类别等,其中ListBox控件的名称为PictureList,上载图片信息的控件名称为PictureFile。最终页面PictureManage.aspx的设计界面如图24.19所示。,24.7.2 上载图片,上载图片总体上可以分为两个部分,第一部分上载图片,第二部分就是保存第一部分操作中对图片表的修改信息。第一部分由上载控件PictureFile实现,单击“添加新图片”按钮控件,触发事件AddBtn_Click(object sender, EventArgs e)后就可以将上载控件PictureFile中的文件数据上载到服务器中,并重新更新PictureList控件的信息。该事件首先调用函数PictureFile()上载图片的数据,并返回访问该图片的链接地址。上载图片的数据成功之后,调用PictureM类的函数AddPicture()将图片信息添加到图片表中。事件AddBtn_Click(object sender, EventArgs e)的程序代码如下所示。,24.7.3 设置书籍默认图片,当用户在页面PictureManager.aspx上单击“设为显示图片”按钮时,该按钮触发事件SetDefaultBtn_Click(object sender,EventArgs e),它实现设置书籍的默认图片的功能。该事件调用类PictureM中的函数UpdatePictureShow(int nPictureID)修改当前被选择的图片为数据的默认图片。事件SetDefaultBtn_Click(object sender,EventArgs e)的程序代码如下所示。,24.7.4 删除图片,当用户在页面PictureManager.aspx上单击“删除图片信息”按钮时,该按钮触发删除事件DeleteBtn_Click(object sender,EventArgs e),它实现书籍图片信息的删除功能。该事件调用类PictureM中的函数DeletePicture(int nPictureID)删除书籍的图片信息,从而完成书籍图片信息的修改功能。如果删除书籍图片信息成功,页面PictureManager.aspx将进一步显示“删除图片信息”操作的结果,如果失败,页面跳转到系统错误处理页面ErrorPage.aspx。事件DeleteBtn_Click(object sender,EventArgs e)的程序代码如下所示。,24.8 书籍评论管理功能,用户首先选择页面BookManage.aspx中BookList列表中的某本书籍,然后单击“书籍评论管理”按钮,系统跳转到页面CommentManage.aspx。书籍评论管理功能主要对书籍的评论进行管理,如查看书籍的评论信息、删除书籍的评论信息等,而且用户可以对一本书籍进行多次评论。评论管理功能由页面CommentManage.aspx实现,它的代码隐藏文件为CommentManage.aspx.cs。,24.8.1 显示评论信息,页面CommentManage.aspx的界面设计可以分为两部分,一部分以列表形式显示书籍的评论信息,可以采用ListBox控件实现;另外一部分是删除书籍的评论,其中ListBox控件的名称为CommentList,删除评论信息的控件名称DeleteBtn。最终页面CommentManage.aspx的设计界面如图24.21所示。,24.8.2 查看和发表单本书的评论,当用户在页面BrowserBook.aspx中单击“查看书籍评论”链接按钮时,显示一个新Web页面,即页面ViewBookComment.aspx,它的代码隐藏文件为ViewBookComment.aspx.cs。页面ViewBookComment.aspx可以分为两个部分,即显示书籍评论部分和发表书籍评论部分。该页面使用GridView控件CommentList显示某本书籍的所有评论,并显示每条评论的作者、评论日期、评论标题和评论内容。发表评论部分主要由两个TextBox控件和一个Button按钮实现,其中TextBox控件名称分别为Title和Comment,分别用来输入评论标题和内容,Button控件的名称为SureBtn,此按钮实现发表评论功能。另外,页面ViewBookComment.aspx还在开始部分显示书籍的部分信息,如标题、出版社等信息,页面ViewBookComment.aspx的设计界面如图24.22所示。,24.8.3 删除单本书籍的评论,当用户在页面CommentManager.aspx上单击“删除评论信息”按钮时,该按钮触发删除事件DeleteBtn_Click(object sender,EventArgs e),它实现书籍评论信息的删除功能。该事件调用类Comment中的函数DeleteComment(int nCommentID)删除书籍的评论信息,从而完成书籍评论信息的删除功能。如果删除书籍评论信息成功,页面CommentManager.aspx将进一步显示“删除评论信息”操作的结果,如果失败,页面跳转到系统错误处理页面ErrorPage.aspx。事件DeleteBtn_Click(object sender,EventArgs e)的程序代码如下所示。,24.9 购物车和订单管理功能,购物车和订单管理功能模块主要介绍了浏览书籍、购买书籍、查看购物车和提交订单4个功能,下面将详细介绍这些功能。,24.9.1 浏览书籍,当用户访问本系统的网上书店销售平台时,用户首先将浏览销售平台的所有书籍,该功能由页面LeftTree.aspx和页面BrowserBook.aspx共同实现,其中页面LeftTree.aspx按树型结构显示书籍的所有类别,页面BrowserBook.aspx显示某一个具体类别(即LeftTree.aspx选择的类别)下的所有书籍。下面依次介绍这两个页面。1页面LeftTree.aspx2页面BrowserBook.aspx,24.9.2 购买书籍,用户单击页面BrowserBook.aspx中的某本书籍的“加入购物车”按钮,可以把该本书籍添加到自己的购物车中。该功能由GridView控件BookList的ItemCommand类型的事件BookList_ItemCommand(object source, GridViewCommandEventArgs e)实现。用户购买书籍时,系统把用户购买的书籍信息暂存在Session变量中,为了保存数据的方便性,在此定义了OrderItemInformation类和OrderFormInformation类。其中第一个类保存购物车中每一个子项的数据,第二个类保存整个购物车的数据,定义这两个类的程序代码如下所示。,24.9.3 查看自己的购物车,只有当用户登录系统之后,才会有查看自己购物车的权限。查看购物车功能由页面CommitOrderForm.aspx实现,CommitOrderForm.aspx.cs为它的代码隐藏文件。在页面CommitOrderForm.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 佣金提成协议书
- 订果子协议书
- 协议书转让给控股股东
- 协议书离婚共同抚养孩子
- 2025股权分配协议合同范本
- 协议书生是什么
- 房屋拆签协议书
- 2025授权协议样板
- 折迁补偿协议书
- 2025住宅区房产买卖合同书
- 网络交友新时代课件
- 2025年乡村医生公共卫生服务专业知识题库及答案解析
- 2024年江南大学公开招聘辅导员笔试题含答案
- 议论文写作入门基础任务式课件2025-2026学年统编版高中语文必修上册
- 佛州驾照考试试题题库及答案
- 《人工神经网络理论及应用》课件-第8章 深度神经网络-卷积神经网络(下)
- 索佳全站仪SET230RK3使用说明书
- 甘草中药课件
- 2025贵州贵阳机场安检站安检员岗位实习人员招聘笔试历年参考题库附带答案详解
- 建设工地试验室日常质量监督计划
- 基本生活能力评估表BADL使用指南
评论
0/150
提交评论