收藏 分销(赏)

数据库专业课程设计方案报告.doc

上传人:天**** 文档编号:2494365 上传时间:2024-05-30 格式:DOC 页数:39 大小:560.04KB 下载积分:12 金币
下载 相关 举报
数据库专业课程设计方案报告.doc_第1页
第1页 / 共39页
数据库专业课程设计方案报告.doc_第2页
第2页 / 共39页


点击查看更多>>
资源描述
数据库课程设计报告 系 (院): 计算机科学学院 专业班级: 计算机科学与技术 姓 名: 学 号: 指引教师: 设计时间: .12.12 - .12.23 设计地点: 目录 一、课程设计目 3 二、设计任务及规定 3 三、需求分析 4 四、总体设计 4 五、详细设计与实现 5 1、数据库操作公共类: 5 2、登陆界面及代码实现 10 3、系统管理员 12 4、图书管理员 14 5、读者管理员 20 5、读者 27 六、课程设计小结 28 指引教师意见: 30 一、课程设计目 通过对图书管理信息系统系统分析、系统设计、编码和调试等工作实践,理解管理信息系统普通设计办法和实现思路,进一步理解数据库设计基本理论及办法。 二、设计任务及规定 规定完毕一种具备一定实用价值图书管理信息系统,重要任务涉及:  在SQL Server 或SQL Server 环境下建立图书管理信息系统所使用数据库,运用公司管理器或查询分析器建立各种数据库对象,涉及:数据表、视图、约束、存储过程和触发器等; ‚ 理解数据库引擎技术,并掌握使用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; } /// <summary> /// 执行简朴SQL语句,返回成果集中首行首列 /// </summary> /// <param 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); } finally { CloseConn(); } return obj; } /// <summary> /// 执行简朴SQL语句,返回成果集中首行首列 /// </summary> /// <param name="sql">要执行SQL查询语句</param> /// <param name="parameters"></param> /// <returns></returns> 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; } /// <summary> /// 执行一条带参数SQL语句,返回DataTable对象 /// </summary> /// <param name="sql">SQL查询语句</param> /// <param name="parameters"></param> /// <param name="TableName">DataSet中表名</param> /// <returns></returns> 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.Tables[0]; } return dt; } /// <summary> /// 执行存储过程,返回DataTable对象 /// </summary> /// <param name="storedProcName">存储过程名</param> /// <param name="parameters"></param> /// <param name="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.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.Tables[0]; } 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.Rows[0][3].ToString() == name) { if (temp.Rows[0][2].ToString() == code) { string temp_sort = temp.Rows[0][1].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.Cells[0].Value.ToString(); string sql = string.Format("delete Reader_sort where sort_ID='{0}'",delete_currentcell); int rows = SQLhelper.ExecuteNonQuery(sql); if (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; 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_cover; 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_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 = v
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 数据库/数据算法

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服