2012数据库课程设计报告_第1页
2012数据库课程设计报告_第2页
2012数据库课程设计报告_第3页
2012数据库课程设计报告_第4页
2012数据库课程设计报告_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库课程设计报告系 (院): 计算机科学学院 专业班级: 计算机科学与技术 姓 名: 学 号: 指导教师: 设计时间: 2011.12.12 - 2011.12.23 设计地点: 目录一、课程设计目的3二、设计任务及要求3三、需求分析4四、总体设计4五、详细设计与实现51、数据库操作公共类:52、登陆界面及代码实现103、系统管理员124、图书管理员145、读者管理员205、读者27六、课程设计小结28指导老师意见:30一、课程设计目的通过对图书管理信息系统的系统分析、系统设计、编码和调试等工作的实践,了解管理信息系统的一般设计方法和实现思路,深入了解数据库设计的基本理论及方法。二、设计任务

2、及要求要求完成一个具有一定实用价值的图书管理信息系统,主要任务包括: 在SQL Server 2000或SQL Server 2005环境下建立图书管理信息系统所使用的数据库,利用企业管理器或查询分析器建立各种数据库对象,包括:数据表、视图、约束、存储过程和触发器等; 了解数据库引擎技术,并掌握使用ADO.NET连接数据库服务器和客户端应用程序; 掌握使用C#或其他语言开发一个数据库系统的基本方法和步骤,应用程序的功能包括:数据的输入、修改和删除;数据的浏览和查询;数据的图形化、报表以及打印输出;系统的用户登录和权限管理; 了解多层C/S或B/S体系结构的数据库系统的开发过程:需求分析、系统设

3、计、系统实现及文档的收集和整理。三、需求分析在做这个课程设计,主要涉及到的是我们以前学习过的C#的相关技术和数据库的一些知识,就感觉上来讲,这两部分比重应该都差不多。要做出图书管理系统,首先要对数据库的建立、修改和维护能够比较熟悉的掌握,另外就是数据库与VS之间的连接,是直接的绑定到VS里面还是通过查询语句让表的内容在DataGridView控件中显示出来,以及这两种之间的优点和坏处,在开始做这个课设之前,我们心里都要有数,另外,考虑到的就是提高访问的速度以及可维护性了。至于其他的功能的实现,就各凭本事了。四、总体设计该系统主要由五大功能模块组成:图书管理、读者管理、借阅管理、数据统计和系统管

4、理。各大功能模块又由一些子功能模块构成,其总体的设计框架如下。五、详细设计与实现 1、数据库操作公共类: class SQLhelper private static SqlConnection conn = new SqlConnection("Data Source=.SQLEXPRESS;AttachDbFilename=D:计算机的学习数据库数据库课程设计汪刚数据库课程设计数据库课程设计MSI_KS.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");/Decrypt(System

5、 .Configuration . ConfigurationManager. AppSettings "connectionString" ) ); /打开数据库链接 public static void OpenConn() try if (conn.State = ConnectionState.Closed) conn.Open(); catch throw new Exception("数据库连接失败!"); /关闭数据库连接 private static void CloseConn() if (conn != null) if (conn.

6、State = ConnectionState.Open) conn.Close(); public static int ExecuteNonQuery(string sql) int rows = 0; try OpenConn(); SqlCommand cmd = new SqlCommand(sql, conn); rows = cmd.ExecuteNonQuery(); catch (SqlException ex) throw new Exception(ex.Message); finally CloseConn(); return rows; public static i

7、nt ExecuteNonQuery(string sql, SqlParameter parameters) int rows = 0; try OpenConn(); SqlCommand cmd = new SqlCommand(sql, conn); if (parameters != null) foreach (SqlParameter parameter in parameters) cmd.Parameters.Add(parameter); rows = cmd.ExecuteNonQuery(); catch (SqlException ex) throw new Exce

8、ption(ex.Message); finally CloseConn(); return rows; public static int ExecuteStoredProc(string storedProcName, SqlParameter parameters) int rows = 0; try OpenConn(); SqlCommand cmd = new SqlCommand(); cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = storedProcName; cmd.Connection =

9、conn; if (parameters != null) foreach (SqlParameter parameter in parameters) cmd.Parameters.Add(parameter); rows = cmd.ExecuteNonQuery(); catch (SqlException ex) throw new Exception(ex.Message); finally CloseConn(); return rows; / <summary> / 执行简单的SQL语句,返回结果集中的首行首列 / </summary> / <par

