• 1.36 MB
  • 2022-04-22 13:50:57 发布

网站后台制作毕业论文.doc

  • 37页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'摘要网站后台制作毕业论文目录1.引言21.1开发意义21.2开发平台21.3客户端环境21.3.1硬件配置21.3.2系统要求32.系统需求分析32.1系统设计目的32.2系统功能描述33.系统总体设计43.1系统概要设计43.1.1系统的体系结构43.1.2系统总体结构框架53.1.3数据库设计53.1.4主要数据表结构设计64.系统实现74.1系统实现效果74.1.1登陆界面74.1.2首页界面104.1.3读者类型管理模块114.1.4读者档案管理模块13A添加读者信息和修改读者信息模块144.1.5图书档案管理模块17A添加图书信息和修改图书信息模块194.1.6图书借阅模块224.1.7图书续借模块254.1.8图书归还模块284.1.9修改密码305.结束语336.参考文献33 33 摘要33系统需求分析摘要:随着网络技术的高速发展,计算机应用的普及,利用计算机对图书馆的日常工作进行管理势在必行。虽然目前很多大型的图书馆已经有一整套比较完善的管理系统,但是在一些中小型的图书馆中,大部分工作仍需要由手工完成,工作起来效率比较低,管理员不能及时了解图书馆内各类图书的借阅情况,读者需要的图书难以在短时间内找到,不遍于动态及时地调整图书结构。为了更好地适应当前读者的借阅需求,解决手工管理中存在的许多弊端,越来越多的中小型图书馆正在逐步向计算机信息化管理转变。根据导师的任务书需求,本论文就其图书管理系统设计实现进行了分析探讨,首先概要性地介绍了数据库的基本理论,然后就该系统设计过程中,对设计要点的指导理论进行了叙述,最后介绍了该系统的功能模块划分,简要列举了各功能模块的功能。本系统的开发语言采用ASP.NET(C#),后台数据库采用SQLServer2005,在WindowsXP环境下运行。关键词:VS2005ASP.NET(C#)SQLServer200533 系统需求分析1.引言1.1开发意义图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅天数等用人工计算、手抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。基于这个问题,我认为有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。1.2开发平台操作系统:WindowsXP数据库:MicrosoftSQLServer2005系统开发工具:MicrosoftVisualStudio2005程序应用模式:B/S模式1.3客户端环境1.3.1硬件配置处理器(IntelP42.0以上)内存(512M或更大)能上连接内部网即可33 系统需求分析1.1.1系统要求MicrosoftWindowsXP操作系统MicrosoftIE6.0,360安全浏览器,搜狗浏览器或更高版2.系统需求分析2.1系统设计目的图书管理系统实现图书管理的网络化、自动化、高效化,通过本系统可以实现图书的管理、读者的管理以及管理员权限的设置等,实践证明,应用该系统可以提高图书管理方面工作的效率,节省人力资源,有利于推动图书管理的数字信息化进程。2.2系统功能描述管理员登陆界面1)读者管理读者类型管理的添加、修改、删除读者档案管理的添加、修改、删除2)图书管理图书档案管理的添加、修改、删除可以根据图书编号、书名、图书类型、作者进行查询3)更改口令修改当前管理员密码4)退出系统33系统总体设计33 系统总体设计1.系统总体设计1.1系统概要设计3.1.1系统的体系结构本系统使用业界比较流行通用的Browser/Server(B/S)网络架构,在网络中充分利用网络的带宽优势,服务器的访问速度优势,对于不同平台的计算机都提供了良好的支持,使本系统可以很方便地与Intranet和Internet连接,实现信息孤岛的整合,如图3-1所示:图3-1系统的体系结构图33 系统总体设计3.1.2系统总体结构框架根据图书管理系统的特点,可以将其分为首页、读者管理、图书管理、图书借还、系统设置、退出系统等6个部分,其中各个部分及其包括的具体功能模块,如图3-2所示:图书管理系统首页读者管理图书管理图书借还系统设置退出系统读者类型读者档案查询图书信息管理图书信息查询图书借阅查询图书借阅图书续借图书归还添加管理员修改密码图3-2图书管理系统总体结构框架图3.1.3数据库设计数据库系统设计数据库设计主要是进行数据库的逻辑设计,即将数据按一定的分类、分组系统和逻辑层次组织起来,是面向用户的。数据库设计时需要综合企业各个部门的存档数据和数据需求,分析各个数据之间的关系,按照数据库提供的功能和描述工具,设计出规模适当、正确反映数据关系、数据冗余少、存取效率高、能满足多种查询要求的数据模型。为了更好地组织数据和设计出实际应用数据库,应该注意如下问题:规范化地重组数据结构:对数据进行规范化表达,这在后面将会具体讨论。关系数据结构的建立:在进行了数据基本结构的规范化重组后,还必须建立整体数据的关系结构。这一步设计完成后数据库和数据结构设计工作基本完成,只待系统实现时将数据分析和数据字典的内容代入到所设计的数据整体关系结构中,一个规范化数据库系统结构就建立起来了。33 系统总体设计3.1.3主要数据表结构设计数据库中的主要数据表结构设计定义如下:bookInfo(图书信息表)表1表bookInfo用于保存与图书相关所有信息字段名数据类型长度主键否描述bookidvarchar50否图书编码bookNamevarchar50否图书名称typeIDint4否图书类型编号typeNamevarchar50否图书类型bookConvarchar100否出版社名称authorvarchar80否作者名称bookkucunint4否图书库存borrowSumint4否借阅次数borrowDayint4否借阅天数readerInfo(读者信息表)表2表readerInfo用于保存所有读者信息字段名数据类型长度主键否描述readeridvarchar50是读者编码readerNamevarchar50否读者名称sexchar10否读者性别readerTypeidvarchar50否读者类型编码dzzjTypevarchar50否证件类型dzzjNumbervarchar50否证件号码telvarchar50否联系电话nativarchar50否民族birthvarchar50否出生日期adressvarchar50否家庭住址beizhuvarchar50否备注borrowbookSumint10否借阅图书次数beizhuvarchar100否备注33 系统实现33系统实现readerType(读者类型信息表)表3表readerType用于保存所有读者类型信息字段名数据类型长度主键否描述idint4是类型编号typevarchar50否类型名称jienumvarchar50否可借数量users(管理员信息表)表4表用于保存所有管理员信息字段名数据类型长度主键否描述userIdint4是管理员编号namevarchar50否管理员名称pwdvarchar50否管理员密码1.系统实现1.1系统实现效果1.1.1登陆界面主要实现管理员登录和用户登录(1)登陆界面效果,如图4-1所示图4-1登陆界面效果图33 系统实现33系统实现(2)登陆功能相关代码://==============================登录按钮=========================//protectedvoidButton1_Click(objectsender,EventArgse){if(TextBox1.Text==""&&TextBox2.Text==""){Response.Write("alert("不能为空!");location="javascript:history.go(-1)"");}elseif(CheckBoxList1.Items[0].Selected==true){getcom(1);}else{getcom(2);}//==============================登录控制============================privatevoidgetcom(inti){SqlConnectioncon=tsdata.getcon();con.Open();SqlCommandcom=con.CreateCommand();switch(i){case1:com.CommandText="selectcount(*)fromuserswherename=""+TextBox1.Text+""andpwd=""+TextBox2.Text+""";intcount1=Convert.ToInt32(com.ExecuteScalar());//获取SQL语句的值强制转换成数值类型if(count1>0){Session["name"]=TextBox1.Text;Page.Response.Redirect("gliy/index.aspx");}else{Response.Write("alert("用户名或密码有误!");location="javascript:history.go(-1)"");return;}break;33 系统实现case2:com.CommandText="select*fromreaderInfowherereaderName=""+TextBox1.Text+""andreaderPwd=""+TextBox2.Text+""";intcount2=Convert.ToInt32(com.ExecuteScalar());if(count2>0){Session["readerName"]=TextBox1.Text;Page.Response.Redirect("duzhe/dz.aspx");}else{Response.Write("alert("用户名或密码有误!");location="javascript:history.go(-1)"");return;}break;}con.Close();}protectedvoidButton2_Click(objectsender,EventArgse){Response.Write("");}33 系统实现1.1.1首页界面实现图书被借阅的排行榜和读者借阅图书的排行榜(1)首页效果,如图4-2所示:图4-2首页效果图(2)首页模块功能相关代码:protectedvoidPage_Load(objectsender,EventArgse){SqlConnectionsqlcon=tsdata.getcon();SqlCommandcmd=newSqlCommand("selecttop5*frombookInfowhereborrowSum<>0orderbyborrowSumdesc",sqlcon);SqlDataAdapterda=newSqlDataAdapter(cmd);DataSetds=newDataSet();da.Fill(ds,"bookInfo");gvBookTaxis.DataSource=ds;gvBookTaxis.DataBind();SqlCommandcmd2=newSqlCommand("selecttop5*fromreaderInfowhereborrowbookSum<>0orderbyborrowbookSumdesc",sqlcon);SqlDataAdapterda2=newSqlDataAdapter(cmd2);DataSetds2=newDataSet();da2.Fill(ds2,"readerInfo");gvreaderTaxis.DataSource=ds2;gvreaderTaxis.DataBind();33 系统实现}protectedvoidgvreaderTaxis_RowDataBound(objectsender,GridViewRowEventArgse){if(e.Row.RowIndex!=-1)//判断GridView控件中是否有值{intid=e.Row.RowIndex+1;//将当前行的索引加上一赋值给变量ide.Row.Cells[0].Text=id.ToString();//将变量id的值传给GridView控件的每一行的单元格中}if(e.Row.RowType==DataControlRowType.DataRow){//设置鼠标悬停行的颜色e.Row.Attributes.Add("onMouseOver","Color=this.style.backgroundColor;this.style.backgroundColor="lightBlue"");e.Row.Attributes.Add("onMouseOut","this.style.backgroundColor=Color;");}}1.1.1读者类型管理模块实现对读者类型的添加、修改、删除(1)读者类型管理模块效果图,如图4-3所示图4-3读者类型效果图33 系统实现(2)读者类型模块相关代码protectedvoidLinkButton3_Click(objectsender,EventArgse){Panel1.Visible=true;}protectedvoidButton1_Click(objectsender,EventArgse){//调用自定义isreaderType方法判断读者类型是否已经存在if(isreaderType()){Response.Write("");}else{//判断是否为空if(TextBox1.Text!=""&&TextBox2.Text!=""&&TextBox3.Text!=""){SqlConnectioncn=tsdata.getcon();intsum=0;SqlCommandcmd=newSqlCommand("insertintoreaderType(id,type,jieNum)values(""+TextBox1.Text+"",""+TextBox2.Text+"",""+TextBox3.Text+"")",cn);cn.Open();if(cmd.ExecuteNonQuery()>0){Response.Write("");GridViewBind();TextBox1.Text="";TextBox2.Text="";TextBox3.Text="";Panel1.Visible=false;}else{Response.Write("");}cn.Close();}else{Response.Write("");}}33 系统实现1.1.1读者档案管理模块实现对读者档案信息的添加、修改、删除(1)读者信息管理模块效果图,如图4-4所示图4-4读者档案效果图(2)读者信息管理模块相关代码:publicvoidbindReaderInfo(){stringsql="select*fromreaderInfo,ReaderTypewherereaderInfo.readerTypeid=ReaderType.id";GridView1.DataSource=tsdata.dataset(sql);GridView1.DataKeyNames=newstring[]{"readerid"};GridView1.DataBind();}protectedvoidGridView1_RowDeleting(objectsender,GridViewDeleteEventArgse){stringid=GridView1.DataKeys[e.RowIndex].Value.ToString();stringsql="deletereaderInfowherereaderid=""+id+""";tsdata.execSQL(sql);bindReaderInfo();}33 系统实现A添加读者信息和修改读者信息模块实现对读者信息的添加、修改(1)添加读者信息和修改读者信息模块效果图,如图4-5,4-6所示图4-5添加读者信息面效果图图4-6修改读者信息效果图33 系统实现(2)添加读者信息和修改读者信息模块相关代码:publicpartialclassgliy_addreaderInfo:System.Web.UI.Page{privatestringid="";protectedvoidPage_Load(objectsender,EventArgse){id=Request.QueryString["readerid"].ToString();//获取对图书操作的方式if(!IsPostBack)//判断是否是首次加载{bindDdlReaderType();if(id!="add")//判断是否是添加操作{this.Title="修改读者信息";Label1.Text="修改读者信息";btnSave.Text="修改";bindReaderInfo();}else{this.Title="添加读者信息";Label1.Text="添加读者信息";btnSave.Text="添加";}}}protectedvoidbtnSave_Click(objectsender,EventArgse){stringreaderid=txtReaderid.Text;stringreaderName=txtReaderName.Text;stringreaderPwd=txtReaderid.Text;stringsex="";if(radbtnMan.Checked){sex="男";}else{sex="女";}stringreaderTypeid=DropDownList2.SelectedValue;stringdzzjType=ddlCertificateType.SelectedValue;stringdzzjNumber=txtzjNum.Text;33 系统实现stringtel=txtTel.Text;stringnati=DropDownList1.SelectedValue;stringbirth=TextBox1.Text;stringadress=TextBox2.Text;stringbeizhu=txtRemark.Text;stringsqls="";if(id=="add"){//调用自定义isreaderid方法判断读者是否已经存在if(isreaderid()){Response.Write("");}else{intborrowbookSum=0;sqls="insertintoreaderInfovalues(""+readerid+"",""+readerName+"",""+readerPwd+"",""+sex+"",""+readerTypeid+"",""+dzzjType+"",""+dzzjNumber+"",""+tel+"",""+nati+"",""+birth+"",""+adress+"",""+beizhu+"",""+borrowbookSum+"")";}}else{sqls="updatereaderInfosetreaderName=""+readerName+"",sex=""+sex+"",readerTypeid=""+readerTypeid+"",dzzjType=""+dzzjType+"",dzzjNumber=""+dzzjNumber+"",tel=""+tel+"",nati=""+nati+"",birth=""+birth+"",adress=""+adress+"",beizhu=""+beizhu+""wherereaderid=""+readerid+""";}if(tsdata.execSQL(sqls)){Response.Write("");}else{Response.Write("");}33 系统实现4.1.5图书档案管理模块实现对图书档案信息的添加、修改、删除、查询(1)图书档案管理模块效果图,如图4-7所示图4-7图书档案效果图(2)图书档案管理模块相关代码:publicpartialclassgliy_Editbook:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){bindbookInfo();}}publicvoidbindbookInfo(){stringsql="select*frombookInfo";GridView1.DataSource=tsdata.dataset(sql);GridView1.DataKeyNames=newstring[]{"bookid"};33 系统实现GridView1.DataBind();}protectedvoidButton1_Click(objectsender,EventArgse){if(TextBox1.Text!=""){stringsqlselect="select*frombookInfowherebookid=""+TextBox1.Text+""";DataSetds=tsdata.dataset(sqlselect);if(ds.Tables[0].Rows.Count>0){GridView1.DataSource=ds;GridView1.DataKeyNames=newstring[]{"bookid"};GridView1.DataBind();}}else{Response.Write("");}}protectedvoidGridView1_RowDeleting(objectsender,GridViewDeleteEventArgse){stringid=GridView1.DataKeys[e.RowIndex].Value.ToString();stringsql="deletebookInfowherebookid=""+id+""";tsdata.execSQL(sql);bindbookInfo();}33 系统实现A添加图书信息和修改图书信息模块实现对图书信息的添加、修改(1)添加图书信息和修改图书信息效果图,如图4-8、4-9所示图4-8添加图书信息效果图33 系统实现图4-9修改图书信息效果图(2)添加图书信息和修改图书信息相关代码:publicpartialclassgliy_addbookInfo:System.Web.UI.Page{privatestringid="";protectedvoidPage_Load(objectsender,EventArgse){id=Request.QueryString["bookid"].ToString();//获取对图书操作的方式if(!IsPostBack)//判断是否是首次加载{f(id!="add")//判断是否是添加操作{this.Title="修改图书信息";Label1.Text="修改图书信息";btnSave.Text="修改";bindBookInfo();}else{this.Title="添加图书信息";Label1.Text="添加图书信息";btnSave.Text="添加";}}}protectedvoidbtnSave_Click(objectsender,EventArgse){stringsql="";if(id=="add"){if(TextBox1.Text!=""&&TextBox2.Text!=""&&TextBox3.Text!=""&&TextBox4.Text!=""&&TextBox5.Text!=""&&TextBox6.Text!=""&&TextBox7.Text!=""){if(isbookid()){Response.Write("");}else{intborrowSum=0;sql="insertintobookInfo(bookid,bookName,author,bookCon,typeID,typeName,bookkucun,borrowSum,borrowDay)values(""+TextBox1.Text+"",""+TextBox2.Text+"",""+TextBox3.Text+"",""+33 系统实现TextBox4.Text+"",""+TextBox5.Text+"",""+TextBox6.Text+"",""+TextBox7.Text+"",""+borrowSum+"",""+TextBox8.Text+"")";}}else{Response.Write("");}}else{sql="updatebookInfosetbookName=""+TextBox2.Text+"",author=""+TextBox3.Text+"",bookCon=""+TextBox4.Text+"",typeID=""+TextBox5.Text+"",typename=""+TextBox6.Text+"",bookkucun=""+TextBox7.Text+"",borrowDay=""+TextBox8.Text+""wherebookid=""+TextBox1.Text+""";}if(tsdata.execSQL(sql)){Response.Write("");}else{Response.Write("");}}publicvoidbindBookInfo(){stringsql="select*frombookInfowherebookid=""+id+""";SqlDataReadersdr=tsdata.getRow(sql);sdr.Read();//读取一条记录TextBox1.Text=sdr["bookid"].ToString();TextBox2.Text=sdr["bookName"].ToString();TextBox3.Text=sdr["author"].ToString();TextBox4.Text=sdr["bookCon"].ToString();TextBox5.Text=sdr["typeID"].ToString();TextBox6.Text=sdr["typeName"].ToString();TextBox7.Text=sdr["bookkucun"].ToString();TextBox8.Text=sdr["borrowDay"].ToString();33 系统实现}4.1.5图书借阅模块实现读者借阅图书的动能,当输入读者编号后确定且在文本框中显示读者信息,接着输入图书编号查询出图书信息并借阅该图书(1)图书借阅模块界面,如图4-10所示图4-10图书借阅效果图(2)图书借阅模块相关代码publicpartialclassgliy_bookBorrow:System.Web.UI.Page{protectedvoidButton2_Click(objectsender,EventArgse){if(Convert.ToInt32(TextBox7.Text.Trim())>0){if(TextBox8.Text.Trim()!=""){stringbookid=TextBox8.Text;stringsql="select*frombookInfowherebookid=""+bookid+""";DataSetds=tsdata.dataset(sql);if(ds.Tables[0].Rows.Count>0){GridView1.DataSource=ds;33 系统实现GridView1.DataKeyNames=newstring[]{"bookid"};GridView1.DataBind();}else{Response.Write("");}}else{Response.Write("");}}else{Response.Write("");}//实现图书借阅功能protectedvoidGridView1_SelectedIndexChanging(objectsender,GridViewSelectEventArgse){stringbookid=GridView1.DataKeys[e.NewSelectedIndex].Value.ToString();stringsql="select*frombookInfowherebookid=""+bookid+""";SqlDataReadersdr=tsdata.getRow(sql);sdr.Read();if(Convert.ToInt32(sdr["bookkucun"])>0){stringsqlborrow="selectcount(*)frombookBorrowwherebookid=""+TextBox8.Text+""andreaderid=""+TextBox1.Text+""";if(tsdata.seleSQL(sqlborrow)==0){intborrowDay=Convert.ToInt32(sdr["borrowDay"]);stringbookName=sdr["bookName"].ToString();stringauthor=sdr["author"].ToString();stringborrowTime=DateTime.Now.Date.ToShortDateString();stringreaderid=TextBox1.Text;stringreturnTime=DateTime.Now.Date.AddDays(borrowDay).ToShortDateString();stringreaderName=TextBox2.Text;string[]sqlt=newstring[3];sqlt[0]="insertintobookBorrowvalues(""+bookid+"",""+bookName+"",""+author+"",""+borrowTime+"",""+returnTime+"",""+readerid+"",""+readerName+"")";sqlt[1]="updatebookInfosetborrowSum33 系统实现=borrowSum+1,bookkucun=bookkucun-1wherebookid=""+bookid+""";sqlt[2]="updatereaderInfosetborrowbookSum=borrowbookSum+1wherereaderid=""+readerid+""";if(tsdata.aaTransaction(sqlt)){bindReaderInfo();GridView1.DataBind();Response.Write("");GridViewBind();}else{Response.Write("");GridViewBind();}}else{Response.Write("");GridViewBind();}}else{Response.Write("");}}33 系统实现4.1.5图书续借模块实现读者借阅图书的动能,当输入读者编号后确定且在文本框中显示读者信息,接着输入图书编号查询出图书信息并续借该图书(1)图书续借模块界面,如图4-11所示图4-11图书续借效果图(2)图书续借模块相关代码publicpartialclassgliy_bookRenew:System.Web.UI.Page{protectedvoidButton1_Click(objectsender,EventArgse){bindReaderInfo();//调用自定义方法显示读者信息}publicvoidbindReaderInfo(){stringreaderid=TextBox1.Text;stringreadersql="select*fromreaderInfowherereaderid=""+readerid+""";//创建SQl语句在读者信息表中查询符合读者编码条件的记录SqlDataReadersdr=tsdata.getRow(readersql);33 系统实现if(sdr.Read())//读取一条记录{TextBox2.Text=sdr["readerName"].ToString();//显示读者姓名TextBox3.Text=sdr["sex"].ToString();TextBox4.Text=sdr["dzzjType"].ToString();TextBox5.Text=sdr["dzzjNumber"].ToString();stringTypeSql="select*fromReaderTypewhereid="+sdr["readerTypeid"].ToString();SqlDataReaderTypesdr=tsdata.getRow(TypeSql);Typesdr.Read();TextBox6.Text=Typesdr["type"].ToString();intborrowNum=Convert.ToInt32(Typesdr["jieNum"]);stringselSql="selectcount(*)frombookBorrowwherereaderid=""+readerid+""";intaNum=tsdata.seleSQL(selSql);TextBox7.Text=Convert.ToString(borrowNum-aNum);stringsql="select*frombookBorrowwherereaderid=""+TextBox1.Text+""";//创建SQL语句在图书借阅表中查询符合读者编码条件未归还图书的记录bindGridView(sql);//调用自定义方法显示已借阅未归还图书信息Button2.Enabled=true;}elseResponse.Write("");}protectedvoidButton2_Click(objectsender,EventArgse){//判断图书条形码是否为空if(TextBox8.Text.Trim()!=""){stringbookid=TextBox8.Text;//获取图书条形码//创建SQL语句在图书借阅表中查询符合读者编码条件和图书编码条件未归还图书的记录stringsql="select*frombookBorrowwherebookid=""+bookid+""andreaderid=""+TextBox1.Text+""";bindGridView(sql);//调用自定义方法显示已借阅未归还图书信息}else{Response.Write("");}}publicvoidbindGridView(stringsql)33 系统实现{GridView1.DataSource=tsdata.getRow(sql);//获取数据源GridView1.DataKeyNames=newstring[]{"bookid"};//设置主键GridView1.DataBind();//绑定GridView控件}protectedvoidGridView1_SelectedIndexChanging(objectsender,GridViewSelectEventArgse){//获取当前图书编码stringbookid=GridView1.DataKeys[e.NewSelectedIndex].Value.ToString();stringborrowTime=DateTime.Now.Date.ToShortDateString();stringsql="select*frombookInfowherebookid=""+bookid+""";SqlDataReadersdr=tsdata.getRow(sql);sdr.Read();//读取一条记录intborrowDay=Convert.ToInt32(sdr["borrowDay"]);//获取可借图书时间stringreturnTime=DateTime.Now.Date.AddDays(borrowDay).ToShortDateString();//创建SQL语句更新图书借阅信息表中应还图书天数stringupdateSql="updatebookBorrowsetborrowTime=""+borrowTime+"",returnTime=""+returnTime+""wherebookid=""+bookid+""andreaderid=""+TextBox1.Text+""";if(tsdata.execSQL(updateSql))//判断更新是否成功{Response.Write("");//创建SQL语句在图书借阅表中查询符合读者编码条件和图书编码条件的未归还图书的记录stringselSql="select*frombookBorrowwherebookid=""+bookid+""andreaderid=""+TextBox1.Text+""";bindGridView(selSql);}else{Response.Write("");}}protectedvoidGridView1_RowDataBound(objectsender,GridViewRowEventArgse){if(e.Row.RowType==DataControlRowType.DataRow){//设置鼠标悬停行的颜色e.Row.Attributes.Add("onMouseOver","Color=this.style.backgroundColor;this.style.backgroundColor="lightBlue"");33 系统实现e.Row.Attributes.Add("onMouseOut","this.style.backgroundColor=Color;");}4.1.5图书归还模块实现读者借阅图书的动能,当输入读者编号后确定且在文本框中显示读者信息,接着输入图书编号查询出图书信息并归还该图书(1)图书归还模块界面,如图4-12所示图4-12图书归还效果图(2)图书归还模块相关代码protectedvoidButton1_Click(objectsender,EventArgse){stringreaderid=TextBox1.Text;stringreaderSql="select*fromreaderInfowherereaderid=""+readerid+""";SqlDataReadersdr=tsdata.getRow(readerSql);if(sdr.Read()){TextBox2.Text=sdr["readerName"].ToString();TextBox3.Text=sdr["sex"].ToString();TextBox4.Text=sdr["dzzjType"].ToString();TextBox5.Text=sdr["dzzjNumber"].ToString();stringreaderTypeSql="select*fromreaderTypewhereid="+33 系统实现sdr["readerTypeid"].ToString();SqlDataReadertypeSdr=tsdata.getRow(readerTypeSql);typeSdr.Read();TextBox6.Text=typeSdr["type"].ToString();intborrowNum=Convert.ToInt32(typeSdr["jieNum"]);stringselSql="selectcount(*)frombookBorrowwherereaderid=""+readerid+""";intalreadyNum=tsdata.seleSQL(selSql);TextBox7.Text=Convert.ToString(borrowNum-alreadyNum);stringsql="select*frombookBorrowwherereaderid=""+TextBox1.Text+""";bindGridView(sql);}elseResponse.Write("");}protectedvoidButton2_Click(objectsender,EventArgse){if(TextBox8.Text.Trim()!=""){stringbookid=TextBox8.Text;stringsql="select*frombookBorrowwherebookid=""+bookid+""andreaderid=""+TextBox1.Text+""";bindGridView(sql);}else{Response.Write("");}}publicvoidbindGridView(stringsql){GridView1.DataSource=tsdata.getRow(sql);GridView1.DataKeyNames=newstring[]{"bookid"};GridView1.DataBind();}protectedvoidGridView1_SelectedIndexChanging(objectsender,GridViewSelectEventArgse){//获取当前选择图书条形码stringbookid=GridView1.DataKeys[e.NewSelectedIndex].Value.ToString();//创建SQL语句更新图书借阅表中是否归还字段string[]sqlt=newstring[2];sqlt[0]="deletebookBorrowwherebookid=""+bookid+""";33 系统实现sqlt[1]="updatebookInfosetbookkucun=bookkucun+1wherebookid=""+bookid+""";if(tsdata.aaTransaction(sqlt))//判断是否归还成功{Response.Write("");stringsql="select*frombookBorrowwherereaderid=""+TextBox1.Text+""";bindGridView(sql);TextBox8.Text=null;//将显示图书条形码设置为空}else{Response.Write("");}}4.1.5修改密码实现操作者对密码的修改(1)修改密码界面,如图4-13所示33 系统实现图4-13修改密码效果图(2)修改密码相关代码publicpartialclassgliy_gxgmm:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){TextBox1.Text=Session["name"].ToString();}protectedvoidButton1_Click(objectsender,EventArgse){stringoldpwd=TextBox2.Text.Trim();stringnewpwd=TextBox3.Text.Trim();stringvertifypwd=TextBox4.Text.Trim();if(oldpwd==""||newpwd==""||vertifypwd==""){Response.Write("");return;}else{SqlCommandcmd;SqlDataReadersr;if(newpwd!=vertifypwd){Response.Write("");return;}else{SqlConnectionconn=tsdata.getcon();try{conn.Open();cmd=newSqlCommand("select*fromuserswherename=""+TextBox1.Text+""andpwd=""+oldpwd+""",conn);sr=cmd.ExecuteReader();boolsuccess=sr.HasRows;sr.Close();if(!success){33 系统实现Response.Write("");return;}else{cmd.CommandText="updateuserssetpwd=""+newpwd+""wherename=""+TextBox1.Text+""";cmd.ExecuteNonQuery();Response.Write("");return;}}catch(SqlExceptionex){33结束语}finally{conn.Close()33结束语}}33 结束语1.结束语随着社会信息量的与日俱增,作为信息存储的主要媒体之一图书,数量、规模比以往任何时候都大的多,不论个人还是图书管理部门都需要使用方便而有效的方式来管理自己的书籍。在计算机日益普及的今天,对个人而言若采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多。对图书管理部门而言,以前单一的手工检索已不能满足人们的要求,为了便于图书资料的管理需要有效的图书管理软件。系统是在MicrosoftVisualStudio2005.NET集成开发环境下,采用SQLServer2005数据库、ASP.NET2.0技术,实现语言完全采用C#语言的软件成品。由于开发时间和能力所限,本系统仍然存在着一些缺陷:系统中一些模块的功能不够完善,例如,系统没有显示图书借阅、读者归还等模块的内容,系统查询模块没有实现图书借阅、读者归还的查询信息。6.参考文献[1]胡锦丽.数据库原理及应用案例教程(SQLServer版)[M].北京大学出版社,2008.8[2]房大伟.ASP.NET开发典型模块大全[M].人民邮电出版社,2008.8[3]郑伟.asp.net程序设计与软件项目实训[M].清华大学出版社,2008.8[4]陈娴,刘志宝,李岱.ASP.NET项目开发实践[M].北京:中国铁道出版社,2005.5[5]郭胜,秦岸,马丽.C#.NET程序设计教程[M].清华大学出版社,2003.2[6]孙维煜等.C#案例开发[M].北京:中国水利水电出版社,2005.5[7]赵斌,张滨义,董清波译.ASP.NET从入门到精通[M].人民邮电出版社,2002.133'