图书馆管理系统的分析与设计C#SQLServerword版本.docx

上传人:b****5 文档编号:3806341 上传时间:2022-11-25 格式:DOCX 页数:12 大小:138.95KB
下载 相关 举报
图书馆管理系统的分析与设计C#SQLServerword版本.docx_第1页
第1页 / 共12页
图书馆管理系统的分析与设计C#SQLServerword版本.docx_第2页
第2页 / 共12页
图书馆管理系统的分析与设计C#SQLServerword版本.docx_第3页
第3页 / 共12页
图书馆管理系统的分析与设计C#SQLServerword版本.docx_第4页
第4页 / 共12页
图书馆管理系统的分析与设计C#SQLServerword版本.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

图书馆管理系统的分析与设计C#SQLServerword版本.docx

《图书馆管理系统的分析与设计C#SQLServerword版本.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统的分析与设计C#SQLServerword版本.docx(12页珍藏版)》请在冰豆网上搜索。

图书馆管理系统的分析与设计C#SQLServerword版本.docx

图书馆管理系统的分析与设计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#语言进行连接,以及对数据库进行检索、添加和删除。

从最后设计出的测试结果来看,效果比较明显,检索迅速、查找方便、可靠性高、存储量大、信息利用率高。

该系统能够极大地提高图书馆管理的效率,优化图书馆的人力、物力,降低图书馆的管理成本,为企业人事管理提供帮助。

当然,要作为实际应用还有一些具体细节问题需要解决,还有一些功能需要改进。

例如:

没有实现多条记录的连锁删除和添加以及外部数据的导入功能;还没能实现学生借书时间的上限及超期罚款等功能。

在今后的工作、学习中我将认真总结经验教训,努力使自己成为一名技术过硬、工作严谨、思维活跃的工程人员,为提高人们的生活质量做出更大的贡献。

 

心得体会

我通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 自我管理与提升

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1