10、am name="sql">要执行的SQL查询语句</param> / <returns></returns> public static object ExecuteScalar(string sql) object obj = null; try OpenConn(); SqlCommand cmd = new SqlCommand(sql, conn); obj = cmd.ExecuteScalar(); catch (SqlException ex) throw new Exception(ex.Message); fin

11、ally CloseConn(); return obj; / <summary> / 执行简单的SQL语句,返回结果集中的首行首列 / </summary> / <param name="sql">要执行的SQL查询语句</param> / <param name="parameters"></param> / <returns></returns> public static object ExecuteScalar(string sql, SqlPara

12、meter parameters) object obj = null; try OpenConn(); SqlCommand cmd = new SqlCommand(sql, conn); if (parameters != null) foreach (SqlParameter parameter in parameters) cmd.Parameters.Add(parameter); obj = cmd.ExecuteScalar(); catch (SqlException ex) throw new Exception(ex.Message); finally CloseConn

13、(); return obj; / <summary> / 执行一条带参数的SQL语句,返回DataTable对象 / </summary> / <param name="sql">SQL查询语句</param> / <param name="parameters"></param> / <param name="TableName">DataSet中的表名</param> / <returns></returns>

14、 public static DataTable GetDataTable(string sql, SqlParameter parameters, string TableName) DataTable dt = null; OpenConn(); SqlCommand cmd = new SqlCommand(sql, conn); if (parameters != null) foreach (SqlParameter parameter in parameters) cmd.Parameters.Add(parameter); SqlDataAdapter sda = new Sql

15、DataAdapter(cmd); DataSet ds = new DataSet(); sda.Fill(ds, TableName); dt = ds.Tables0; return dt; / <summary> / 执行存储过程,返回DataTable对象 / </summary> / <param name="storedProcName">存储过程名</param> / <param name="parameters"></param> / <param name

16、="TableName">Data中的表名</param> / <returns></returns> public static DataTable ExecuteStoredProc(string storedProcName, SqlParameter parameters, string TableName) DataTable dt = null; try OpenConn(); SqlCommand cmd = new SqlCommand(); cmd.CommandType = CommandType.StoredP

17、rocedure; cmd.CommandText = storedProcName; cmd.Connection = conn; if (parameters != null) foreach (SqlParameter parameter in parameters) cmd.Parameters.Add(parameter); SqlDataAdapter sda = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); sda.Fill(ds, TableName); dt = ds.Tables0; catch (SqlExcep

18、tion ex) throw new Exception(ex.Message); finally CloseConn(); return dt; 2、登陆界面及代码实现 代码实现:(主要是验证用户名和密码) string name = User_Name.Text; string code = User_Code.Text; string sql = string.Format(" select * from Reader_sort where reader_name='0'", name); DataTable temp = SQLhelper.GetD

19、ataTable(sql, null, "Reader_sort"); if (temp.Rows.Count!= 0) if (temp.Rows03.ToString() = name) if (temp.Rows02.ToString() = code) string temp_sort = temp.Rows01.ToString(); if (User_Sort.Text = temp_sort) switch (temp_sort) case "系统管理员": string name_temp = User_Name.Text; System

20、_administrator System_admin_temp = new System_administrator(name_temp); System_admin_temp.Show(); this.Hide(); break; case "图书管理员": string name_temp1 = User_Name.Text; Book_administrator book_admin_temp = new Book_administrator(name_temp1); book_admin_temp.Show(); this.Hide(); break; case

21、"读者管理员": string name_temp2 = User_Name.Text; Reader_administrator Reader_admin_temp = new Reader_administrator(name_temp2); Reader_admin_temp.Show(); this.Hide(); break; case "读者": string name_temp3 = User_Name.Text; Common_Reader reader_temp = new Common_Reader(name_temp3); read

22、er_temp.Show(); this.Hide(); break; else MessageBox.Show("权限错误!"); else MessageBox.Show("密码不正确,请重新输入!"); User_Code.Text = null; else MessageBox.Show("用户名不存在!"); else MessageBox.Show("用户不存在!"); 图形界面:3、系统管理员 代码实现:(一些主要功能) 添加: System_administrator admin_temp = ne

23、w System_administrator( null); string sql_update = string.Format("select * from Reader_sort"); admin_temp.dataGridView1.DataSource = SQLhelper.GetDataTable(sql_update, null, "Reader_sort"); int i = admin_temp .dataGridView1 .NewRowIndex;/获取新行的行号 i = i + 1; string reader_name = ad

