图书馆管理系统的分析与设计C#SQLServerword版本.docx
- 文档编号:3806341
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:12
- 大小:138.95KB
图书馆管理系统的分析与设计C#SQLServerword版本.docx
《图书馆管理系统的分析与设计C#SQLServerword版本.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统的分析与设计C#SQLServerword版本.docx(12页珍藏版)》请在冰豆网上搜索。
图书馆管理系统的分析与设计C#SQLServerword版本
图书馆管理系统的分析与设计
采用的开发环境主要是基于数据库系统的SQLServer2000和基于面向对象程序设计的C#。
利用SQLServer2000创建图书馆管理各信息表——用户信息表,图书信息表。
利用C#和数据库建立连接后,利用C#中的控制按钮以及一些程序代码实现一些特定的功能,例如用户图书信息查询,书库借出查询,密码修改,查找图书,个人信息查询,添加用户等,极大地提高了图书馆管理的效率。
系统详细设计与实现
为了实现该系统,建立名为Book的解决方案,建立三层架构,用户访问层BookUI,数据访问层BooKDAL,逻辑业务层BookBLL
其中用户访问层位于最外层,离用户最近。
用于显示数据和接受用户输入的数据,为用户提供一种交互式操作的界面。
本实例系统主要操作都需要与数据库发生交互,为了减少重复的代码提高代码的重要性和规范性,把数据库交互的功能单独放在一个类中,在该类中实现数据库的增加,删除,修改,查询等通用功能。
因此创建databa.cs类,放在BookUtility方案下,实现对数据库的操作,
代码如下:
namespaceBookUtility
{
publicclassDatabase
{
privatestaticstring_connStr="DataSource=.;InitialCatalog=BookManage;IntegratedSecurity=True";
privatestaticSqlConnectionsqlcon=null;
privatestaticvoidCreateConnection()
{
if(sqlcon==null)
{
sqlcon=newSqlConnection(_connStr);
sqlcon.Open();
}
elseif(sqlcon.State==ConnectionState.Closed||sqlcon.State==ConnectionState.Broken)
{
sqlcon.Close();
sqlcon.Open();
}
}
publicstaticSqlCommandQuerry(stringstrsql)
{
try
{
CreateConnection();
SqlCommandsqlcmd=newSqlCommand(strsql,sqlcon);
sqlcmd.CommandText=strsql;
returnsqlcmd;
}
catch
{
returnnull;
}
}
//执行Insert/update/delete,不带参数
publicstaticintExecuteNoQuery(stringstrsql)
{
inti;
try
{
CreateConnection();
SqlCommandsqlcmd=newSqlCommand(strsql,sqlcon);
i=sqlcmd.ExecuteNonQuery();
sqlcon.Close();
returni;
}
catch
{
return-1;
}
}
//执行Insert/update/delete,带参数
publicstaticintExecuteNoQuery(stringstrsql,paramsSqlParameter[]param)
{
inti;
try
{
CreateConnection();
SqlCommandsqlcmd=newSqlCommand(strsql,sqlcon);
//sqlcmd.Parameters.Add(param);
foreach(SqlParameterparinparam)//遍历数组将参数对象添加到操作命令中
{
sqlcmd.Parameters.Add(par);
}
i=sqlcmd.ExecuteNonQuery();
returni;
}
catch
{
return-1;
}
}
publicstaticDataSetGetDataSet(stringstrsql)
{
CreateConnection();
SqlDataAdaptersda=newSqlDataAdapter(strsql,sqlcon);
DataSetds=newDataSet();
try
{
sda.Fill(ds);
returnds;
}
catch
{
returnnull;
}
}
publicstaticDataSetGetDataSet(stringstrsql,paramsSqlParameter[]param)
{
CreateConnection();
SqlDataAdaptersda=newSqlDataAdapter(strsql,sqlcon);
DataSetds=newDataSet();
foreach(SqlParameterparinparam)
{
sda.SelectCommand.Parameters.Add(par);
}
try
{
sda.Fill(ds);
returnds;
}
catch
{
returnnull;
}
}
publicstaticDataTableGetTable(stringstrsql)
{
try
{
CreateConnection();
SqlDataAdaptersda=newSqlDataAdapter(strsql,sqlcon);
DataSetds=newDataSet();
sda.Fill(ds,"temp");
sqlcon.Close();
returnds.Tables["temp"];
}
catch
{
returnnull;
}
}
publicstaticDataTableGetTable(stringstrsql,paramsSqlParameter[]param)
{
try
{
CreateConnection();
stringstr=strsql;
SqlDataAdaptersda=newSqlDataAdapter(strsql,sqlcon);
foreach(SqlParameterparinparam)
{
sda.SelectCommand.Parameters.Add(par);
}
DataSetds=newDataSet();
sda.Fill(ds,"temp");
sqlcon.Close();
returnds.Tables["temp"];
}
catch
{
returnnull;
}
数据访问层创建了两个类,BookAccess.cs和UserAccess.cs,分别实现访问存放书籍和用户的信息的功能,代码如下:
namespaceBookDAL
{
publicclassBookAccess
{
publicDataTableBookQuarry(Bookb)
{
stringstr="select*fromBookInfowhereBookType='"+b.Booktype+"'orBookNamelike'%"+b.Bookname+"%'orBookAuthor='%"+b.Bookauthor+"%'orBookID='"+b.Bookid+"'";
returnDatabase.GetTable(str);
}
publicDataTableQuarryAll()
{
stringstr="select*fromBookInfo";
returnDatabase.GetTable(str);
}
publicDataTableQuarryMyBook(stringid)
{
SqlParameter[]param=newSqlParameter[]{newSqlParameter("@UID",id)};
stringstr="selectBookIssue,BookID,BookName,BookType,BookAuthor,BookPub,BookOutTimefromBookOutwhereUID=@UID";
returnDatabase.GetTable(str,param);
}
publicDataTableQuarryAllOut()
{
stringstr="select*fromBookOut";
returnDatabase.GetTable(str);
}
publicSqlCommandQuarryByID(stringid)
{
stringstr="select*fromBookInfowhereBookID='"+id+"'";
returnDatabase.Querry(str);
}
publicintAddBook(Bookb)
{
SqlParameter[]parm=newSqlParameter[]{newSqlParameter("@BookID",b.Bookid),newSqlParameter("@BookName",b.Bookname),newSqlParameter("@BookType",b.Booktype),newSqlParameter("@BookAuthor",b.Bookauthor),newSqlParameter("@BookPrice",b.Bookprice),newSqlParameter("@BookPub",b.Bookpub),newSqlParameter("@BookContent",b.Bookcontent),newSqlParameter("@BookIssue",b.Bookissue)};
stringstr="insertintoBookInfovalues(@BookID,@BookName,@BookType,@BookAuthor,@BookPrice,@BookPub,@BookContent,@BookIssue)";
inti=Database.ExecuteNoQuery(str,parm);
returni;
}
publicintBookOut(Bookoutbo)
{
SqlParameter[]parm=newSqlParameter[]{newSqlParameter("@BookIssue",bo.Bookissue),newSqlParameter("@BookID",bo.Bookid),newSqlParameter("@BookName",bo.Bookname),newSqlParameter("@BookType",bo.Booktype),newSqlParameter("@BookAuthor",bo.Bookauthor),newSqlParameter("@BookPub",bo.Bookpub),newSqlParameter("@UIdentify",bo.Uidentify),newSqlParameter("@BookOutTime",bo.Bookouttime),newSqlParameter("@UID",bo.Uid)};
stringstr="insertintoBookOutvalues(@BookIssue,@BookID,@BookName,@BookType,@BookAuthor,@BookPub,@UIdentify,@BookOutTime,@UID)";
inti=Database.ExecuteNoQuery(str,parm);
returni;
}
publicintUpdateBook(Bookb)
{
SqlParameter[]parm=newSqlParameter[]{newSqlParameter("@BookID",b.Bookid),newSqlParameter("@BookName",b.Bookname),newSqlParameter("@BookType",b.Booktype),newSqlParameter("@BookAuthor",b.Bookauthor),newSqlParameter("@BookPrice",b.Bookprice),newSqlParameter("@BookPub",b.Bookpub),newSqlParameter("@BookContent",b.Bookcontent),newSqlParameter("@BookIssue",b.Bookissue)};
stringstr="updateBookInfosetBookName=@BookName,BookType=@BookType,BookAuthor=@BookAuthor,BookPrice=@BookPrice,BookPub=@BookPub,BookContent=@BookContent,BookIssue=@BookIssuewhereBookID=@BookID";
inti=Database.ExecuteNoQuery(str,parm);
returni;
}
publicintDeleteBook(stringbookid)
{
stringstr="deleteBookInfowhereBookID='"+bookid+"'";
inti=Database.ExecuteNoQuery(str);
returni;
}
publicDataTableDeleteMybook(stringbookissue)
{
SqlParameter[]param=newSqlParameter[]{newSqlParameter("@BookIssue",bookissue)};
stringstr="deleteBookOutwhereBookIssue=@BookIssue";
returnDatabase.GetTable(str,param);
}
}
}
界面设计及实现
登录界面及代码
本系统的用户分为普通用户(读者)和管理员用户,管理员用户具有系统提供的所有权限,普通用户可以查询图书、借阅图书、查询个人借阅信息。
系统登录界面是判断用户身份的一个交互窗体,在其中输入正确的用户名和密码后,单击“确定”按钮,可根据用户角色在主界面中拥有相应的权限。
登录界面如图所示:
图书管理窗口,浏览图书信息,实现管理员对图书的增删改查操作。
添加图书窗口:
完成图书的入库操作
管理员有权限可以将图书添加到数据库中,图书入库界面如上图所示。
在分组框中添加标签和文本框,用来接收管理员输人的图书信息,以便保存到数据库中。
代码如下:
publicpartialclassAddBook:
Form
{
publicAddBook()
{
InitializeComponent();
}
BookMessagebm=newBookMessage();
Bookbooks=newBook();
privatevoidbutton1_Click(objectsender,EventArgse)
{
if(textBox1.Text.Trim()==""||textBox2.Text.Trim()==""||textBox3.Text.Trim()==""||textBox4.Text.Trim()==""||textBox5.Text.Trim()==""||textBox6.Text.Trim()==""||textBox7.Text.Trim()==""||comboBox1.Text.Trim()=="")
{
MessageBox.Show("信息输入不完整,请重新输入","确定");
}
else
{
books.Bookid=textBox1.Text.Trim();
books.Bookname=textBox2.Text.Trim();
books.Booktype=comboBox1.Text.Trim();
books.Bookauthor=textBox5.Text.Trim();
books.Bookprice=textBox4.Text.Trim();
books.Bookpub=textBox3.Text.Trim();
books.Bookcontent=textBox7.Text.Trim();
books.Bookissue=textBox6.Text.Trim();
SqlCommandcm=bm.qurryByID(books.Bookid);
if(null!
=cm.ExecuteScalar())
{
MessageBox.Show("此图书已存在","确定");
}
else
{
inti=bm.addBook(books);
if(i!
=0)
MessageBox.Show("添加图书成功","确定");
}
}
总结
本系统用SQLServer2000做为后台数据库创建所需要的数据库和表,用C#语言进行连接,以及对数据库进行检索、添加和删除。
从最后设计出的测试结果来看,效果比较明显,检索迅速、查找方便、可靠性高、存储量大、信息利用率高。
该系统能够极大地提高图书馆管理的效率,优化图书馆的人力、物力,降低图书馆的管理成本,为企业人事管理提供帮助。
当然,要作为实际应用还有一些具体细节问题需要解决,还有一些功能需要改进。
例如:
没有实现多条记录的连锁删除和添加以及外部数据的导入功能;还没能实现学生借书时间的上限及超期罚款等功能。
在今后的工作、学习中我将认真总结经验教训,努力使自己成为一名技术过硬、工作严谨、思维活跃的工程人员,为提高人们的生活质量做出更大的贡献。
心得体会
我通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书馆 管理 系统 分析 设计 SQLServerword 版本