数据库课程设计报告.docx
- 文档编号:8985984
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:35
- 大小:427.81KB
数据库课程设计报告.docx
《数据库课程设计报告.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告.docx(35页珍藏版)》请在冰点文库上搜索。
数据库课程设计报告
数据库课程设计报告
系(院):
计算机科学学院
专业班级:
计算机科学与技术
姓名:
学号:
指导教师:
设计时间:
2011.12.12-2011.12.23
设计地点:
目录
一、课程设计目的3
二、设计任务及要求3
三、需求分析4
四、总体设计4
五、详细设计与实现5
1、数据库操作公共类:
5
2、登陆界面及代码实现10
3、系统管理员12
4、图书管理员14
5、读者管理员20
5、读者27
六、课程设计小结28
指导老师意见:
30
一、课程设计目的
通过对图书管理信息系统的系统分析、系统设计、编码和调试等工作的实践,了解管理信息系统的一般设计方法和实现思路,深入了解数据库设计的基本理论及方法。
二、设计任务及要求
要求完成一个具有一定实用价值的图书管理信息系统,主要任务包括:
在SQLServer2000或SQLServer2005环境下建立图书管理信息系统所使用的数据库,利用企业管理器或查询分析器建立各种数据库对象,包括:
数据表、视图、约束、存储过程和触发器等;
了解数据库引擎技术,并掌握使用ADO.NET连接数据库服务器和客户端应用程序;
掌握使用C#或其他语言开发一个数据库系统的基本方法和步骤,应用程序的功能包括:
数据的输入、修改和删除;数据的浏览和查询;数据的图形化、报表以及打印输出;系统的用户登录和权限管理;
了解多层C/S或B/S体系结构的数据库系统的开发过程:
需求分析、系统设计、系统实现及文档的收集和整理。
三、需求分析
在做这个课程设计,主要涉及到的是我们以前学习过的C#的相关技术和数据库的一些知识,就感觉上来讲,这两部分比重应该都差不多。
要做出图书管理系统,首先要对数据库的建立、修改和维护能够比较熟悉的掌握,另外就是数据库与VS之间的连接,是直接的绑定到VS里面还是通过查询语句让表的内容在DataGridView控件中显示出来,以及这两种之间的优点和坏处,在开始做这个课设之前,我们心里都要有数,另外,考虑到的就是提高访问的速度以及可维护性了。
至于其他的功能的实现,就各凭本事了。
四、总体设计
该系统主要由五大功能模块组成:
图书管理、读者管理、借阅管理、数据统计和系统管理。
各大功能模块又由一些子功能模块构成,其总体的设计框架如下。
五、详细设计与实现
1、数据库操作公共类:
classSQLhelper
{
privatestaticSqlConnectionconn=newSqlConnection(@"DataSource=.\SQLEXPRESS;AttachDbFilename=D:
\计算机的学习\数据库\数据库课程设计\汪刚\数据库课程设计\数据库课程设计\MSI_KS.mdf;IntegratedSecurity=True;ConnectTimeout=30;UserInstance=True");//Decrypt(System.Configuration.ConfigurationManager.AppSettings["connectionString"]));
//打开数据库链接
publicstaticvoidOpenConn()
{
try
{
if(conn.State==ConnectionState.Closed)
conn.Open();
}
catch
{
thrownewException("数据库连接失败!
");
}
}
//关闭数据库连接
privatestaticvoidCloseConn()
{
if(conn!
=null)
{
if(conn.State==ConnectionState.Open)
{
conn.Close();
}
}
}
publicstaticintExecuteNonQuery(stringsql)
{
introws=0;
try
{
OpenConn();
SqlCommandcmd=newSqlCommand(sql,conn);
rows=cmd.ExecuteNonQuery();
}
catch(SqlExceptionex)
{
thrownewException(ex.Message);
}
finally
{
CloseConn();
}
returnrows;
}
publicstaticintExecuteNonQuery(stringsql,SqlParameter[]parameters)
{
introws=0;
try
{
OpenConn();
SqlCommandcmd=newSqlCommand(sql,conn);
if(parameters!
=null)
{
foreach(SqlParameterparameterinparameters)
{
cmd.Parameters.Add(parameter);
}
}
rows=cmd.ExecuteNonQuery();
}
catch(SqlExceptionex)
{
thrownewException(ex.Message);
}
finally
{
CloseConn();
}
returnrows;
}
publicstaticintExecuteStoredProc(stringstoredProcName,SqlParameter[]parameters)
{
introws=0;
try
{
OpenConn();
SqlCommandcmd=newSqlCommand();
cmd.CommandType=CommandType.StoredProcedure;
cmd.CommandText=storedProcName;
cmd.Connection=conn;
if(parameters!
=null)
{
foreach(SqlParameterparameterinparameters)
{
cmd.Parameters.Add(parameter);
}
}
rows=cmd.ExecuteNonQuery();
}
catch(SqlExceptionex)
{
thrownewException(ex.Message);
}
finally
{
CloseConn();
}
returnrows;
}
///
///执行简单的SQL语句,返回结果集中的首行首列
///
///
///
publicstaticobjectExecuteScalar(stringsql)
{
objectobj=null;
try
{
OpenConn();
SqlCommandcmd=newSqlCommand(sql,conn);
obj=cmd.ExecuteScalar();
}
catch(SqlExceptionex)
{
thrownewException(ex.Message);
}
finally
{
CloseConn();
}
returnobj;
}
///
///执行简单的SQL语句,返回结果集中的首行首列
///
///
///
///
publicstaticobjectExecuteScalar(stringsql,SqlParameter[]parameters)
{
objectobj=null;
try
{
OpenConn();
SqlCommandcmd=newSqlCommand(sql,conn);
if(parameters!
=null)
{
foreach(SqlParameterparameterinparameters)
{
cmd.Parameters.Add(parameter);
}
}
obj=cmd.ExecuteScalar();
}
catch(SqlExceptionex)
{
thrownewException(ex.Message);
}
finally
{
CloseConn();
}
returnobj;
}
///
///执行一条带参数的SQL语句,返回DataTable对象
///
///
///
///
///
publicstaticDataTableGetDataTable(stringsql,SqlParameter[]parameters,stringTableName)
{
DataTabledt=null;
{
OpenConn();
SqlCommandcmd=newSqlCommand(sql,conn);
if(parameters!
=null)
{
foreach(SqlParameterparameterinparameters)
{
cmd.Parameters.Add(parameter);
}
}
SqlDataAdaptersda=newSqlDataAdapter(cmd);
DataSetds=newDataSet();
sda.Fill(ds,TableName);
dt=ds.Tables[0];
}
returndt;
}
///
///执行存储过程,返回DataTable对象
///
///
///
///
///
publicstaticDataTableExecuteStoredProc(stringstoredProcName,SqlParameter[]parameters,stringTableName)
{
DataTabledt=null;
try
{
OpenConn();
SqlCommandcmd=newSqlCommand();
cmd.CommandType=CommandType.StoredProcedure;
cmd.CommandText=storedProcName;
cmd.Connection=conn;
if(parameters!
=null)
{
foreach(SqlParameterparameterinparameters)
{
cmd.Parameters.Add(parameter);
}
}
SqlDataAdaptersda=newSqlDataAdapter(cmd);
DataSetds=newDataSet();
sda.Fill(ds,TableName);
dt=ds.Tables[0];
}
catch(SqlExceptionex)
{
thrownewException(ex.Message);
}
finally
{
CloseConn();
}
returndt;
}
2、登陆界面及代码实现
代码实现:
(主要是验证用户名和密码)
stringname=User_Name.Text;
stringcode=User_Code.Text;
stringsql=string.Format("select*fromReader_sortwherereader_name='{0}'",name);
DataTabletemp=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)
{
stringtemp_sort=temp.Rows[0][1].ToString();
if(User_Sort.Text==temp_sort)
{
switch(temp_sort)
{
case"系统管理员":
stringname_temp=User_Name.Text;
System_administratorSystem_admin_temp=newSystem_administrator(name_temp);
System_admin_temp.Show();
this.Hide();
break;
case"图书管理员":
stringname_temp1=User_Name.Text;
Book_administratorbook_admin_temp=newBook_administrator(name_temp1);
book_admin_temp.Show();
this.Hide();
break;
case"读者管理员":
stringname_temp2=User_Name.Text;
Reader_administratorReader_admin_temp=newReader_administrator(name_temp2);
Reader_admin_temp.Show();
this.Hide();
break;
case"读者":
stringname_temp3=User_Name.Text;
Common_Readerreader_temp=newCommon_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_administratoradmin_temp=newSystem_administrator(null);
stringsql_update=string.Format("select*fromReader_sort");
admin_temp.dataGridView1.DataSource=SQLhelper.GetDataTable(sql_update,null,"Reader_sort");
inti=admin_temp.dataGridView1.NewRowIndex;//获取新行的行号
i=i+1;
stringreader_name=add_reader_name.Text;
intcode=int.Parse(add_code.Text);
stringitem_sort=add_sort.Text;
stringsql=string.Format("insertintoReader_sortvalues('{0}','{1}','{2}','{3}')",i,item_sort,code,reader_name);
introws=SQLhelper.ExecuteNonQuery(sql);
if(rows<=0)
{
MessageBox.Show("添加失败!
");
}
修改:
update_index=update_index+1;
stringreader_name=modify_reader_name.Text;
intcode=int.Parse(modify_code.Text);
stringitem_sort=modify_sort.Text;
stringsql=string.Format("updateReader_sortsetsort_name='{0}',sort_code='{1}',reader_name='{2}'wheresort_ID='{3}'",item_sort,code,reader_name,update_index);
introws=SQLhelper.ExecuteNonQuery(sql);
if(rows<=0)
{
MessageBox.Show("修改失败!
");
}
删除:
DialogResulttemp=MessageBox.Show(this,"是否删除该选中行","确定删除",MessageBoxButtons.YesNo,MessageBoxIcon.Question);
if(temp==DialogResult.Yes)
{
stringdelete_currentcell=dataGridView1.CurrentRow.Cells[0].Value.ToString();
stringsql=string.Format("deleteReader_sortwheresort_ID='{0}'",delete_currentcell);
introws=SQLhelper.ExecuteNonQuery(sql);
if(rows<=0)
{
MessageBox.Show("删除失败");
}
else
{
dataGridView1.Rows.Remove(dataGridView1.CurrentRow);//删除选中行
}
}
图形界面:
4、图书管理员
关于添加、修改、删除的操作与系统管理员类似,这里不再赘述,图书管理员中,主要用到的技术有:
C/S或B/S模式:
业务实体类:
publicclassBook_entiry
{
#region私有字段
privateintBook_id;
privatestringbook_code;
privatestringbook_name;
privatestringbook_author;
privatestringbook_press;
privatestringbook_datapress;
privatestringbook_isbn;
privatestringbook_catalog;
privatestringbook_languague;
privateintbook_pages;
privatestringbook_price;
privatestringbook_datain;
privatestringbook_brief;
privatestringbook_cover;
privatestringbook_sum;
#endregion
#region公有属性
publicintbkID
{
get{returnBook_id;}
set{Book_id=value;}
}
publicstringbkCode
{
get{returnbook_code;}
set{book_code=value;}
}
publicstringbkName
{
get{returnbook_name;}
set{book_name=value;}
}
publicstringbkAuthor
{
get{returnbook_author;}
set{book_author=value;}
}
publicstringbkPress
{
get{returnbook_press;}
set{book_press=value;}
}
publicstringbkDatePress
{
get{returnbook_datapress;}
set{book_datapress=value;}
}
publicstringbkISBN
{
get{returnbook_isbn;}
set{book_isbn=value;}
}
publicstringbkCatalog
{
get{returnbook_catalog;}
set{book
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 报告