24、d_reader_name.Text; int code = int.Parse(add_code.Text); string item_sort = add_sort.Text; string sql = string.Format("insert into Reader_sort values('0','1','2','3')", i, item_sort, code, reader_name); int rows= SQLhelper.ExecuteNonQuery(sql ); if (rows <

25、;= 0) MessageBox.Show("添加失败!"); 修改: update_index = update_index + 1; string reader_name = modify_reader_name.Text; int code = int.Parse(modify_code.Text); string item_sort = modify_sort.Text; string sql = string.Format("update Reader_sort set sort_name='0' , sort_code='1&#

26、39;, reader_name='2' where sort_ID='3'", item_sort ,code ,reader_name ,update_index ); int rows = SQLhelper.ExecuteNonQuery(sql); if (rows <= 0) MessageBox.Show("修改失败!"); 删除: DialogResult temp = MessageBox.Show(this, "是否删除该选中行", "确定删除", MessageBo

27、xButtons.YesNo, MessageBoxIcon.Question); if (temp = DialogResult.Yes) string delete_currentcell = dataGridView1.CurrentRow.Cells0.Value.ToString(); string sql = string.Format("delete Reader_sort where sort_ID='0'", delete_currentcell); int rows = SQLhelper.ExecuteNonQuery(sql); if

28、 (rows <= 0) MessageBox.Show("删除失败"); else dataGridView1.Rows.Remove(dataGridView1.CurrentRow);/删除选中行 图形界面:4、图书管理员 关于添加、修改、删除的操作与系统管理员类似,这里不再赘述,图书管理员中,主要用到的技术有:C/S或B/S模式:业务实体类: public class Book_entiry #region 私有字段 private int Book_id; private string book_code; private string book_name;

29、 private string book_author; private string book_press; private string book_datapress; private string book_isbn; private string book_catalog; private string book_languague; private int book_pages; private string book_price; private string book_datain; private string book_brief; private string book_c

30、over; private string book_sum; #endregion #region 公有属性 public int bkID get return Book_id; set Book_id = value; public string bkCode get return book_code; set book_code = value; public string bkName get return book_name; set book_name = value; public string bkAuthor get return book_author; set book_

31、author = value; public string bkPress get return book_press; set book_press = value; public string bkDatePress get return book_datapress; set book_datapress = value; public string bkISBN get return book_isbn; set book_isbn = value; public string bkCatalog get return book_catalog; set book_catalog =

32、value; public string bkLanguage get return book_languague; set book_languague = value; public int bkPages get return book_pages; set book_pages = value; public string bkPrice get return book_price; set book_price = value; public string bkDateIn get return book_datain; set book_datain = value; public

33、 string bkBrief get return book_brief; set book_brief = value; public string bkCover get return book_cover; set book_cover = value; public string bkIsInlab get return book_sum; set book_sum = value; #endregion 数据访问层: class BookTypeDAL public DataTable GetAllReader() string sql = "select * from

34、Book" return SQLhelper.GetDataTable(sql, null, "Book"); public void AddBook(数据库课程设计.Book_entiry book) ; try SQLhelper.ExecuteStoredProc("add_book", parameters); catch (SqlException ex) throw new Exception(ex.Message); 业务逻辑层: class BookBLL BookTypeDAL BDAL = new BookTypeDAL()

35、; /得到所有的读者 public DataTable GetAllReader() return BDAL.GetAllReader(); /添加读者 public void AddBook(数据库课程设计.Book_entiry book) try BDAL.AddBook(book); MessageBox.Show("添加成功!"); catch (Exception ex) MessageBox.Show("添加失败!"); throw new Exception(ex.Message); 表示层: 数据库课程设计.Book_entiry bo

36、ok = new Book_entiry();/引用存储过程 book.bkID = Convert.ToInt32(Book_add_bkID.Text); book.bkCode = Book_add_bkcode.Text; book.bkName = Book_add_bkName.Text; book.bkLanguage = Book_add_bkLanguage.Text; book.bkPages = Convert.ToInt32(Book_addpages.Text); book.bkPrice = Book_add_bkPrice.Text; book.bkDateIn

37、= Book_add_bkDateIn.Text; book.bkBrief = Book_add_bkBrief.Text; book.bkCover = picture_address.Text; book.bkIsInlab = Book_add_bkIsInlab.Text; 数据库课程设计.Book_book.BookBLL book_temp = new 数据库课程设计.Book_book.BookBLL(); book_temp.AddBook(book);图形界面:读者信息管理页面:代码实现:鼠标点击首记录: int row = this.dataGridView1.CurrentRow.Index + 1; if (row > this.dataGridView1.RowCount - 2) row = 0; this.dataGridView1.Curre

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论