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

下载本文档

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

文档简介

数据库课程设计报告系 (院): 计算机科学学院 专业班级: 计算机科学与技术 姓 名: 学 号: 指导教师: 设计时间: 2011.12.12 - 2011.12.23 设计地点: 目录一、课程设计目的3二、设计任务及要求3三、需求分析4四、总体设计4五、详细设计与实现51、数据库操作公共类:52、登陆界面及代码实现103、系统管理员124、图书管理员145、读者管理员205、读者27六、课程设计小结28指导老师意见:30一、课程设计目的通过对图书管理信息系统的系统分析、系统设计、编码和调试等工作的实践,了解管理信息系统的一般设计方法和实现思路,深入了解数据库设计的基本理论及方法。二、设计任务及要求要求完成一个具有一定实用价值的图书管理信息系统,主要任务包括: 在SQL Server 2000或SQL Server 2005环境下建立图书管理信息系统所使用的数据库,利用企业管理器或查询分析器建立各种数据库对象,包括:数据表、视图、约束、存储过程和触发器等; 了解数据库引擎技术,并掌握使用ADO.NET连接数据库服务器和客户端应用程序; 掌握使用C#或其他语言开发一个数据库系统的基本方法和步骤,应用程序的功能包括:数据的输入、修改和删除;数据的浏览和查询;数据的图形化、报表以及打印输出;系统的用户登录和权限管理; 了解多层C/S或B/S体系结构的数据库系统的开发过程:需求分析、系统设计、系统实现及文档的收集和整理。三、需求分析在做这个课程设计,主要涉及到的是我们以前学习过的C#的相关技术和数据库的一些知识,就感觉上来讲,这两部分比重应该都差不多。要做出图书管理系统,首先要对数据库的建立、修改和维护能够比较熟悉的掌握,另外就是数据库与VS之间的连接,是直接的绑定到VS里面还是通过查询语句让表的内容在DataGridView控件中显示出来,以及这两种之间的优点和坏处,在开始做这个课设之前,我们心里都要有数,另外,考虑到的就是提高访问的速度以及可维护性了。至于其他的功能的实现,就各凭本事了。四、总体设计该系统主要由五大功能模块组成:图书管理、读者管理、借阅管理、数据统计和系统管理。各大功能模块又由一些子功能模块构成,其总体的设计框架如下。五、详细设计与实现 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 .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.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 int 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 Exception(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 = 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; / / 执行简单的SQL语句,返回结果集中的首行首列 / / 要执行的SQL查询语句 / 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); finally CloseConn(); return obj; / / 执行简单的SQL语句,返回结果集中的首行首列 / / 要执行的SQL查询语句 / / public static object ExecuteScalar(string sql, SqlParameter 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(); return obj; / / 执行一条带参数的SQL语句,返回DataTable对象 / / SQL查询语句 / / DataSet中的表名 / 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 SqlDataAdapter(cmd); DataSet ds = new DataSet(); sda.Fill(ds, TableName); dt = ds.Tables0; return dt; / / 执行存储过程,返回DataTable对象 / / 存储过程名 / / Data中的表名 / public static DataTable ExecuteStoredProc(string storedProcName, SqlParameter parameters, string TableName) DataTable dt = null; try OpenConn(); SqlCommand cmd = new SqlCommand(); cmd.CommandType = CommandType.StoredProcedure; 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 (SqlException 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.GetDataTable(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_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 读者管理员: 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); reader_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 = new 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 = add_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 = 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, 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, 是否删除该选中行, 确定删除, MessageBoxButtons.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 (r

温馨提示

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

评论

0/150

提交评论