《图书管理数据库系统的设计与实现课程设计(21页).doc》由会员分享,可在线阅读,更多相关《图书管理数据库系统的设计与实现课程设计(21页).doc(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-图书管理数据库系统的设计与实现课程设计-第 21 页华北电力大学科技学院实 验 报 告 实验名称 图书管理数据库系统的设计与实现课程名称 数据库原理及应用 专业班级:电气15K9 学生姓名:寿泽锋 学 号:151905020119 成 绩:指导教师:廖尔崇 实验日期: 2017年5月4日(实验报告如打印,纸张用A4,左装订;页边距:上下2.5cm,左2.9cm, 右2.1cm;字体:宋体小四号,1.25倍行距。)验证性、综合性实验报告应含的主要内容:一、实验目的及要求二、所用仪器、设备三、实验原理四、实验方法与步骤五、实验结果与数据处理 六、讨论与结论(对实验现象、实验故障及处理方法、实验中
2、存在的问题等进行分析和讨论,对实验的进一步想法或改进意见)七、所附实验输出的结果或数据设计性实验报告应含的主要内容:一、设计要求二、选择的方案三、所用仪器、设备四、实验方法与步骤五、实验结果与数据处理 六、结论(依据“设计要求”)七、所附实验输出的结果或数据* 封面左侧印痕处装订一、 系统功能设计本系统利用Visual Studio 2010处理数据库的功能,实现对图书馆信息的管理。主要功能为管理有关用户、管理员、书籍和借阅的信息等。本系统的结构分为书籍信息管理模块、借阅信息管理模块、查询处理模块。图书馆管理系统框图如图1.1所示:查询图书查询图书查询图书查询图书增加图书修改图书删除图书成功图
3、书管理登录失败登录处理用户密码修改管理员用户系统设置图书馆管理系统书籍信息 图1.1 图书馆管理系统框图二、 数据库概念设计2.1实体列表实体属 性管理员系统管理员名,管理员ID标识,账户密码,管理记录用户用户ID、用户名、借阅记录图书图书ID、书名、作者、出版社、借阅与否、所在书架位置、图书介绍、封面图书管理藏书量、新增书ID、新增书时间、卖出或销毁书ID、卖出或销毁书时间借阅管理借阅ID、借书日期、借阅人ID 、归还日期、所借书ID 2.2系统的E-R模型该图书管理系统的E-R模型,如图2.1所示管理员名图书ID管理员ID标识书名账户密码作者图书管理管理记录1管理员出版社用户IDm图书m借
4、阅与否用户名N借阅用户所在书架位置借阅记录所借书ID图书介绍借阅人ID借阅ID归还日期借书日期封面图2.1 系统的E-R模型三、 数据库逻辑设计3.1创建数据库(1)在服务器资源管理器中的任一节点右击。(2)执行快捷菜单中的“新建数据库”命令,并在打开的“创建数据库”对话框中输入数据库名library,其他可采用默认值。(3)单击“确定”按钮,则新建的数据库就会出现在服务器上。3.2创建数据表 创建数据库后,为library数据库添加数据表,步骤如下。 (1)在服务器资源管理器中右击数据库library下的“表”文件夹在弹出的快捷菜单中执行“新建表”命令。 (2)添加表的字段和其他详细资料。各
5、表数据结构如下图所示。图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自
6、动,主键BookID图书IDbigint外键IssBookID借阅人IDbigint不为空IssDateTime借书日期datetime不为空IssReturnTime归还日期datetime允许为空四、 系统编码与实现数据库设计:设计数据表,选定reder表,其他自由设计create table reader(rno char(12) primary key,rname varchar(20) not null,rsex char(2) check(rsex in(男,女) default 男, rbirthday datetime,rdept varchar(20),rclass varc
7、har(20),rtype char(6) check(rtype in(教师,研究生,本科生),rvalid char(1) default Y,rpassword varchar(10),rnote varchar(100);insert into reader(rno,rname,rdept,rtype) values(201109010101,张三,电力系,教师);insert into reader(rno,rname,rdept,rtype) values(201109010102,李四,电力系,研究生);insert into reader(rno,rname,rdept,rty
8、pe) values(201109010103,王五,电力系,本科生);insert into reader(rno,rname,rdept,rtype) values(201109010104,赵六,计算机系,本科生);2、在click事件添加代码/数据库名为library SqlConnection conn = new SqlConnection(); String strCon = Data Source=STU-N07;Initial Catalog=library;Integrated Security=SSPI; conn.ConnectionString = strCon; c
9、onn.Open();/打开数据库连接 SqlCommand cmd = new SqlCommand(select * from reader, conn);/查询读者信息表 SqlDataReader dr_reader = cmd.ExecuteReader(); BindingSource Bs = new BindingSource(); Bs.DataSource = dr_reader; dataGridView_Reader.DataSource = Bs; /偶数行显示为粉色底 if (this.dataGridView_Reader.Rows.Count != 0) for
10、 (int i = 0; i this.dataGridView_Reader.Rows.Count; ) this.dataGridView_Reader.Rowsi.DefaultCellStyle.BackColor = System.Drawing.Color.Pink; i += 2; conn.Close();/关闭数据库连接三、返回第一行第一列数据1、添加控件添加按钮Button,设置其Text属性为:读者总数;设置name属性为:btnCount添加文本框TextBox,设置其name属性为:txtCount2、双击按钮,添加代码: SqlConnection conn = n
11、ew SqlConnection(); String strCon = Data Source= STU-N07;Initial Catalog=library;Integrated Security=SSPI; conn.ConnectionString = strCon; conn.Open();/打开数据库连接 SqlCommand cmd = new SqlCommand(select count(*) from reader, conn);/查询读者信息表 txtCount.Text = cmd.ExecuteScalar().ToString(); conn.Close();四、D
12、ataReader读取数据,如读者姓名1、添加控件添加按钮Button,设置其Text属性为:读者姓名集;设置name属性为:btn_ReaderName添加列表框ListBox,设置其name属性为:listBox_Rname2、双击按钮,添加代码: SqlConnection conn = new SqlConnection(); String strCon = Data Source= STU-N07;Initial Catalog=library;Integrated Security=SSPI; conn.ConnectionString = strCon; conn.Open();
13、/打开数据库连接 SqlCommand cmd = new SqlCommand(select rname as 姓名 from reader, conn);/查询读者信息表 SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read() listBox_Rname.Items.Add(dr姓名.ToString(); conn.Close();五、DataAdapter举例-修改数据1、添加控件添加按钮Button,设置其Text属性为:适配器举例;设置name属性为:btnDA_exp2、双击按钮,添加代码: SqlConnection c
14、onn = new SqlConnection(); String strCon = Data Source= STU-N07;Initial Catalog=library;Integrated Security=SSPI; conn.ConnectionString = strCon; conn.Open();/打开数据库连接 string SqlStr = select * from reader; SqlCommand com = new SqlCommand(SqlStr, conn); SqlDataAdapter da = new SqlDataAdapter(); da.Sel
15、ectCommand = com; DataTable dt = new DataTable(); SqlCommandBuilder builder = new SqlCommandBuilder(da); da.Fill(dt); DataRow updaterow = dt.Rows0; updaterow1 = 王丽; updaterow2 = 女; updaterow6 = 本科生; da.Update(dt); conn.Close();六、DataAdapter举例-查询数据1、完全注释掉(/* */)“显示读者”按钮下的click事件的代码2、添加新的代码:SqlConnect
16、ion conn = new SqlConnection(); String strCon = Data Source= STU-N07;Initial Catalog=library;Integrated Security=SSPI; conn.ConnectionString = strCon; SqlDataAdapter dapter = new SqlDataAdapter(select * from reader, conn); DataSet dataset = new DataSet(); /使用DataAdapter填充数据集DataSet dapter.Fill(datas
17、et, reader); dataGridView_Reader.DataSource = dataset.Tablesreader.DefaultView; /偶数行显示为粉色底 if (this.dataGridView_Reader.Rows.Count != 0) for (int i = 0; i this.dataGridView_Reader.Rows.Count; ) this.dataGridView_Reader.Rowsi.DefaultCellStyle.BackColor = System.Drawing.Color.Pink; i += 2; 七、DataAdapt
18、er举例-查询数据再举例1、完全注释掉(/* */)“读者姓名集”按钮下的click事件的代码2、添加新的代码: SqlConnection conn = new SqlConnection(); conn.ConnectionString = Data Source= STU-N07;Initial Catalog=library;Integrated Security=SSPI; conn.Open(); string strsql = select rname as 姓名 from reader; SqlCommand com = new SqlCommand(strsql, conn)
19、; SqlDataAdapter dapter = new SqlDataAdapter(); dapter.SelectCommand = com; DataSet dataset = new DataSet(); dapter.Fill(dataset); dataGridView_Reader.DataSource = dataset.Tables0.DefaultView;八、DataAdapter举例-删除读者1、添加控件添加按钮Button,设置其Text属性为:删除读者;设置name属性为:btnDelete2、双击按钮,添加代码: SqlConnection conn = ne
20、w SqlConnection(); String strCon = Data Source= STU-N07;Initial Catalog=library;Integrated Security=SSPI; conn.ConnectionString = strCon; SqlDataAdapter apdater = new SqlDataAdapter(select * from reader, conn); DataSet dataset = new DataSet();/建立DataSet实例 /使用DataAdapter填充数据集DataSet apdater.Fill(data
21、set, reader); dataGridView_Reader.DataSource = dataset.Tables0.DefaultView; DataRow dr = dataset.Tablesreader.Rows1; dr.Delete(); SqlCommandBuilder cb = new SqlCommandBuilder(apdater); apdater.Update(dataset, reader);九、DataAdapter举例-修改读者1、添加控件添加按钮Button,设置其Text属性为:修改读者;设置name属性为:btnUpdate2、双击按钮,添加代码
22、: SqlConnection conn = new SqlConnection(); String strCon = Data Source= STU-N07;Initial Catalog=library;Integrated Security=SSPI; conn.ConnectionString = strCon; SqlDataAdapter apdater = new SqlDataAdapter(select * from reader, conn); DataSet dataset = new DataSet();/建立DataSet实例 /使用DataAdapter填充数据集
23、DataSet apdater.Fill(dataset, reader); dataGridView_Reader.DataSource = dataset.Tables0.DefaultView; DataRow dr = dataset.Tablesreader.Rows0; drrname=修改后; drrtype = 研究生; SqlCommandBuilder cb = new SqlCommandBuilder(apdater); apdater.Update(dataset, reader);十、DataAdapter举例-添加读者1、添加控件添加按钮Button,设置其Tex
24、t属性为:添加读者;设置name属性为:btnADDReader添加四个Label控件:Text属性分别为:编号、姓名、专业、类型添加四个TextBox控件,Name属性分别为:txtRno,txtRname,txtRdept,txtRtype2、双击按钮,添加代码: SqlConnection conn = new SqlConnection(); String strCon = Data Source= STU-N07;Initial Catalog=library;Integrated Security=SSPI; conn.ConnectionString = strCon; conn
25、.Open(); string strsql = select * from reader; SqlCommand command = new SqlCommand(strsql, conn); SqlDataAdapter adapter = new SqlDataAdapter(); DataSet dataset = new DataSet(); adapter.SelectCommand = command; /与sql命令对象绑定 adapter.Fill(dataset, reader); dataGridView_Reader.DataSource = dataset.Table
26、s0.DefaultView;/将数据集绑定到数据显示控件 DataRow newRow = dataset.Tablesreader.NewRow();/向reader表中插入一行 newRowrno = txtRno .Text ; /该行的一列的值 newRowrname = txtRname.Text; /该行另外一列的值 newRowrdept = txtRdept.Text; newRowrtype = txtRtype.Text; dataset.Tablesreader.Rows.Add(newRow); SqlCommandBuilder commandBuilder = new SqlCommandBuilder(adapter); adapter.Update(dataset, reader); /用DataAdapter的Update方法将数据集写回数据源