华北电力大学科技学院实验报告||实验名称图书管理数据库系统的设计与实现课程名称数据库原理及应用||专业班级:电气15K9学生姓名:寿泽锋学号:151905020119成绩:指导教师:廖尔崇实验日期:2017年5月4日(实验报告如打印,纸张用A4,左装订;页边距:上下2.5cm,左2.9cm,右2.1cm;字体:宋体小四号,1.25倍行距。)验证性、综合性实验报告应含的主要内容:一、实验目的及要求二、所用仪器、设备三、实验原理四、实验方法与步骤五、实验结果与数据处理六、讨论与结论(对实验现象、实验故障及处理方法、实验中存在的问题等进行分析和讨论,对实验的进一步想法或改进意见)七、所附实验输出的结果或数据设计性实验报告应含的主要内容:一、设计要求二、选择的方案三、所用仪器、设备四、实验方法与步骤五、实验结果与数据处理六、结论(依据“设计要求”)七、所附实验输出的结果或数据*封面左侧印痕处装订华北电力大学科技学院实验报告第页共页一、系统功能设计本系统利用VisualStudio2010处理数据库的功能,实现对图书馆信息的管理。主要功能为管理有关用户、管理员、书籍和借阅的信息等。本系统的结构分为书籍信息管理模块、借阅信息管理模块、查询处理模块。图书馆管理系统框图如图1.1所示:图1.1图书馆管理系统框图二、数据库概念设计2.1实体列表实体属性管理员系统管理员名,管理员ID标识,账户密码,管理记录用户用户ID、用户名、借阅记录图书图书ID、书名、作者、出版社、借阅与否、所在书架位置、图书介绍、封面图书管理藏书量、新增书ID、新增书时间、卖出或销毁书ID、卖出或销毁书时间借阅管理借阅ID、借书日期、借阅人ID、归还日期、所借书ID查询图书查询图书查询图书查询图书增加图书修改图书删除图书成功图书管理登录失败登录处理用户密码修改管理员用户系统设置图书馆管理系统书籍信息华北电力大学科技学院实验报告第页共页2.2系统的E-R模型该图书管理系统的E-R模型,如图2.1所示图2.1系统的E-R模型三、数据库逻辑设计3.1创建数据库(1)在服务器资源管理器中的任一节点右击。(2)执行快捷菜单中的“新建数据库”命令,并在打开的“创建数据库”对话框中输入数据库名library,其他可采用默认值。(3)单击“确定”按钮,则新建的数据库就会出现在服务器上。3.2创建数据表创建数据库后,为library数据库添加数据表,步骤如下。(1)在服务器资源管理器中右击数据库library下的“表”文件夹在弹出的快捷菜单中执行“新建表”命令。(2)添加表的字段和其他详细资料。各表数据结构如下图所示。用户图书借阅图书管理管理员管理员名管理员ID标识用户ID借阅记录用户名图书ID书名作者出版社借阅与否BookName所在书架位置图书介绍借阅ID借书日期借阅人ID归还日期mN1m账户密码管理记录封面所借书ID华北电力大学科技学院实验报告第页共页图3-1用户信息(reader)表3-1图书信息(bookinfo)列名含义数据类型主键BookID图书IDbigint自动,主键BookName书名Varchar(50)不为空BookType出版社Varchar(100)不为空BookAuthor作者Varchar(100)不为空BookPrice借阅与否Varchar(20)不为空BookPic封面Varchar(200)允许为空BookContent图书介绍text不为空BookAddres所在书架位置text不为空表3-2借阅信息(issueinfo)列名含义数据类型说明IssID借阅IDbigint自动,主键BookID图书IDbigint外键IssBookID借阅人IDbigint不为空IssDateTime借书日期datetime不为空IssReturnTime归还日期datetime允许为空四、系统编码与实现数据库设计:设计数据表,选定reder表,其他自由设计createtablereader(rnochar(12)primarykey,rnamevarchar(20)notnull,rsexchar(2)check(rsexin('男','女'))default'男',rbirthdaydatetime,rdeptvarchar(20),华北电力大学科技学院实验报告第页共页rclassvarchar(20),rtypechar(6)check(rtypein('教师','研究生','本科生')),rvalidchar(1)default'Y',rpasswordvarchar(10),rnotevarchar(100));insertintoreader(rno,rname,rdept,rtype)values('201109010101','张三','电力系','教师');insertintoreader(rno,rname,rdept,rtype)values('201109010102','李四','电力系','研究生');insertintoreader(rno,rname,rdept,rtype)values('201109010103','王五','电力系','本科生');insertintoreader(rno,rname,rdept,rtype)values('201109010104','赵六','计算机系','本科生');华北电力大学科技学院实验报告第页共页2、在click事件添加代码//数据库名为librarySqlConnectionconn=newSqlConnection();StringstrCon=DataSource=STU-N07;InitialCatalog=library;IntegratedSecurity=SSPI;;conn.ConnectionString=strCon;conn.Open();//打开数据库连接SqlCommandcmd=newSqlCommand(select*fromreader,conn);//查询读者信息表SqlDataReaderdr_reader=cmd.ExecuteReader();BindingSourceBs=newBindingSource();Bs.DataSource=dr_reader;dataGridView_Reader.DataSource=Bs;//偶数行显示为粉色底if(this.dataGridView_Reader.Rows.Count!=0){for(inti=0;ithis.dataGridView_Reader.Rows.Count;){this.dataGridView_Reader.Rows[i].DefaultCellStyle.BackColor=System.Drawing.Color.Pink;i+=2;}}conn.Close();//关闭数据库连接华北电力大学科技学院实验报告第页共页三、返回第一行第一列数据1、添加控件添加按钮Button,设置其Text属性为:读者总数;设置name属性为:btnCount添加文本框TextBox,设置其name属性为:txtCount2、双击按钮,添加代码:SqlConnectionconn=newSqlConnection();StringstrCon=DataSource=STU-N07;InitialCatalog=library;IntegratedSecurity=SSPI;;conn.ConnectionString=strCon;conn.Open();//打开数据库连接SqlCommandcmd=newSqlCommand(selectcount(*)fromreader,conn);//查询读者信息表txtCount.Text=cmd.ExecuteScalar().ToString();conn.Close();华北电力大学科技学院实验报告第页共页四、DataReader读取数据,如读者姓名1、添加控件添加按钮Button,设置其Text属性为:读者姓名集;设置name属性为:btn_ReaderName添加列表框ListBox,设置其name属性为:listBox_Rname2、双击按钮,添加代码:SqlConnectionconn=newSqlConnection();StringstrCon=DataSource=STU-N07;InitialCatalog=library;IntegratedSecurity=SSPI;;conn.ConnectionString=strCon;conn.Open();//打开数据库连接SqlCommandcmd=newSqlCommand(selectrnameas姓名fromreader,conn);//查询读者信息表华北电力大学科技学院实验报告第页共页SqlDataReaderdr=cmd.ExecuteReader();while(dr.Read()){listBox_Rname.Items.Add(dr[姓名].ToString());}conn.Close();五、DataAdapter举例-修改数据1、添加控件添加按钮Button,设置其Text属性为:适配器举例;设置name属性为:btnDA_exp2、双击按钮,添加代码:华北电力大学科技学院实验报告第页共页SqlConnectionconn=newSqlConnection();StringstrCon=DataSource=STU-N07;InitialCatalog=library;IntegratedSecurity=SSPI;;conn.ConnectionString=strCon;conn.Open();//打开数据库连接stringSqlStr=select*fromreader;SqlCommandcom=newSqlCommand(SqlStr,conn);SqlDataAdapterda=newSqlDataAdapter();da.SelectCommand=com;DataTabledt=newDataTable();SqlCommandBuilderbuilder=newSqlCommandBuilder(da);da.Fill(dt);DataRowupdaterow=dt.Rows[0];updaterow[1]=王丽;updaterow[2]=女;updaterow[6]=本科生;da.Update(dt);conn.Close();华北电力大学科技学院实验报告第页共页六、DataAdapter举例-查询数据1、完全注释掉(/**/)“显示读者”按钮下的click事件的代码2、添加新的代码:SqlConnectionconn=newSqlConnection();StringstrCon=DataSource=STU-N07;InitialCatalog=library;IntegratedSecurity=SSPI;;conn.ConnectionString=strCon;SqlDataAdapterdapter=newSqlDataAdapter(select*fromreader,conn);DataSetdataset=newDataSet();//使用DataAdapter填充数据集DataSetdapter.Fill(dataset,reader);dataGridView_Reader.DataSource=dataset.Tables[reader].DefaultView;//偶数行显示为粉色底if(this.dataGridView_Reader.Rows.Count!=0){for(inti=0;ithis.dataGridView_Reader.Rows.Count;){this.dataGridView_Reader.Rows[i].DefaultCellStyle.BackColor=Syst