实现步骤我们在SQLServer的企业管理器中新建一个数据库,名为:BookStore。在本数据库下建立图书管理系统所需要的数据表。首先,我们建立一张用户表,该表用于存储不同身份的用户数据,如表所示。字段名数据类型备注Codevarchar(10)用户证件号,主键userdispnamevarchar(32)用户昵称UserNamevarchar(32)用户姓名passwordVarchar(32)用户密码fpasswordvarchar(16)用户界面显示的用户密码,始终为’******’typechar(1)用户类型U:普通用户S:管理员存储图书信息的表,如表所示,用于存放图书管理系统中所有已录入的书目信息。字段名数据类型备注CodeVarchar(32)图书编号,主键Namevarchar(32)书名sourcecodevarchar(32)图书源码Selfcodevarchar(32)自编代码isbnvarchar(32)ISBN号yyearVarchar(32)出版年份versionVarchar(32)图书版数authorvarchar(32)作者priceint图书价格presscodeVarchar(32)出版社编码loccodevarchar(32)书架号memovarchar(200)备注Numint在库数量存储图书借阅信息的表,如表所示。改表存放了所有读者的借阅信息,借书和还书都对该表进行操作。字段名数据类型备注Usercodevarchar(32)用户证件号BookcodeVarchar(32)图书编号statusint借阅状态BorrowDateVarchar(10)借阅时间returnDateVarchar(10)归还时间存储出版社信息表,如表所示。该表存放了系统中的所有权限情况,本系统中只有四类权限:学生、老师、普通管理员和总管理员。字段名数据类型备注Codevarchar(10)出版社编号abbrNamevarchar(32)简略名称fullnamevarchar(32)出版社全称此外,我们的数据库系统中还存在一个存储过程(Procedure),名为dt_bookInfo,该存储过程用于返回图书馆中不同种类书籍的数量。图书管理系统实现功能分为如下三个模块:“用户管理”模块在本模块中,图书管理员可以输入用户编号、用户姓名、用户昵称和用户密码创建一个图书管理系统的新用户,该用户默认为普通用户。同时,图书馆管理员也可以查看当前系统中所有用户一览信息。该用户一览界面上提供了三个按钮:“编辑”、“修改密码”、“删除”,分别对应着:修改用户基本信息、修改用户密码和删除该用户功能。管理员登入系统后,单击这些按钮即可方便地实现对注册用户的管理操作。“图书检索和借还书”模块本模块提供给普通读者查询书目信息的功能,提供浏览器模式的图书信息检索工具。检索时可按书名、ISBN、作者、出版社、备注进行任意条件查询。本模块中提供的检索功能是一个模糊查询。本页面中,对检索结果进行了分页显示,每页显示10条数据,在网页上提供了:“首页”、“上页”、“下页”、“尾页”和页码数字。用户可以方便地快速定位到某一页。本模块还提供了为某读者借阅书籍的功能,首先输入检索条件检索需要借阅的书籍,待检索到的书籍在库数量不为0时,在页码上输入读者证件号,即可对根据检索条件检索出来的书籍进行借阅。如果检索到的书籍在库数量为0,此时则无法借阅相关书籍。页面上会提示在库数量为0时无法借阅。本模块同时还提供了图书归还功能,首先根据读者证件号,查阅该读者当前正在借阅的书籍一览。在页面上,当前正在借阅的书籍一览以表格的形式显示出来。每行的最后一列提供了一个“归还”按钮,管理员单击该按钮即可对该本书籍进行归还操作。“图书管理”模块:图书管理模块主要提供了针对图书馆藏书的管理功能。该模块提供了添加图书的功能,管理员可以在本模块上录入图书馆引进的新书。图书维护:管理员实现对图书的维护,通过检索特定的书籍,管理员可以对该书籍的基本信息进行修改操作,如修改图书名称、在库数量、作者、定价等等。本模块还提供了图书销毁功能,管理员通过条件检索,获得待销毁图书一览信息,直接在页面上单击一个“删除”按钮即可完成对该图书的销毁操作。系统框架图图书管理系统的系统框架图如下所示:系统展示图(运行之后)登陆界面:图书管理系统用户管理借书还书图书管理新增用户修改用户图书检索图书借阅图书归还新增图书销毁图书修改图书用户管理界面:图书管理-新增图书管理-修改图书管理销毁查询借阅归还关键代码:数据库连接字符串获取代码010SqlConnectionconn;conn=newSqlConnection(System.Configuration.ConfigurationManager.AppSettings[connection])2;第1行声明一个SqlConnection对象conn,用于连接SQLServer数据库。第2行从Web.config配置文件中读取Key为Connection的字符串,根据该字符串生成一个SqlConnection对象。接下来我们看一下web.config文件内容:该文件是一个XML文件,我们可以看到Key为Connection的标记的Value正是一个SQLServer连接字符串。?xmlversion=1.0standalone=yes?configurationxmlns==SystemNamevalue=图书管理系统/addkey=Connectionvalue=Server=(local);uid=sa;pwd=asdf1234;database=bookstore/addkey=SocutDataLinkvalue=Server=(local);uid=sa;pwd=asdf1234;database=bookstore//appSettingssystem.web!--customErrorsmode=OndefaultRedirect=~/error.htm/--compilationdefaultLanguage=c#debug=trueassembliesaddassembly=System.Design,Version=2.0.0.0,Culture=neutral,PublicKeyToken=B03F5F7F11D50A3A//assemblies/compilationtraceenabled=false/globalizationfileEncoding=gb2312requestEncoding=gb2312responseEncoding=gb2312//system.web/configuration数据以表格形式显示到页面代码在图书管理系统中,我们随处可见数据表中的数据以表格的形式显示在网页上,这是通过一个DataGrid控件来实现的。以用户信息为例,该页面是userinfo.aspx,表格相关代码如下:asp:DataGridID=DataGrid1runat=serverAllowPaging=TrueAllowSorting=TrueAutoGenerateColumns=FalseBorderColor=BlackCellPadding=2font-name=verdanaFont-Names=verdanaFont-Size=8ptHeaderStyle-BackColor=#F8FAFCWidth=100%OnCancelCommand=Grid1_CancelOnEditCommand=Grid1_EditOnItemCommand=Grid1_ModOnPageIndexChanged=Grid1_PageIndexChangedOnUpdateCommand=Grid1_UpdatePageSize=10OnItemDataBound=DataGrid1_ItemDataBoundOnDeleteCommand=DataGrid1_DeleteCommandHeaderStyleBackColor=#F8FAFCFont-Bold=TrueHorizontalAlign=CenterVerticalAlign=Middle/PagerStyleFont-Bold=TrueFont-Names=宋体ForeColor=BlueHorizontalAlign=RightMode=NumericPagesNextPageText=下一页PrevPageText=上一页/EditItemStyleBackColor=#E9F0F8/Columnsasp:BoundColumnDataField=CodeHeaderText=用户编码ReadOnly=True/asp:BoundColumnasp:BoundColumnDataField=userdispNameHeaderText=用户名称/asp:BoundColumnasp:BoundColumnDataField=usernameHeaderText=登录名称/asp:BoundColumnasp:BoundColumnDataField=fpasswordHeaderText=登录密码ReadOnly=True/asp:BoundColumnasp:EditCommandColumnButtonType=LinkButtonCancelText=取消EditText=编辑HeaderText=编辑UpdateText=更新/asp:EditCommandColumnasp:ButtonColumnCommandName=modipwdHeaderText=修改密码Text=修改密码/asp:ButtonColumnasp:ButtonColumnCommandName=DeleteHeaderText=删除Text=删除/asp:ButtonColumn/Columns/asp:DataGrid上表的代码中,标签asp:BoundColumn对应到查询SQL语句的一个字段,而asp:EditCommandColumn则对应编辑命令、同理asp:ButtonColumn对应于一个按钮命令,如删除和修改密码。我们在标签asp:DataGrid中注册了几个处理事件,如下:OnCancelCommand=Grid1_CancelOnEditCommand=Grid1_EditOnItemCommand=Grid1_ModOnPageIndexChanged=Grid1_PageIndexChangedOnUpdateCommand=Grid1_UpdatePageSize=10OnItemDataBound=DataGrid1_ItemDataBoundOnDeleteCommand=DataGrid1_DeleteCommand这些事件分别对应于后台代码文件中的函数,此处不再赘述,仅仅分析一下填充该DataGrid的代码:010203publicvoidBindGrid(){SqlDataAdapterdtcmd=null;04050607080910111213141516171819202122232425262728293031323334353637SqlDataReaderdataR=null;DataTabledt=newDataTable();stringstr2=selectcount(*)asnumsfromuserinfosheet;cmd=newSqlCommand(str2,conn);conn.Open