1 / 126

数据库原理及应用

数据库原理及应用. 第 11 章 基于ASP.NET的图书管理系统 仲恺农业工程学院 计算机科学与工程学院. Principles and Applications of the Database. 第 11 章 基于 ASP.NET 的图书管理系统. 本章导读 了解: SQL Server 2005 网页布局创建 理解: ASP.NET 网站的创建过程 掌握: ASP.NET 网站的构架、各个部分的组成、 C# 访问数据库技术、 C# 内部数据处理及显示. 第 11 章 基于 ASP.NET 的图书管理系统. 重点:

vera-turner
Download Presentation

数据库原理及应用

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 数据库原理及应用 第11章基于ASP.NET的图书管理系统 仲恺农业工程学院 计算机科学与工程学院 Principles and Applications of the Database An Introduction to Database System

  2. 第11章 基于ASP.NET的图书管理系统 • 本章导读 • 了解:SQL Server 2005网页布局创建 • 理解:ASP.NET网站的创建过程 • 掌握:ASP.NET网站的构架、各个部分的组成、C#访问数据库技术、C#内部数据处理及显示 计算机科学与工程学院

  3. 第11章 基于ASP.NET的图书管理系统 • 重点: • 1. ASP.NET网站的编程 • 2. ASP.NET网站的访问数据库技术 • 难点: • 1.SQL Server 2005存储过程的参数传递 • 2.SQL Server 2005聚集计算 计算机科学与工程学院

  4. 第11章 基于ASP.NET的图书管理系统 • 本章要点 • SQL Server 2005数据库、表、存储过程的创建 • ASP.Net网站的创建 • 页面框架设计 • 图书管理系统的登录管理 • 图书管理系统的系统管理员管理 • 图书管理系统的图书管理员管理 • 图书管理系统的读者模块管理 计算机科学与工程学院

  5. 第11章 基于ASP.NET的图书管理系统 11.1 创建SQL Server 2005数据库 11.2 创建图书管理系统网站 11.3公用模块编写 11.4 登录模块 11.5 系统管理员管理 11.6 图书管理员管理 11.7 读者管理 本章小结 计算机科学与工程学院

  6. 11.1 创建SQL Server 2005数据库 11.1.1 创建数据库 11.1.2 创建数据表 11.1.3 创建存储过程 计算机科学与工程学院

  7. 11.1.1 创建数据库 • 在SQL Server Management Studio中创建数据库 • 利用T-SQL语句创建数据库 计算机科学与工程学院

  8. 1.在SQL Server Management Studio中创建数据库 • “常规”选择页 • “选项”选择页 • “文件组”选择页 计算机科学与工程学院

  9. 2.利用T-SQL语句创建数据库 • CREATE DATABASE LibraryLib • ON ( • NAME=LibraryLib_data, /*指定文件的逻辑名称*/ • FILENAME='C:\LibraryLib\LibraryLib_data.mdf', • SIZE=4, • MAXSIZE=10, /*指定最大的文件大小*/ • FILEGROWTH=10%) /*指定文件增长的百分比*/ • LOG ON ( • NAME=LibraryLib_log, /*指定文件的逻辑名称*/ • FILENAME='C:\ LibraryLib\LibraryLib_log.mdf', • SIZE=1, /*指定文件大小*/ • MAXSIZE=6, /*指定最大的文件大小*/ • FILEGROWTH=1) /*指定文件增长的增量*/ • GO 计算机科学与工程学院

  10. 11.1 创建SQL Server 2005数据库 11.1.1 创建数据库 11.1.2 创建数据表 11.1.3 创建存储过程 计算机科学与工程学院

  11. 11.1.2 创建数据表 • 图书管理系统数据库8个表 • 增加了一个系统用户权限表主要是为了对用户分类:系统管理员、图书管理员、读者 • 有些字段与设计时稍微有些区别,主要是为了编程的方便、更加符合实际需要改动的 计算机科学与工程学院

  12. 11.1.2 创建数据表 1.SQLServer Management Studio图形模式创建表 2.T-SQL语句模式创建表 计算机科学与工程学院

  13. 1.SQLServer Management Studio图形模式创建表 计算机科学与工程学院

  14. 1.SQLServer Management Studio图形模式创建表 计算机科学与工程学院

  15. 1.SQLServer Management Studio图形模式创建表 计算机科学与工程学院

  16. 2.T-SQL语句模式创建表 • SET ANSI_NULLS ON • GO • SET QUOTED_IDENTIFIER ON • GO • IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Users]') AND type in (N'U')) • BEGIN • CREATE TABLE [dbo].[Users]( • [UserID] [varchar](20) NOT NULL, • [UserPassword] [varchar](20) NOT NULL, • [UserPower] [int] NOT NULL, • [UserName] [varchar](20) NOT NULL, • [UserSex] [bit] NOT NULL, • [UserDepart] [varchar](40) NOT NULL, • [UserTelephone] [varchar](14) NULL, • [UserEMail] [varchar](30) NULL, • [UserInSystemDate] [datetime] NULL, • [UserBorrowedBooks] [int] NOT NULL CONSTRAINT [DF_Users_UserBorrowedBooks] DEFAULT ((0)), • CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED • ( • [UserID] ASC • )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] • ) ON [PRIMARY] • END • GO 计算机科学与工程学院

  17. 11.1 创建SQL Server 2005数据库 11.1.1 创建数据库 11.1.2 创建数据表 11.1.3 创建存储过程 计算机科学与工程学院

  18. 11.1.3 创建存储过程 • 用户的添加存储过程Proc_UsersAdd • CREATE PROCEDURE [dbo].[Proc_UsersAdd] • (@UserID [varchar](50), @UserPassword [varchar](50), • @UserPower [int], @UserName [varchar](50), • @UserSex [bit], @UserDepart [varchar](50), • @UserTelephone [varchar](50), @UserEMail [varchar](50)) • AS INSERT INTO [dbo].[Users] • ([UserID], [UserPassword], UserPower], UserName], [UserSex], [UserDepart], [UserTelephone], [UserEMail]) • VALUES • ( @UserID, @UserPassword, @UserPower, @UserName, • @UserSex, @UserDepart, @UserTelephone, @UserEMail) 计算机科学与工程学院

  19. 第11章 基于ASP.NET的图书管理系统 11.1 创建SQL Server 2005数据库 11.2 创建图书管理系统网站 11.3公用模块编写 11.4 登录模块 11.5 系统管理员管理 11.6 图书管理员管理 11.7 读者管理 本章小结 计算机科学与工程学院

  20. 11.2 创建图书管理系统网站 11.2.1 IIS服务器创建网站 11.2.2 用Visual Studio 2005来创建一个网站 计算机科学与工程学院

  21. 第11章 基于ASP.NET的图书管理系统 11.1 创建SQL Server 2005数据库 11.2 创建图书管理系统网站 11.3公用模块编写 11.4 登录模块 11.5 系统管理员管理 11.6 图书管理员管理 11.7 读者管理 本章小结 计算机科学与工程学院

  22. 11.3 公用模块编写 11.3.1 数据库连接编写 11.3.2 数据库操作DataBase类 11.3.3 图书信息Book类 11.3.3 借还Borrow类 11.3.3 用户信息Users类 计算机科学与工程学院

  23. 11.3.1 数据库连接编写 • <connectionStrings> • <add name="ConnectionString" connectionString="Data Source=CS.5FDFF23D37B0\CSMIDCOM; Initial Catalog=LibraryLib;User ID=sa" providerName="System.Data.SqlClient" /> • </connectionStrings> 计算机科学与工程学院

  24. 11.3 公用模块编写 11.3.1 数据库连接编写 11.3.2 数据库操作DataBase类 11.3.3 图书信息Book类 11.3.3 借还Borrow类 11.3.3 用户信息Users类 计算机科学与工程学院

  25. 11.3.2 数据库操作DataBase类 • public class DataBase { • protected SqlConnection Connection; //SQL连接对象,每个用户只保存一个 • protected string ConnectionString; //系统获取 • public DataBase(); //获取Web.Config数据库访问串保存私有字符串变量 • private void Open(); //打开数据库连接,连接保存自傲私有变量中。 • public void Close(); //关闭数据库连接 • ~DataBase(); //析构函数,释放非托管资源 • public void Dispose(); //释放资源 • public bool GetRecord(string XSqlString);// Sql语句返回是否查到记录 • public int GetRecordCount(string XSqlString);//返回Sql语句获得的数据值 • //根据XWhere更新数据表XTableName中的某些纪录,XTableName--表名 • public DataSet AdvancedSearch(string XTableName, Hashtable XHT); • //用于查询指定的读者有没有超期罚款没有缴纳,获取超期图书的列表信息 • public DataSet AdvancedSearchFee(string strUserID); 计算机科学与工程学院

  26. 11.3.2 数据库操作DataBase类 • //用于查询指定的读者超期图书罚款的总额 • public double GetUserTotalFee(string strUserID); • public int TurnInUserFee(string strUserID); //指定的用户交齐了罚款 • private SqlCommand CreateCommand(string ProcName, SqlParameter[] Prams); • public SqlParameter MakeParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value) ; //实例化一个用于调用存储过程的参数 • public SqlParameter MakeInParam(string ParamName, SqlDbType DbType, int Size, object Value) ; //实例化一个用于调用存储过程的输入参数 • public int RunProc(string ProcName) ; //调用存储过程(不带参数) • public int RunProc(string ProcName, SqlParameter[] Params); //存储过程(带参数) • public SqlDataReader RunProcGetReader(string ProcName); • public SqlDataReader RunProcGetReader(string ProcName, SqlParameter[] Params); • public int RunProcGetCount(string ProcName, SqlParameter[] Params); • public DataSet GetDataSet(string ProcName); //调用存储过程(不带参数) • public DataSet GetDataSet(string ProcName, SqlParameter[] Params); 计算机科学与工程学院

  27. 11.3 公用模块编写 11.3.1 数据库连接编写 11.3.2 数据库操作DataBase类 11.3.3 图书信息Book类 11.3.3 借还Borrow类 11.3.3 用户信息Users类 计算机科学与工程学院

  28. 11.3.3 图书信息Book类 • public class Book • { //Book类的私有数据成员 • private int _bookID; //书顺序号 • private string _bookName; //书名 • private string _bookISBN; //ISBN • private string _bookAuthor; //作者 • private int _bookPublishID; //出版社的顺序号 • private DateTime _bookPublishDate; //出版时间 • private int _bookClassID; //图书类别 • private string _bookSubject; //主题 • private double _bookPrice; //价格 • private int _bookPageNum; //页数 • private string _bookSeries; //图书系列 • private string _bookDescription; //描述 • private int _bookNum; //本书的总数 • private int _bookCurNum; //本书的当前库存 • private string _bookPublishName; //图书出版社的名称 • private string _bookClassName; //图书的类别名称 • private int _bookBorrowDays; //图书可以借出的天数 • private double _bookFee; //超期罚款的金额 计算机科学与工程学院

  29. 11.3.3 图书信息Book类 • //Book类的属性实现 • public int BookID { • set { • this._bookID = value; • } • get { • return this._bookID; • } • } • public string BookName { • set { • this._bookName = value; • } • get { • return this._bookName; • } • } • //其他属性类似定义实现…… 计算机科学与工程学院

  30. 11.3.3 图书信息Book类 • //Book类的方法 • public bool LoadData(int XBookID);//根据书顺序号 BookID 初始化 • public bool CheckBook(string XBookID);//根据BookID判断该图书是否存在 • public bool InsertByProc();//向Books表中添加书籍信息(采用存储过程) • public bool UpdateByProc(int XBookID); //更新书籍的信息 • //以删除指定的图书信息为例,使用SqlParameter、DataBase类调用 • public bool DeleteByProc(int XBookID) • { • SqlParameter[] Params = new SqlParameter[1]; • DataBase DB = new DataBase(); • Params[0] = DB.MakeInParam("@BookID", SqlDbType.Int, 4, XBookID); • int Count = -1; • Count = DB.RunProc("Proc_BookDelete", Params); • if (Count > 0) return true; • else return false; • } • public DataSet QueryBooks();//查询所有书籍 • } 计算机科学与工程学院

  31. 11.3 公用模块编写 11.3.1 数据库连接编写 11.3.2 数据库操作DataBase类 11.3.3 图书信息Book类 11.3.3 借还Borrow类 11.3.3 用户信息Users类 计算机科学与工程学院

  32. 11.3.3 借还Borrow类 • public class Borrow • { • private int _borrowID; //借书号,是系统在借书成功时自动生成的 • private string _userID; //用户编号,借书证序号 • private int _bookID; //书号,图书的顺序号 • private DateTime _borrowBeginDate; //借书时间 • //还书时间,根据书的类别设定的 • private DateTime _borrowEndDate; • private string _managerID; //借出书的图书管理员 • private string _managerReturnID; //还书的图书管理员 • private int _bookCurNum; //指定bookID的库存数 • //指定userID的已借图书册数 • private int _userBorrowedBooks; • private double _bookFee; //该图书超期,则每天罚款金额 • //Borrow类的属性实现…… 计算机科学与工程学院

  33. 11.3.3 借还Borrow类 • //Borrow类的方法 • public bool BorrowBookByProc();//向Borrow表中添加借阅信息(借书) • //向Book表中更新借还书时,图书表中该图书的库存数量 • public bool UpdateBookCurNumByProc(); • //向User表中更新借还书时,用户已借图书数量的值 • public bool UpdateUserBorrowedBooksByProc(); • //要归还书,首先要查询借出数据库中是否存在该书,如果存在, • //---返回该书信息到本对象中,用于向历史数据库中保存信息 • public bool LoadBorrowData(string XUserID,int XBookID); • //同一个读者,不能借同一个bookid两本图书,本函数就是一个判断 • public bool SearchUserBorrowData(string XUserID, int XBookID) ; • public bool AddBorrowRecToHistoryByProc(); • //还书,超期则添加到罚款表 • public bool AddExtraDateFeeByProc(DateTime dtCurrentDateTime) ; • private double GetBookFee(int ixBookID); • public DataSet QueryBorrowHistory(string XUserID); • public DataSet QueryCurrentBorrow(string XUserID); • public DataSet QueryExpireBorrow(string XUserID); } 计算机科学与工程学院

  34. 11.3 公用模块编写 11.3.1 数据库连接编写 11.3.2 数据库操作DataBase类 11.3.3 图书信息Book类 11.3.3 借还Borrow类 11.3.3 用户信息Users类 计算机科学与工程学院

  35. 11.3.3 用户信息Users类 public class Users { private string _userID; //用户编号 private string _userPassword; //用户密码 private int _userPower; //用户权限 private string _userName; //用户姓名 private bool _userSex; //用户性别 private string _userDepart; //用户系院 private string _userTelephone; //用户电话 private string _userEMail; //用户E_Mail private int _userBorrowedBooks; //用户当前借的图书册数 //Users类的属性实现…… 计算机科学与工程学院

  36. 11.3.3 用户信息Users类 //Users类的方法 public bool LoadData(string XUserID);//根据用户 UserID 初始化该用户 public bool CheckUser(string XUserID);//根据UserID判断该用户是否存在 //根据UserID和UserPassword判断密码是否正确,取出用户密码和权限 public bool CheckPassword(string XUserID); public bool InsertByProc(); //向Users表中添加用户信息 public bool UpdateByProc(string XUserID); //更新用户的信息 public bool UpdateMessage(string XUserID); //更新读者联系方式 public bool DeleteByProc(string XUserID) ; //删除用户 public DataSet QueryUsers(); //查询所用用户 public bool ModifyPassword(string XUserID); //修改用户的密码 } 计算机科学与工程学院

  37. 第11章 基于ASP.NET的图书管理系统 11.1 创建SQL Server 2005数据库 11.2 创建图书管理系统网站 11.3公用模块编写 11.4 登录模块 11.5 系统管理员管理 11.6 图书管理员管理 11.7 读者管理 本章小结 计算机科学与工程学院

  38. 11.4 登录模块 11.4.1 登录模块界面 11.4.2 登录模块设计 11.4.3 页面框架设计 计算机科学与工程学院

  39. 11.4.1 登录模块界面 计算机科学与工程学院

  40. 11.4 登录模块 11.4.1 登录模块界面 11.4.2 登录模块设计 11.4.3 页面框架设计 计算机科学与工程学院

  41. 11.4.2 登录模块设计 计算机科学与工程学院

  42. 11.4.2 登录模块设计 • protected void imgBtnLogin_Click(object sender, ImageClickEventArgs e) • { • Users user = new Users(); //创建Users对象user • //根据用户编号查询用户密码 • if (user.CheckPassword(txtUserID.Text.Trim())){ • //输入密码与用户密码相同 • if (user.UserPassword == txtPwd.Text.Trim()){ • if (user.UserPower == 1) { //如果该用户是系统管理员 • Session["userID"] = txtUserID.Text.Trim(); //存储用户名 • Session["userName"] = user.UserName; //存储用户名称 • Session["userPower"] = user.UserPower; //存储用户类型 • Response.Redirect("adminMain.aspx"); //转向总管理员操作界面 • } • else if (user.UserPower == 2) { //用户是借还书管理员 • Session["userID"] = txtUserID.Text.Trim(); //存储用户名 • Session["userName"] = user.UserName; //存储用户名称 • Session["userPower"] = user.UserPower; //存储用户类型 • Response.Redirect("managerMain.aspx");//转向借书还书界面 • } 计算机科学与工程学院

  43. 11.4.2 登录模块设计 • else if ((user.UserPower == 3) | (user.UserPower == 4)) { //用户是读者 • Session["userID"] = txtUserID.Text.Trim(); //存储用户名 • Session["userName"] = user.UserName; //存储用户名称 • Session["userPower"] = user.UserPower; //存储用户类型 • Response.Redirect("readerMain.aspx");//读者信息操作界面 • } • else { • lbl_message.Text = "数据库出错,请系统管理员排除故障"; • } • } • else { • lbl_message.Text = "您输入的密码错误!"; • } • } • else { • lbl_message.Text = "该用户不存在!"; • } 计算机科学与工程学院

  44. 11.4 登录模块 11.4.1 登录模块界面 11.4.2 登录模块设计 11.4.3 页面框架设计 计算机科学与工程学院

  45. 11.4.3 页面框架设计 • 上左右结构设计的页面框架 • 上部分是平台类别和操作人员姓名 • 右部分是各种功能的操作空间,是一个<iframe id="Main" name="frameMain" src=" 功能菜单对应的页面.aspx" > • 左部分是一个ASP.NET组件构成的操作菜单, TreeView控件中每个树节点的Target目标是frameMain 计算机科学与工程学院

  46. 11.4.3 页面框架设计 计算机科学与工程学院

  47. 第11章 基于ASP.NET的图书管理系统 11.1 创建SQL Server 2005数据库 11.2 创建图书管理系统网站 11.3公用模块编写 11.4 登录模块 11.5 系统管理员管理 11.6 图书管理员管理 11.7 读者管理 本章小结 计算机科学与工程学院

  48. 11.5 系统管理员管理 11.5.1系统管理员管理平台界面 11.5.2用户管理 11.5.3图书管理 11.5.4图书类别管理 11.5.5出版社管理 计算机科学与工程学院

  49. 11.5.1系统管理员管理平台界面 计算机科学与工程学院

  50. 11.5.1系统管理员管理平台界面 • protected void imgBtnModifyPwd_Click(object sender, ImageClickEventArgs e) { • Users user = new Users();//创建Users对象user • if (user.CheckPassword(this.Session["userID"].ToString())) { //验证用户输入原密码 • user.UserPassword = txtNewPwd.Text.Trim(); • //更改用户密码 • if user.ModifyPassword(this.Session["userID"].ToString())) • { • lblMessage.Text = "成功修改密码!"; • } • else { • lblMessage.Text = "修改密码失败!"; • } • } • else { • lblMessage.Text = "输入原密码错误,请重新输入!"; • } • } 计算机科学与工程学院

More Related