目录
第1章 引言 .............................................. 2 第2章 系统技术及运行环境 ................................ 2
2.1 ASP.NET简介 .................................................. 2 2.2 VISUAL STUDIO 2008简介 .......................................... 2
第3章 系统分析 .......................................... 3
3.1需求分析 ...................................................... 3 3.2识别实体 ...................................................... 3
第4章 总体设计 .......................................... 4
4.1 三层架构层次的划分 ............................................ 4 4.2系统功能图 .................................................... 5
第5章 关键性构件及各层次实现 ............................ 5
5.1设计和开发流程 ................................................ 5
第6章 公共模块 .......................................... 8
6.1系统主界面 .................................................... 8 6.2登录及注册模块 ................................................ 8 6.2.1登录....................................................... 8 6.2.2注册....................................................... 9 6.2.3修改密码.................................................. 10 6.3 图书搜索 ..................................................... 11 6.4管理员模块 ................................................... 13 6.4.1角色管理.................................................. 13 6.5用户管理 ..................................................... 14 6.5.1主界面.................................................... 14 6.5.2修改用户角色及备注信息.................................... 15 6.5.3我的个人信息及更新........................................ 17 6.6图书管理 ..................................................... 18 6.6.1主界面.................................................... 18 6.6.2添加图书.................................................. 19 6.6.3查看图书详细信息及更新.................................... 21 6.6.4查看图书销售情况.......................................... 21 6.7 订单管理 ..................................................... 22 6.7.1查看订单信息.............................................. 22 Web数据库程序设计课程设计
6.7.2查看订单子项信息.......................................... 23 6.8类别管理 ..................................................... 24 6.8.1主界面.................................................... 24 6.8.2添加图书类别.............................................. 25 6.9普通用户模块 ................................................. 25 6.9.1用户信息中心查看(我的个人信息及更新).................... 25 6.9.2购买图书(我的购物车).................................... 26 6.9.3结算中心.................................................. 28 6.9.4 订单管理(查看订单信息) ................................. 29 6.9.5查看订单详细信息.......................................... 30 6.9.6查看图书详细信息及留言.................................... 30
第7章 设计体会及今后的改进意见 ......................... 34 第8章 参考文献 ........................................ 34
1
网上书店信息管理系统
第1章 引言
21世纪是个信息化的时代,现代计算机技术的发展,为各行各业的发展创造了一个全新的时代背景——人们的生活、工作等已经越来越离不开计算机科学的运用,而Internet的应用加速了这种趋势。随着全球经济一体化步伐的加快,在信息时代的今天,各企业商家所关心的不再局限于自身的产品质量、生产设备、员工的素质,更多的是关心自己的销售群体(客户群),关心他们的想法、需求、购买目的。网上书店系统的存在给予广大用户能不出门也能买到书,搜索到自己想要的书籍。随着网站的大规模化,它的存在就成为互联网生活中不可缺少的一部分。本系统主要采用ASP.NET,开发语言为C#,主要实现的是用户管理,订单查询,实现购物结账等功能,由于水平有限,很多地方做的还不是很好,有待以后加以改进加强。在下面的各章节中,我将详细的介绍网上书店系统e-book的开发过程和所涉及的问题以及解决方法。
第2章 系统技术及运行环境
2.1 ASP.NET简介
ASP.NET是统一的 Web 应用程序平台,它提供了为建立和部署企业级 Web 应用程序所必需的服务。ASP.NET 为能够面向任何浏览器或设备的更安全的、更强的可升级性、更稳定的应用程序提供了新的编程模型和基础结构。
ASP.NET 是 Microsoft .NET Framework 的一部分,是一种可以在高度分布的 Internet 环境中简化应用程序开发的计算环境。.NET Framework 包含公共语言运行库,它提供了各种核心服务,如内存管理、线程管理和代码安全。它也包含 .NET Framework 类库,这是一个开发人员用于创建应用程序的综合的、面向对象的类型集合。
ASP.NET 提供了下面的优点:
可管理性: ASP.NET 使用基于文本的、分级的配置系统,简化了将设置应用于服务器环境和 Web 应用程序的工作。因为配置信息是存储为纯文本的,因此可以在没有本地管理工具的帮助下应用新的设置。配置文件的任何变化都可以自动检测到并应用于应用程序。详细信息,请参阅 ASP.NET 配置。
安全: ASP.NET 为 Web 应用程序提供了默认的授权和身份验证方案。开发人员可以根据应用程序的需要很容易地添加、删除或替换这些方案。
与现有 ASP 应用程序的兼容性: ASP 和 ASP.NET 可并行运行在 IIS Web 服务器上而互不冲突;不会发生因安装 ASP.NET 而导致现有 ASP 应用程序崩溃的可能。ASP.NET 仅处理具有 .aspx 文件扩展名的文件。具有 .asp 文件扩展名的文件继续由 ASP 引擎来处理。需要注意的是会话状态和应用程序状态并不在 ASP 和 ASP.NET 页面之间共享。
2.2 Visual Studio 2008简介
Visual Studio 是微软公司推出的开发环境。是目前最流行的 Windows 平台应用程序
2
Web数据库程序设计课程设计
开发环境。目前已经开发到 9.0 版本,也就是 Visual Studio 2008。 Visual Studio 可以用来创建 Windows 平台下的 Windows 应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和 Office 插件。
第3章 系统分析
3.1需求分析
网上书店系统为用户提供一系列网上购书服务。
系统包含两类用户,即管理员和普通用户。针对这两类用户,系统根据登录时的角色判断,跳转到相应的页面为其提供操作。网上书店系统实现了图书信息的列表显示,用户通过选择图书种类进入对应种类的图书列表,也可以输入图书名称进行模糊查询。普通用户可以针对某一本书进行放入购物车、查看详细信息、查看留言等操作,在结算中心,系统为用户创建当次购书订单,默认为“未结”状态。同时系统为普通用户提供订单管理操作,方便用户查看订单,并可以针对以前的未结订单进行已结操作。
管理员负责整个系统的运行与维护,针对图书、订单、留言、用户、角色等,执行添加、删除、修改等操作。
管理员和普通用户的功能模块图如下:
图3.1系统功能模块图
3.2识别实体
在系统功能模块设计上,按管理信息系统的设计要求,每个系统都必须有输入、输出、统计、维护、基础数据设置等功能。网上书店系统的数据操作包括角色、用户、图书、图书
3
网上书店信息管理系统
种类、订单、订单子项、留言等,共同协调完成系统的运行与维护。
各实体属性:
1. 角色:角色ID、角色名称
2. 用户:用户ID、用户名、真实姓名、密码、地址、联系电话、创建日期、角色ID 3. 图书种类:图书种类ID、种类名称、上级种类ID
4. 图书:图书ID、图书名称、所属种类ID、详细描述、供应商、数量、进货价格、销售价
格、图片信息
5. 订单:订单ID、所属用户ID、图书总量、订单总费用、创建日期、订单状态 (2)性能要求:
页面美观大方,实现无刷新技术,操作方便直观,有安全保障机制,后台使用SQLServer2005数据库。
第4章 总体设计
4.1 三层架构层次的划分
目前,典型的分层架构是三层架构,依次是数据访问层、业务逻辑层和表示层。综合现有的成功实践和.NET平台的特殊性,本系统中将三层架构的层次划分如下:
数据访问层——负责与数据源的交互,即数据的插入、删除、修改以及从数据库中读出数据等操作。对数据的正确性和可用性不负责,对数据的用途不了解,不负担任何业务逻辑。
业务逻辑层——负责系统领域业务的处理,负责逻辑性数据的生成、处理及转换。对流入的逻辑性数据的正确性及有效性负责,对流出的逻辑性数据及用户性数据不负责,对数据的呈现样式不负责。
表示层——负责接收用户的输入、将输出呈现给用户以及访问安全性验证。对流入的数据的正确性和有效性负责,对呈现样式负责,对呈现友好的错误信息负责。
4
Web数据库程序设计课程设计
4.2系统功能图
图4.2系统功能图
第5章 关键性构件及各层次实现
5.1设计和开发流程
基于需求分析的应用,现将基于.NET平台的分层架构系统开发划分为以下几个阶段: (1).数据库的设计 (2).确定先行实体 (3)先行实体的实体类设计 (4).先行实体的数据访问层实现 (5).先行实体的业务逻辑层实现 (6).先行实体的表示层实现
5
网上书店信息管理系统
(7).整合调试
(8).实现其他实体相关模块 (9).总体测试
5.2数据库设计
根据实体设定以及简要的需求分析,数据库设计如下:
E—R图
(数据库表格设计如下: 1角色表Roles 列名 roleID roleName 2用户表Users 列名 userID userName realName pwd addr phone createDate roleID remark 3图书表Book
6
数据类型 int Varchar (50) Allow nulls N Y 描述 角色ID 角色名称 备注 主键 数据类型 int Varchar(50) Varchar(50) Varchar(50) Varchar(200) Varchar(20) datetime int Varchar(2000) Allow nulls N N N N N Y N N Y 描述 用户ID 用户名 真实姓名 密码 联系地址 联系电话 创建时间 角色ID 备注 备注 主键 外键 Web数据库程序设计课程设计
列名 bookID bookName caregoryID data info sell buyInDate quantity inPrice discount remark
4图书类别表Category 列名 categoryID categoryName parentID remark 5留言表Comment 列名 commentID title body createDate userID bookID 6订单表OrderForm 列名 orderFormID userID totalNum totoalMoney orderDate state 数据类型 int Varchar(200) int Varchar(50) Varchar(2000) Varchar(200) datetime int money float Varchar(2000) Allow nulls N N N Y Y Y N Y Y Y Y 描述 图书ID 图书名称 类别ID 图片信息 内容简介 出版社 购入时间 图书数量 进书价格 折扣 备注 备注 主键 外键 数据类型 int Varchar(50) int Varchar(2000) Allow nulls N Y N Y 描述 类别ID 类别名称 备注 主键 上一级类别ID 外键 备注 数据类型 int Varchar(200) Varchar(2000) datetime int int Allow nulls N N Y N N N 描述 留言ID 留言题目 留言内容 留言时间 用户ID 图书ID 备注 主键 外键 外键 数据类型 int int int money datetime Varchar(2000) Allow nulls N N Y Y N Y 描述 订单ID 用户ID 图书总数量 图书总价格 创建时间 订单状态 备注 主键 外键
7订单子项表OrderItem 列名 orderItemID bookID orderFormID
数据类型 int int int Allow nulls N N N 7
描述 订单子项ID 图书ID 订单ID 备注 主键 外键 外键 网上书店信息管理系统
num price int money N N 图书数量 图书单价 第6章 公共模块
6.1系统主界面
登录页面,管理员登录后可进入管理员页面,普通用户进入普通用户界面。
图6.1系统主界面
6.2登录及注册模块 6.2.1登录
输入用户名和密码点击登录按钮,确认身份后用户进入系统,若为空或者错误时会有相应的提示信息。登录后根据用户的角色系统进入不同界面,用户可以选择进行其他操作。
8
Web数据库程序设计课程设计
图6.2.1 登陆界面
代码如下:
Users us = UserManager.Login(txtUsername.Text.Trim(), txtpwd.Text.Trim()); Session[\"user\"] = us;//保存用户 if (us != null) {
if (us.Role.RoleName == \"管理员\") {
Response.Redirect(\"~/Manager/UserInfo/UserManager.aspx\"); } else {
Response.Redirect(\"~/Cart/BookSearch.aspx\"); } } else {
Response.Write(\"\"); }
6.2.2注册
新用户填写注册信息,提交注册为系统用户,默认用户的角色为“普通用户”。
9
网上书店信息管理系统
图6.2.2 注册界面 代码如下:
if (Page.IsValid) {
Users us = new Users();
us.UserName = this.txtusername.Text; us.Pwd = this.txtpwd.Text;
us.RealName = this.txtrealname.Text; us.Phone = this.txtphone.Text; us.Addr = this.txtaddr.Text; us.Remark = this.txtremark.Text;
BookModels.Roles role = new BookModels.Roles(); role.RoleID = 2; us.Role = role;
us.CreateDate = System.DateTime.Now.ToString(); if (UserManager.AddUser(us) != null) {
Response.Write(\"\"); } else {
Response.Write(\"\"); } }
6.2.3修改密码
用户登录系统后就能修改密码。修改时除需要输入用户名和旧密码,另外还
10
Web数据库程序设计课程设计
需要对新密码进行确认。提交后自动保存到数据库中。
图6.2.3 修改密码界面
代码如下:
user=(Users)Session[\"user\"];//保存用户 if (user != null) {
this.lblUsername.Text = user.UserName; }
if (Page.IsValid)//点击修改事件 {
string newPwd = this.txtNewPwd.Text;
string message = UserManager.ModifyPwd(newPwd,user.UserID); Response.Write(\"\"); }
//密码判断
string pwd = this.txtOldPwd.Text; if (pwd.Equals(user.Pwd)) {
args.IsValid = true; } else {
args.IsValid = false; }
6.3 图书搜索
系统用户及游客可以输入图书名称进行模糊查询,结果以表格的形式显示,
11
网上书店信息管理系统
并可以进入相应页面查看详细信息。
图6.3 图书搜索界面1
图6.3 图书搜索界面2
代码如下://绑定根据书名进行模糊查询的方法
string bookname = this.txtBookname.Text;
IList 12 Web数据库程序设计课程设计 6.4管理员模块 6.4.1角色管理 提供浏览、添加删除、修改角色的功能。 图6.4角色界面 代码如下: //点击修改事件 protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) { int roleid = int.Parse(this.GridView1.Rows[e.RowIndex].Cells[0].Text); //获取角色Id BookBLL.RolesManager.DeleteRoleById(roleid); Response.Write(\"\"); } protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { this.GridView1.EditIndex = e.NewEditIndex; Bind(); } protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { int roleid = int.Parse(this.GridView1.DataKeys[e.RowIndex].Value.ToString()); stringrolename=((TextBox)(this.GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString(); BookModels.Roles role = new BookModels.Roles(); role.RoleID = roleid; role.RoleName = rolename; 13 网上书店信息管理系统 BookBLL.RolesManager.ModifyUserRole(role); this.GridView1.EditIndex = -1; Response.Write(\"\"); Bind(); } protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { this.GridView1.EditIndex = -1; Bind(); } 6.5用户管理 6.5.1主界面 系统列出当前所有用户的基本信息,可以进行删除用户功能,并提供修改操作的链接。管理员还可以按照角色和用户名进行分类和精确查询。 图6.5.1 用户管理主界面 1 14 Web数据库程序设计课程设计 图6.5.1 用户管理主界面2 图6.5.1 用户管理主界面3 代码如下: //使用dropdownlist绑定图书类别 this.ddlCategorySearch.DataSource = BookBLL.RolesManager.GetAllRoles(); this.ddlCategorySearch.DataValueField= \"roleID\"; this.ddlCategorySearch.DataTextField = \"roleName\"; this.ddlCategorySearch.DataBind(); 6.5.2修改用户角色及备注信息 管理员通过主页面的链接,进入修改页面,修改用户的角色及备注信息。 15 网上书店信息管理系统 图6.5.2 修改用户角色界面 代码如下: protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { Users users = (Users)Session[\"user\"]; if (users == null) { //Response.Redirect(\"\"); } else { DisplayUserInfo(); } } } private void DisplayUserInfo() { int userId=int.Parse(Request.QueryString[\"userId\"].ToString()); Users user = BookBLL.UserManager.GetUserById(userId); txtremark.Text = user.Remark; lblUsername.Text = user.UserName; Bind(); this.ddlRoleselect.SelectedItem.Text = user.Role.RoleName; } protected void btnModify_Click(object sender, EventArgs e) { 16 Web数据库程序设计课程设计 Users u = new Users(); u.UserID = int.Parse(Request.QueryString[\"userId\"].ToString()); BookModels.Roles role = new BookModels.Roles(); role.RoleID = int.Parse(this.ddlRoleselect.SelectedValue.ToString()); u.Role = role; u.UserName = lblUsername.Text; u.Remark = txtremark.Text; BookBLL.UserManager.ModifyRemark(u); Response.Write(\"\"); } 6.5.3我的个人信息及更新 显示当前管理员的基本信息,并可以根据需要进行更新操作。 图6.5.3 管理员信息管理界面 代码如下: protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { Users user = (Users)Session[\"user\"]; if (user == null) { //Response.Redirect(\"\"); } else { DisplayUserInfo(); 17 网上书店信息管理系统 }}} private void DisplayUserInfo() { Users user = (Users)Session[\"user\"]; this.txtusername.Text = user.UserName; txtrealname.Text = user.RealName; txtremark.Text = user.Remark; txtphone.Text = user.Phone; txtaddr.Text = user.Addr; lblcreatedate.Text = user.CreateDate.ToString(); lblRole.Text = user.Role.RoleName; } protected void btnOk_Click1(object sender, EventArgs e) { Users user = (Users)Session[\"user\"];//获取登陆用户的信息 user.UserName = this.txtusername.Text; user.RealName = txtrealname.Text; user.Remark = txtremark.Text; user.Phone = txtphone.Text; user.CreateDate = System.DateTime.Now.ToString(); user.Addr = txtaddr.Text; BookBLL.UserManager.ModifyUser(user); Response.Write(\"\"); } 6.6图书管理 6.6.1主界面 提供图书的按类别与书名查询的功能,结果在表格中显示。 18 Web数据库程序设计课程设计 图6.6.1 图书管理主界面 代码如下: //使用dropdownlist进行查询 protected void ddlCategorySelect_SelectedIndexChanged(object sender, EventArgs e) { string bookID = this.ddlCategorySelect.SelectedValue.ToString(); Book book = BookBLL.BookManager.GetBookById(int.Parse(bookID)); IList this.GridView1.DataSource = books; this.GridView1.DataBind(); } //实现删除功能 protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) { int bookId=int.Parse(this.GridView1.Rows[e.RowIndex].Cells[0].Text); BookBLL.BookManager.DeleteBookById(bookId); Response.Write(\"\"); } 6.6.2添加图书 为管理员提供添加图书的功能,可以将本地的图书各项信息中,存入数据库。 19 网上书店信息管理系统 图6.6.2添加图书界面 代码如下: protected void btnAdd_Click(object sender, EventArgs e) { Book book = new Book(); book.BookName = this.txtbookname.Text; book.BuyInDate=System.DateTime.Now.ToString(); book.Info=this.txtInfo.Text; book.Data = this.txtdata.Text; book.InPrice=decimal.Parse(this.txtinprice.Text); book.Quantity=int.Parse(this.txtquantity.Text); book.Discount=float.Parse(this.txtdiscount.Text); Category category = new Category(); category.CategoryID = int.Parse(this.DropDownList1.SelectedValue.ToString()); book.Category = category; book.Remark=this.txtremark.Text; book.Sell=this.txtSell.Text; if (BookBLL.BookManager.AddBook(book)!= null) { Response.Write(\"\"); } else { Response.Write(\"\"); } } 20 Web数据库程序设计课程设计 6.6.3查看图书详细信息及更新 页面显示相应选择图书的详细信息,包括图书基本内容、留言等,并进行修改。 图6.6.3查看图书信息界面 代码如下: //用户类别第一时间显示 this.DropDownList1.SelectedItem.Text = book.Category.CategoryName; //获取用户修改后的类别 Category categoty=new Category (); categoty.CategoryName = this.DropDownList1.SelectedItem.Text; categoty.CategoryID = int.Parse(this.DropDownList1.SelectedValue.ToString()); book.Category = categoty; 6.6.4查看图书销售情况 管理员可以通过类别选择查看的图书,并将其销售结果已表格形式显示在下方。 21 网上书店信息管理系统 图6.6.4查看图书销售界面 代码如下: protected void btnSearch_Click(object sender, EventArgs e) { string bookName = this.txtBookname.Text; IList BookModels.Book book = (BookModels.Book)books[0]; IList BookBLL.OrderItemManager.GetOrderItemByBookId(book.BookID); this.GridView1.DataSource = ots; this.GridView1.DataBind(); } } 6.7 订单管理 6.7.1查看订单信息 为管理员提供查看订单信息的功能,页面中分“已结订单”和“未结订单”显示,可以根据需要删除无效的订单,并提供查看详细信息的链接。 22 Web数据库程序设计课程设计 图6.7.1查看订单界面 代码如下: //根据状态查询订单方法 public static IList string sql = \"select * from OrderForm where state = '\" + state+\"'\"; IList OrderForm order = new OrderForm(); order.OrderFormID = (int)row[\"OrderFormID\"]; order.OrderDate = row[\"OrderDate\"].ToString(); order.TotalNum = (int)row[\"TotalNum\"]; order.TotoalMoney = decimal.Parse(row[\"TotoalMoney\"].ToString()); order.State = (string)row[\"State\"]; order.User = UsersService.GetUserById((int)row[\"userID\"]); list.Add(order); } return list; } 6.7.2查看订单子项信息 管理员在订单管理页面选择某条订单信息进行查看,跳转到订单子项页面,方便管理员查看订单的详细信息。 23 网上书店信息管理系统 图6.7.2查看订单子项界面 6.8类别管理 6.8.1主界面 以表格形式显示当前系统所有的图书种类,点击“编辑”,可以类别名称、备注进行更新修改操作,同时提供删除功能的链接。 图6.8.1类别管理主界面 24 Web数据库程序设计课程设计 6.8.2添加图书类别 填写表单信息,包括类别名称、备注等,选择“添加”,将当前信息存入数据库。 图6.8.2添加图书类别界面 6.9普通用户模块 6.9.1用户信息中心查看(我的个人信息及更新) 显示执行当前操作的普通用户的个人信息,并可以根据需要执行更新操作。 图6.9.1用户信息查看界面 25 网上书店信息管理系统 6.9.2购买图书(我的购物车) 普通用户将图书浏览页面进行查看后点击购物操作后,自动存入购物车中,在购物车中用户可以修改所要购买图书的数量,并提供“去结算中心”的链接。 图6.9.2购物车界面1 图6.9.2购物车界面2 { if (!IsPostBack) { if (Session[\"Cart\"] != null) { Bind(); 26 Web数据库程序设计课程设计 } }} public void Bind() { int orderFormId = int.Parse(Request.QueryString[\"orderFormId\"].ToString()); this.GridView1.DataSource = BookBLL.OrderItemManager.GetOrderItemByorderformid(orderFormId); this.GridView1.DataKeyNames = new string[] {\"orderItemId\" }; this.GridView1.DataBind(); } protected void btnJiesusnCenter_Click(object sender, EventArgs e) { OrderForm form = new OrderForm(); form.OrderFormID= int.Parse(Request.QueryString[\"orderFormId\"].ToString()); int totalNum=0; decimal totalPrice = 0; for (int i = 0; i < this.GridView1.Rows.Count; i++)//使用循环,获取总数量总价格 { Label lblPrice=this.GridView1.Rows[i].FindControl(\"lblPrice\") as Label; Label lblNum = this.GridView1.Rows[i].FindControl(\"lblNum\") as Label; totalPrice = totalPrice + (decimal.Parse(lblPrice.Text) * int.Parse(lblNum.Text)); totalNum = totalNum + (int.Parse(lblNum.Text)); } form.TotalNum = totalNum; form.TotoalMoney = totalPrice; Session[\"orderForm\"] = form; Response.Redirect(\"~/Cart/Check.aspx\"); } protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { this.GridView1.EditIndex = -1; Bind(); } protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { int num = int.Parse(((TextBox)(this.GridView1.Rows[e.RowIndex].FindControl(\"TextBox1\"))).Text.ToString()); BookModels.OrderItem ot = new BookModels.OrderItem(); int orderItemId =(int) GridView1.DataKeys[e.RowIndex].Value; ot.Num = num; ot.OrderItemID = orderItemId; BookBLL.OrderItemManager.ModifyNum(ot); Response.Write(\"\"); 27 网上书店信息管理系统 this.GridView1.EditIndex = -1; Bind(); } protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { this.GridView1.EditIndex = e.NewEditIndex; Bind(); } 6.9.3结算中心 显示在购物车中已确认的图书信息,以及当前购买的图书总量、总价钱。用户可以选择“结账”操作,否则订单默认为“未结”状态。 图6.9.3结算界面 代码如下: protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (Session[\"user\"] == null) { } else { if (Session[\"orderForm\"] != null) { 28 Web数据库程序设计课程设计 Bind(); } } } } private void Bind() { BookModels.OrderForm form = (BookModels.OrderForm)Session[\"orderForm\"]; this.GridView1.DataSource = BookBLL.OrderItemManager.GetOrderItemByorderformid(form.OrderFormID); this.GridView1.DataKeyNames = new string[] { \"orderItemId\" }; this.GridView1.DataBind(); lblBookQuantity.Text = form.TotalNum.ToString(); lblTotalprice.Text = form.TotoalMoney.ToString(); } protected void btnJiesuan_Click(object sender, EventArgs e) { BookModels.OrderForm order = new BookModels.OrderForm(); BookModels.OrderForm form = (BookModels.OrderForm)Session[\"orderForm\"]; order.OrderFormID = form.OrderFormID; order.State = \"结算\"; BookBLL.OrderFormManager.ModifyOrderForm(order); Response.Write(\"\"); } 6.9.4 订单管理(查看订单信息) 显示当前普通用户的所有订单信息,用户可以选择查看未结订单,执行删除、支付操作,并提供“详细”链接。当用户执行支付操作时,若订单当前状态为“已结”,提示用户。 图6.9.4查看订单界面 29 网上书店信息管理系统 代码如下: //实现支付 protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) { int orderFormId = int.Parse(e.CommandArgument.ToString()); if (e.CommandName == \"check\") { BookModels.OrderForm order = new BookModels.OrderForm(); order.OrderFormID = orderFormId; order.State = \"结算\"; BookBLL.OrderFormManager.ModifyOrderForm(order); Response.Write(\"\"); } } 6.9.5查看订单详细信息 普通用户在订单管理页面选择“详细”后,跳转到订单子项页面,显示所选订单中的详细购书信息。 图6.9.5查看订单详细信息界面 6.9.6查看图书详细信息及留言 为普通用户显示所选图书的详细信息,包括基本信息、留言列表等,并提供留言功能。 30 Web数据库程序设计课程设计 图6.9.6查看图书信息界面 图6.9.6留言界面 代码如下: //实现购买 protected void imgbtn_Buy_Click(object sender, ImageClickEventArgs e) { Users user = (Users)Session[\"user\"]; if (user != null) { OrderForm order = null; if (Session[\"Cart\"] == null) { 31 网上书店信息管理系统 OrderForm of = new OrderForm(); of.User = user; of.TotalNum = 1; of.TotoalMoney = decimal.Parse(lblPrice.Text.ToString()); of.OrderDate = System.DateTime.Now.ToString(); of.State = \"未结算\"; order = BookBLL.OrderFormManager.AddOrderform(of); OrderItem ot = new OrderItem(); ot.OrderForm = order; int bookid = int.Parse(Request.QueryString[\"bookID\"].ToString()); Book book = BookBLL.BookManager.GetBookById(bookid); ot.Book = book; ot.Num = 1; ot.Price = decimal.Parse(this.lblPrice.Text); OrderItem item = BookBLL.OrderItemManager.AddOrderItem(ot); this.BuildCart(); } else { order=BookBLL.OrderFormManager.GetOrderFormByidAndState(user.UserID, \"未结算\"); OrderItem ot = new OrderItem(); ot.OrderForm = order; int bookid = int.Parse(Request.QueryString[\"bookID\"].ToString()); Book book = BookBLL.BookManager.GetBookById(bookid); ot.Book = book; ot.Num = 1; ot.Price = book.InPrice; OrderItem item = BookBLL.OrderItemManager.AddOrderItem(ot); int id = ot.OrderForm.OrderFormID; } Response.Redirect(\"~/Cart/MyCart.aspx?orderFormId=\" + order.OrderFormID); } } /// 新建购物车表 public void BuildCart() { DataTable cart = new DataTable(); cart.Columns.Add(\"BookId\"); cart.Columns.Add(\"orderFormId\"); cart.Columns.Add(\"num\"); cart.Columns.Add(\"price\"); this.BuildSession(cart); } /// 添加新书 32 Web数据库程序设计课程设计 public void BuildSession(DataTable cart) { DataRow dr = cart.NewRow(); dr[\"BookId\"] = Request.QueryString[\"bookID\"].ToString(); dr[\"orderFormId\"] = this.lblBookName.Text.Trim(); dr[\"num\"] = \"1\"; dr[\"price\"] = this.lblPrice.Text.ToString(); cart.Rows.Add(dr); Session[\"Cart\"] = cart; } 33 网上书店信息管理系统 第7章 设计体会及今后的改进意见 短短半个多月的课程实际,每天忙忙碌碌,一步一步走来,今天终于迎来了自己的成果。在这期间,经常遇到各种各样的问题,时常为不能解决的问题而一筹莫展,但这并未因此打消我的信心,而是使我更加专著的去解决问题。 通过本系统的开发使我所学的专业知识得到了综合的运用,对以前很多抽象、枯燥的理论知识加深了理解,同时也使我学会了利用结构化程序设计思想开发管理信息系统,并用模块化方法加以实现。 通过本次的系统开发,我深刻地认识到信息系统开发的每一步都是以上一步为基础的。因此每一步文档的编写都必须正确、完整,否则就会给下一步的工作带来不必要的麻烦,加大工作量。因为系统是为用户服务的,所以要充分了解用户的需求,考虑用户的特点和使用方面的习惯,以协调人机关系。在系统实施中应结合各方面的要求,尽可能选择自己熟悉的程序设计语言。系统测试中要根据实际情况设计有效的测试方法。 在系统设计过程中,从用户的角度出发,在系统的可用性和易用性上做了很多功夫,力求能达到最好的效果。但由于我的编程实现能力和毕业设计的时间都有限,我对学生档案管理这一系列工作的具体内容也不是特别地了解,所以目前我还不能把网上书店这个系统较为完善地实现出来,希望以后有机会能够弥补这个遗憾。 短短的半个多月,终于按照设计说明书的要求完成了自己的课程设计,由于时间有限、自身知识水平不足,我的设计还难免存在着很多不足的地方,请各位老师给予指正和提出宝贵的建议,我坚信在今后的工作中我会做得更好。 34 Web数据库程序设计课程设计 第八章 参考文献 [1]马瑞新编著 《.NET 2.0实训教程》大连理工大学出版社 2006年12月第一版 [2]吴晨、王春霞编著 《ASP.NET 2.0数据库项目案例导航》清华大学出版社 2007年10月第一版 [3]李玉林、王岩编著 《ASP.NET 2.0 网络编程从入门到精通》清华大学出版社 2006年9月第一版 [4]李严,于亚芳,王国辉等.ASP数据库开发实例解析.北京:机械工业出版社,2004 [5]李俊民,高春燕等.Access数据库开发实例解析.北京:机械工业出版社,2006 [6]陈冠军.精通ASP.NET 2.0典型模块设计与实现.北京:人民邮电出版社,2006 [7]顼宇峰,马军.ASP网络编程从入门到精通.北京:清华大学出版社,2006 [8]孟宪会,张慧妍.ASP.NET2.0应用开发技术.北京:人民邮电出版社,2006 [9]梁建全,宋修舵,孙强 等.专家门诊—ASP.NET开发答疑200问.北京:人民邮电出版社,2004 [10]王国辉,牛强,李南南等.ASP工程应用与项目实践.北京:机械工业出版社,2005 [11]郝刚主编,袁永刚,严治国等编著.ASP.NET 2.0开发指南.北京:人民邮电出版社,2006 [12]王国辉,牛强,李南南等.ASP信息系统开发实例精选.北京:机械工业出版社,2005 [13]盖天宇,孙明丽,邹天思.ASP数据库系统开发案例精选.北京:人民邮电出版社,2006 [14]周兴华,王敬栋.ASP + Access数据库开发与实例.北京:清华大学出版社,2006 [15]马军.精通ASP.NET2.0网络应用系统开发.北京:人民邮电出版社,2006 [16]张杰,任伟,吴林华编著.新一代ASP典型模块设计.北京:清华大学出版社,2006 35
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo6.cn 版权所有 赣ICP备2024042791号-9
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务