资源描述
基于C#图书馆管理系统实现及设计
小组:二组
成员:满光菊(0904120227)
谭美玲(0904120233)
李玉梅(0904120220)
杨 杨(0904120248)
扈灯洲(0904120207)
陈传恒(0904120201)
专 业:软件技术
班 级:P09软件二班
指导老师:李 锋
目录
中文摘要 1
1.前言 3
2.开发工具介绍 3
2.1SQL SERVER 2000 3
2.2 ASP.NET 4
3.图书馆管理系统需求分析 5
3.1图书馆管理员需求 5
3.2读者需求 7
3.3性能需求 7
4.图书馆管理系统可行性分析 8
4.1结构选择 8
4.2技术可行性 8
4.3经济可行性 9
4.4操作环境及运行环境 9
5.图书馆管理系统设计 9
5.1E-R图分析及设计 9
5.1.1设计局部ER模式 9
5.1.2设计全局ER模式 10
5.2数据表创建 13
5.3系统设计模块 17
6.图书馆管理系统开发 17
6.1读者登录界面设计 17
6.2预约图书界面设计 23
6.3催还图书界面设计 25
6.4 图书馆总管理员 25
6.5书库管理员 27
7.总结 28
参考文献 29
致谢 30
33 / 35
中文摘要
随着科技发展和社会进步,计算机已成为人们生活和工作中得力助手。特别是现代InternetWeb技术发展大大地推动了社会各个方面发展。设计一个现代图书馆管理系统势在必行。
图书馆管理系统是常用信息管理系统之一,它实现主要由两部分组成:数据库建立及维护和前台应用程序开发。数据库要求非常强一致性及完整性以及安全性,而前台应用程序则要求功能实现完善,简单易用。SQL server2005具有比较完善功能。而Visual C#.NET是专门针对Microsoft.NET战略而推出语言,它对.NET Framework和ASP.NET具有最为全面支持。综合各个方面选择C#作为程序设计语言和SQL server 2005数据库。通过对中小型图书馆需求分析,实现了对图书馆管理系统功能模块划分,数据库模式分析,并进一步设计了数据库结构和应用程序。由此得到了一个基本满足读者,图书馆管理员和高级管理者需求图书馆系统。
关键词:图书馆管理系统,C#.NET,SQL server 2005数据库
1. 前言
当今时代是飞速发展信息时代。在各行各业中离不开信息处理,计算机被广泛应用于信息管理系统环境。计算机最大好处在于利用它能够进行信息管理,使用计算机进行信息控制,不仅提高了工作效率,而且大大提高了其安全性。尤其对于复杂信息管理,计算机能够充分发挥它优越性。计算机进行信息管理及信息管理系统开发密切相关,系统开发是系统管理前提。本系统就是为了管理好图书馆信息而设计。
图书馆作为一种信息资源集散地,图书和用户借阅资料繁多,包含很多信息数据管理,现今,有很多中小型图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。根据调查得知,他们以前对信息管理主要方式是基于文本、表格等纸介质手工处理,对于图书借阅情况(如借书天数、超过限定借书时间天数)统计和核实等往往采用对借书卡人工检查进行,对借阅者借阅权限、以及借阅天数等用人工计算、手抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总来说,缺乏系统,规范信息管理手段。尽管有图书馆有计算机,但是尚未用于信息管理,没有发挥它效力,资源闲置比较突出,这就是管理信息系统开发基本环境。
随着计算机技术不断发展,计算机应用于各大领域,并给人们生活带来了极大便利,图书馆管理信息系统亦是如此。以往图书馆管理信息系统由于缺乏适当软件而给其工作带来了很多不便。本论文所介绍图书馆管理信息系统就是为了使图书管理工作规范化,系统化,程序化,避免图书管理随意性,提高信息处理速度和准确性,能够及时、准确、有效查询和修改图书情况。
2.开发工具介绍
2.1 SQL SERVER 2000
SQL Server 2000 是Microsoft 公司推出SQL Server 数据库管理系统一个版本。该版本继承了SQL Server 7.0 版本优点同时又比它增加了许多更先进功能,具有使用方便,可伸缩性好及相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 膝上型电脑到运行Microsoft Windows 2000 大型多处理器服务器等多种平台使用。
2.2 C#简介
C sharp(音标 [ʃɑ:p] )(又被简称为"C#")是微软公司在二OOO年六月发布一种新编程语言,并定于在微软职业开发者论坛(PDC)上登台亮相.C#是微软公司研究员Anders Hejlsberg最新成果.C#看起来及Java有着惊人相似;它包括了诸如单一继承,界面,及Java几乎同样语法,和编译成中间代码再运行过程.但是C#及Java有着明显不同,它借鉴了Delphi一个特点,及COM(组件对象模型)是直接集成,而且它是微软公司.NET windows网络框架主角。
3.图书馆管理系统需求分析
本系统主要实现图书录入,查询等功能,采用面向对象分析方法对图书馆管理系统功能需求进行划分,可将需求划分为:管理员对功能需求和读者对功能需求两大部分。具体列举如下
3.1 图书馆管理员需求
通过详细分析可知,管理员对功能需求又可以分为图书馆总管和书库管理员对各自功能需求。由于系统开发总体任务是实现各种信息系统化、规范化和自动化。所以图书馆总管对系统需要完成功能有:读者信息管理、图书信息管理、书库管理员管理等。书库管理员功能主要为:出借图书、归还图书操作及自己密码修改等功能。
对读者信息添加: 当有新读者需要加入到图书馆管理系统中时,图书馆总管就要对读者各种信息进行集体录入。此外由于我们所做图书馆管理系统读者主要针对是学校学生,故我们录入主要是学生各种信息,包括读者条形码、编号、读者姓名、读者性别、读者类型、出生日期、有效证件等。其中读者编号可以是学生入学时学号,唯一性。权限级别在下面数据表中我们可以看到。
读者信息查询、修改和删除: 当图书馆总管需要查询某个读者基本信息和借阅信息时,他们在服务端可以通过学号或者姓名可以找到这些信息,在找到后可以对这些基本信息进行修改和保存。另外对于删除功能则为,当某些学生快要毕业了,图书馆管理人员就要对这些读者在图书馆中一些基本信息进行删除掉,在这个删除过程中,图书馆管理人员主要是进行模糊查找,找到学生编号前面年份即可,然后可以很方便、快捷地进行数据删除功能。
对图书信息录入: 由于图书馆在每年都要购买许多新书,所以对这些新买新书进行编号添加到图书馆管理系统中将是一个非常巨大工程,因此在图书录入过程中包含了图书一些基本信息,有:条形码、图书编号、图书名称、图书类型、图书作者、图书出版社、ISBN编号、 出版日期、图书价格、图书所属书库、图书到馆日期等信息。
图书信息查询、修改及删除: 在这个过程中,我们是为了及时了解图书在馆最新情况,图书馆管理员首先可以通过查询找到某一类编号图书,然后查看它们在馆信息,另外在查找到该图书后可以修改及保存图书修改后信息,再一个重要功能就为当某些图书在借阅过程中破损或遗失什么,我们暂时就要对该图书进行删除或者是修改该图书,只有这样及时修改图书信息,读者在借阅过程中就可以很方便找到所需要图书,省去了许多不必要麻烦,实现了快捷目标。
对书库管理员管理: 在该过程中,主要是对新到书库管理员进行添加,修改和删除等操作。这些操作我们可以仿照在对读者操作中实现,只是我们在做数据库表时是不一样。书库管理员信息主要为:管理员编号、管理员名称、管理员密码、图书管理、读者管理、图书借还问题等。
图书借阅管理: 在这个功能模块中,主要是书库管理员对图书馆中图书进行借出操作,在这一步实现过程中,当读者找到了自己所要图书后交给书库管理员,书库管理员通过读取读者借阅信息,看该读者是不是已经达到了借书上限了,如果达到了,则该读者不能读图书借阅,若没有达到上限,就可以对图书借阅,书库管理员在系统中填写图书出借信息,然后显示借书成功提示信息。因此书库管理员填写借书单包括信息有:读者编号、图书编号、图书名称,另外在该表中还存在借书日期、应还日期、超期天数、罚款钱数一些信息都是由系统自己去统计和完成。
图书归还管理: 这个模块操作是比较简单,当读者把把所要归还图书给书库管理员时,书库管理员执行是一个及借阅管理相反操作,在借阅管理中是图书后台数据库借书表插入操作,而归还图书则为对后台数据库借书表删除操作,它删除记录是同时满足了读者编号和图书编号都相符合记录。同时,如果该读者在当前还书日期超过了图书应还日期,那么后台数据库对借书表中超期天数、罚款钱数都有相应计算,并在读者还书时显示出来该读者是否欠费,若是话,就限制该读者在图书馆借阅功能和其它一些功能;如果当前日期没有超过应还日期,则会提示图书归还成功。
管理员密码修改: 书库管理员在这个功能模块上可以修改自己密码,而且这些操作是属于及自己本人编号相对应改动,对系统上并没有多大影响。和读者密码修改在代码实现方式上有许多相似性。
3.2 读者需求
由于读者对主数据库表修改权限不大,所以读者主要是浏览方面功能。包括了读者本身信息查看及修改、图书信息查询、购书推荐、预约图书、查看新书通报、查看图书馆公告、图书馆留言等功能。
读者本身信息查看及修改: 当一个读者到图书馆借阅图书或者归还图书时,他要对自己一些基本信息和借阅信息都要有相应查看,通过查看这些已经存在信息,读者可以了解到他是否还可以再借阅图书,现在已经借阅了几本图书,是哪几本书,并且这些书本归还时间是什么时候,是否超期等,这样读者对自己借阅信息就有了一个大概了解,就可以避免不盲目跑去借阅图书了。对于修改操作主要还是读者自己密码修改,因为这只关系到他自己事情,所以对数据库中其它数据没有太大影响。
图书信息查询: 在这个模块中,读者可以对图书信息进行查询,查询方法有两种,一种是模糊查询,另一种是精确查询。对于模糊查询只是对图书某一个字段查找,而且是任意匹配形式。而对于精确查询则为对图书各个字段进行查找,当添加了某个查询条件后,查询结果记录集都在变化,这样读者可以方便找到自己所要图书。另外在查看记录集过程中读者可以了解到该书本是否在馆可借,如果可借就可以在图书所在书库中找到,若没有话,在图书所在书库中则不可以找到。这就是读者对图书查询功能。
预约图书: 在该模块中,当读者去图书馆借阅图书时,图书馆中该书或许已经出借了且现在库存数目为0,那样话,读者暂时就不可以借阅该图书了,所以读者可以在网络上对该书进行预约操作,这样当图书馆中该书有了库存后,他就有对该图书优先借阅权利,所以这可以帮助读者在借阅这方面提供很大便利,由此也就产生了一个图书预约表,包含信息有:读者编号、图书编号、图书名称、图书作者、ISBN编号、所属书库等信息。查看图书馆留言及公告: 在这个功能模块上,我们主要是对图书馆最近公告和信息进行查看,了解图书馆最近一些图书管理方面信息和最新图书信息,另外在留言板上读者可以提出自己对图书馆在管理方面自己意见或建议什么,这对加强图书馆管理次序是有很大帮助,另外读者自己在规范次序上也会有很大改变。
3.3 性能需求
图书馆在正常运行中总是面对大量读者信息,书籍信息以及两者相互作用产生借书信息、还书信息,因此需要对读者资源、书籍资源、借书信息,还书信息进行及时处理,及时了解各个环节中信息变更,力求提高管理效率。
检验图书馆服务水平重要标准。
1.环境:图书室、阅览室环境清洁、安静、整齐、舒适;
2.人员:图书馆管理工作人员热情、认真、主动,有专业能力;
3.设备:图书馆设施先进、齐全,能满足功能需要;
4.文献:图书馆文献资源符合工作性质及目标,数量多,质量好,有特色。一般性能需求是指相互消息传递顺利,协议解析正确,界面友好,运行时间满足使用需要,安全性得到安全保证,不会出现基本错误等。
4.图书馆管理系统可行性分析
4.1 结构选择
随着技术进步,更多层次被划分出来。目前,在Internet应用体系结构中,商务逻辑处理被单独划分为一层,作为Internet服务器。它对用户通过浏览器提交表单进行分析,并得出对数据库服务器进行查询,交给数据库服务器去执行并得到查询结果,最后由Internet服务器用标准HTML语言反馈回浏览器,称为B/S(Brother/Server)结构。
计算机技术发展日新月异,传统 C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统通讯开销,可以充分利用两端硬件环境优势。而B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术兴起,对C/S结构一种变化或者改进结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。B/S结构利用不断成熟和普及浏览器技术实现原来需要复杂专用软件才能实现强大功能,并节约了开发成本,是一种全新软件系统构造技术。传统C/S体系结构虽然采用是开放模式,但这只是系统开发一级开放性,在特定应用中无论是Client端还是Server端都还需要特定软件,没能提供用户真正期望开放环境;B/S结构则不同,它前端是以TCP/IP协议为基础,企业内WWW服务器可以接受安装有Web浏览程序Internet终端访问,作为最终用户,只要通过Web浏览器,各种处理任务都可以调用系统资源来完成,这样大大简化了客户端,减轻了系统维护及升级成本和工作量,降低了用户总体拥有成本。
4.2 技术可行性
技术可行性是从前台和后台开发工具选择上进行分析。微软公司开发ASP.NET远远超越了ASP及其它开发软件,同时也给Web开发人员提供了更好灵活性,有效缩短了Web应用程序开发周期。而SQL Server 是Microsoft公司开发大型关系数据库管理系统,具有强大关系数据库创建、开发、设计和管理功能。其版本SQL Server2005将数据库及Internet紧密连接,可以通过Web浏览器显示数据操作,具有客户机/服务器结构。SQL Server 2005 提供了对分布式事务处理支持,并对开发工具具有良好支持,为大型数据库项目提供了企业级解决方案,因此我们在图书馆管理系统中使用了在.NET环境基于Web页面B/S服务模式。
4.3 经济可行性
在系统运行后维护是非常重要,并且其维护费用还是很大,如果是一个Windows Form管理系统,要对数据维护将要付出很大代价,而且它维护人员也比较多和分散,因此对数据库操作在各个时间段都是很频繁,人也很容易出现疲劳,问题也就会比较容易发生。但是我们现在用基于WebB/S模型,我们修改数据操作只在服务器端就可以了,而且它人员也比较集中,对数据修改只是在某段时间内比较频繁,过了这个时间后就较轻松,所以人精力也比较集中,那么数据库操作也就不怎么会出现问题,因此在这方面维护费用也大大减少。
4.4 操作环境及运行环境
软件环境:操作系统:Windows XP, 数据库:SQL Sverver 2005,前台环境:Dreamweaver,Visual Studio.NET
硬件环境:Cpu: Pentium 166 MHz 以上,内存至少128 MB,硬盘空间80 M,显示器800 *600或更高分辨率。
5.图书馆管理系统设计
5.1 E-R图分析及设计
利用ER方法进行数据库概念设计,可分成三步进行:首先设计局部E-R模式,然后把各局部E-R模式综合成一个全局模式,最后对全局ER模式进行优化,得到最终模式,即概念模式。
5.1.1 设计局部E-R模式
实体和属性定义:
图书(图书编号,图书名称,作者,出版社,出版日期,价格)
借阅者(借书证号,姓名,性别,年级,密码)
图书类别(图书类别编号,类别描述)
ER模型“联系”用于刻画实体之间关联。一种完整方式是对局部结构中任意两个实体类型,依据需求分析结果,考察局部结构中任意两个实体类型之间是否存在联系。若有联系,进一步确定是1:N,M:N,还是1:1等。还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系,等等。联系定义如图所示。解释如下:
一个借阅者(用户)只能具有一种身份,而一种身份可被多个借阅者所具有;
一本图书只能属于一种图书类别(类别),而一种图书类别可以包含多本图书;
一个用户可以借阅多本不同书,而一本书也可以被多个不同用户所借阅。
5.1.2 设计全局E-R模式
所有局部E-R模式都设计好了后,接下来就是把它们综合成单一全局概念结构。全局概念结构不仅要支持所有局部ER模式,而且必须合理地表示一个完整、一致数据库概念结构。
一.确定公共实体类型
为了给多个局部E-R模式合并提供开始合并基础,首先要确定各局部结构中公共实体类型。在这一步中我们仅根据实体类型名和键来认定公共实体类型。一般把同名实体类型作为公共实体类型一类候选,把具有相同键实体类型作为公共实体类型另一类候选。
二. 局部E-R模式合并
合并原则是:首先进行两两合并;先和合并那些现实世界中有联系局部结构;合并从公共实体类型开始,最后再加入独立局部结构。
设计全局E-R模式目不在于把若干局部E-R模式形式上合并为一个E-R模式,而在于消除冲突,使之成为能够被所有用户共同理解和接受同一概念模型。
首先在该过程中发生实体是图书信息和用户信息,他们之间产生关系是借阅关系,在这个借阅关系中,产生对应关系为:图书信息:用户 = 1:1,用户:图书 = 1:N,从这个关系中我们可以看到:每一本图书只能被一个读者借阅,而一个读者又可以借阅多本图书这层关系。另外在上图中我们可以看到图书信息和用户信息又有自己一些关系属性,通过这些关系属性可以唯一区别这些实体。
这在下面图5.1—图5.6中可以看出
密码
用户ID
书名
图书ID
…
…
用户
图书事务处理
图书
m
n
借阅操作
n n m
书库管理员
m
管理
管理
总管理员
m n
管理员ID
…
密码
图 5.1 总体E-R属性图
图书信息
图书编号
条形码
ISBN号
书 名
作 者
出版社
出版日期
译者
类型
图5.2 图书属性图
借 阅
编 号
图书编号
读者编号
借阅日期
应还日期
图 5.3 借阅信息属性图
用 户 信 息
用户编号
所属年级
用户类别
姓 名
性 别
密 码
图5.4 用户信息属性图
预约信息
读者编号
图书出版社
图书作者
ISBN号
书目名称
图5.5 预约信息属性图
推荐信息
图书名称
书目编号
读者编号
作 者
ISBN号码
书库
图 5.6推荐信息属性图
由于概念设计结果是E-R图,DBMS一般采用关系型(该系统所使用MS SQL Server就是关系型DBMS),因此数据库逻辑设计过程就是把ER图转化为关系模式过程。由于关系模型所具有优点,逻辑设计可以充分运用关系数据库规范化理论,使设计过程形式化地进行,导出系统主要初始关系模式如图所示:
图5.7 关系模型
5.2 数据表创建
我们可以设计出了后台数据库各个数据表。如表5.1—表5.10所示:
表5.1 管理员表
字段代号
字段类型
字段长度
是否可以为空
备注
Admin_no(关键字)
Nvarchar
16
否
管理员编号
Admin_pwd
Nvarchar
16
可以为空
管理员密码
Admin_name
Nvarchar
4
否
管理员名称
Admin_uppower
Nvarchar
20
否
管理员权限
表5.2 借书表
字段代号
字段类型
字段长度
是否可以为空
备注
Duzhe_no
Nvarchar
50
否
读者编号
Book_no
Nvarchar
50
否
图书编号
Book_name
Nvarchar
50
否
图书名称
Borrow_date
Datetime
8
可以为空
借书日期
Back_date
Datetime
8
可以为空
归还日期
Pass_date
Int
4
可以为空
超期天数
money
Money
8
可以为空
欠款数目
表5.3 图书表
字段代号
字段类型
字段长度
是否可以为空
备注
Book_no(关键字)
Nvarchar
20
否
图书编号
Book_name
Nvarchar
100
否
图书名称
Book_zuozhe
Nvarchar
50
否
图书作者
Book_chubanshe
Nvarchar
50
否
图书出版社
Book_outday
Datetime
8
否
图书出版日期
Book_price
Int
4
否
图书价格
ISBN
Nvarchar
10
否
图书ISBN号
Lib_department
Nvarchar
50
否
图书所属书库
Book_arriveday
Datetime
8
否
图书到馆日期
Book_state
Nvarchar
10
可以为空
图书在馆状态
表5.4读者表
字段代号
字段类型
字段长度
是否可以为空
备注
Duzhe_no(关键字)
Nvarchr
50
否
读者编号
Duzhe_name
Nvarchr
50
否
读者名称
Sex
bit
1
否
读者性别
Duzhe_department
Nvarchr
50
否
读者所属学院
uppower
Nvarchr
50
否
读者权限
Duzhe_pwd
Nvarchr
50
可以为空
读者密码
表5.5 公告表
字段代号
字段类型
字段长度
是否可以为空
备注
Id
Nvarchar
50
否
编号
Zhuti
Nvarchar
100
否
主题
Time
Datetime
8
否
时间
Neirong
Nvarchar
200
否
内容
表5.6 权限表
字段代号
字段类型
字段长度
是否可以为空
备注
Jibie_no
Int
4
否
级别编号
Jibie_name
Nvarchar
50
否
级别名称
Borrow_number
int
4
否
借书数目
表5.7 权限记录表
Jibie_no
Jibie_name
Borrow_number
1
图书馆总管
15
2
书库管理员
10
3
教师
8
4
学生
5
5
其他
3
表5.8 留言表
字段代号
字段类型
字段长度
是否可以为空
备注
Duzhe_no
Nvarchar
50
否
读者编号
Zhuti
Nvarchar
200
否
留言主题
Leirong
Nvarchar
4000
否
留言内容
time
Datetime
8
否
留言时间
表5.9 推荐表
字段代号
字段类型
字段长度
是否可以为空
字段名称
Duzhe_no
Nvarchar
16
否
读者编号
Book_name
Nvarchar
50
否
图书名称
Book_chubanshe
Nvarchar
50
可以为空
图书出版社
Book_zuozhe
Nvarchar
50
可以为空
图书作者
ISBN
nvarchar
50
可以为空
ISBN号码
表5.10 预约表
字段代号
字段类型
字段长度
是否可以为空
备注
Duzhe_no
Nvarchar
50
否
读者编号
Book_no
Nvarchar
50
否
图书编号
Book_name
Nvarchar
50
否
图书名称
Book_zuozhe
Nvarchar
50
可以为空
图书作者
ISBN
Nvarchar
50
可以为空
ISBN号码
Lib_department
Nvarchar
50
可以为空
所属书库
5.3 系统设计模块
图书借阅
图书归还
图书续借
图书预约
管
理
员
登
录
读
者
登
录
图书罚款
借阅查询
归还查询
超期查询
档案查询
读者类型设置
读者档案管理
过期续借管理
图书类型
出版社管理
图书注销
图书征订
读者管理
图书管理
登 录
图书流通管理
统计分析
图书馆管理系统模块
6.图书馆管理系统开发
6.1读者登录界面设计
在主界面中,我们首先要体现是对整个系统功能有一个具体显示,因此我们在设计时要对各个子系统登录链接要存在控件。
当我们从登录窗体输入读者编号和密码时,则进入读者信息查看界面.
图6.1 登录界面
在设计中用到控件如表6.1所示:
上面页面为读者登录界面,在这个登录过程中,对“登录”按钮数据库连接代码实现为:
string strconn = ConfigurationSettings.AppSettings["dsn"];
//从文件 Web.config 中取连接字符串SqlConnection cn = new SqlConnection(strconn);
//连接本地计算机 2 数据库
cn.Open(); //打开数据库连接
string mysql = "select duzhe_no,duzhe_pwd from duzhe where duzhe_no='"+tbx_no.Text+"'and duzhe_pwd='"+tbx_pwd.Text+"'";
//创建SQL语句,检查duzhe表中编号和密码是否正确
SqlCommand cm = new SqlCommand(mysql,cn); //创建 Command 对象
SqlDataReader dr = cm.ExecuteReader(); //执行 ExecuteReader 方法
if(dr.Read()){ //若成功登录
Session["duzhe_no"] = dr["duzhe_no"].ToString()
//用 Session 进行传值操作
Session["duzhe_pwd"]=dr["duzhe_pwd"].ToString();
Response.Redirect("view_duzhe.aspx"); }
else{ lbl_message.Text="系统没有这个用户名或者密码有误!!!"; //若登录失败
tbx_no.Text="";tbx_pwd.Text="";}
当读者输入读者学号和密码后,经过“登录”按钮对数据库系统数据核对,判断系统中是否存在该读者学号。查看读者基本信息和图书借阅信息,还可以对密码修改.此界面所用到数据库duzhe表。
图6.2读者信息界面
在这个页面设计用到控件,如表6.2所示:
表6.2读者信息界面控件
控件名称
控件ID
说明
Label1
Label1
编号
Label2
Label2
姓名
Label3
Label3
性别
Label4
Label4
所属年级
Button1
Button1
借阅信息
控件名称
控件ID
说明
labble
lbl_name
姓名显示
labble
lbl_sex
性别显示
labble
lbl_dep
年级显示
DataGrid
DataGrid1
数据库连接窗口显示
Button2
Button2
修改密码
labble
lbl_no
编号显示
通过上面“按钮”代码运行后,当我们成功登录后,便跳转到了下面读者基本信息查看界面,在这个界面中,我们可以看到其中读者编号、姓名、性别、所属年级等信息都是只读,这个功能实现主要是在程序中我们通过了Session传值功能实现。另外在设计该界面时,为了体现设计紧凑及信息显示连贯性,在界面中,我们添加了一些其它信息调用按钮,点击其中“借阅”按钮,在下面DataGrid中便可以显示出该读者当前借阅信息。再一个就是读者可以对自己密码进行修改,这通过“修改密码”按钮来实现,点击后进入密码修改界面。
要对读者密码进行修改,我们普通设计就是首先要验证输入原密码,然后输入新密码,如果“新密码”框输入符合规则且和“确认新密码”框密码值是同样,那么“确定”后便对密码进行了修改。
图6.3 读者密码修改页面
读者密码修改源代码:
string strconn= ConfigurationSettings.AppSettings["dsn"]
SqlConnection cn= new SqlConnection (strconn);
//连接本地计算机LMS数据库
cn.Open (); //构造SQL语句,该语句在Users表中检查用户名和密码是否正确
string mysql= "select duzhe_no,duzhe_pwd from duzhe where duzhe_no='"+lbl_no.Text +"'and duzhe_pwd='"+tbx_pwd.Text +"'";
SqlCommand cm=new SqlCommand (mysql,cn); //创建Command对象
SqlDataReader dr=cm.ExecuteReader (); //执行ExecuteReader ()方法
if(dr.Read ())
{SqlConnection cn1= new SqlConnection (strconn); //修改密码
cn1.Open ();
string chsql="update duzhe set duzhe_pwd='"+tbx_newpwd.Text+"' where duzhe_no=@no";
SqlCommand cm1=new SqlCommand (chsql,cn1);
cm1.Parameters .Add ("@no",SqlDbType.NVarChar);
cm1.Parameters ["@no"].Value =lbl_no.Text .ToString ();
cm1.ExecuteNonQuery ();
cn1.Close ();
lbl_message.Text="密码修改成功,请返回后验证新";}
else{ lbl_message.Text ="对不起,您输入原密码不正确,请重新输入";
读者如果要查询书目,可以在此窗口中查询,有两种匹配模式,完全匹配和模糊匹配,单击确定进入需要界面,在上面图书检索界面中,我们看到只是一个简单查询功能,读者首先要在查询类型下拉框中选择是按哪种查询方式进行查询,然后输入这种方式查询内容,最后选择到底是按“完全匹配”模式还是“模糊匹配”模式对数据进行查询。当选择“模糊匹配”时,在查找到数据中只要包含了内容输入框中字符便可以查找出来,这样找到图书数可能很多,读者自己在其中选择自己所要图书。但当是“完全匹配”模式时,查找到结果必须和内容输入框字符要完全匹配才可以找到,不然话,是找不到图书查询结果。
图 6.4 简单图书查询界面
在此过程界面中,用到数据库中book表,在设计中用到控件如表5.3所示:
表6.3图书查询界面控件
控件名称
控件ID
说明
LinkButton
LinkButton1
链接按钮
.Button
Button1
确定按钮
HtmlTable
Table1
信息提示
HtmlTable
TABLE2
信息提示
HtmlTable
Table3
信息提示
DropDownList
ddl_pp
查询类型下拉菜单
DropDownList
ddl_lx
查询模式下拉菜单
TextBox
tbx
查询内容文本框
DataGrid
DataGrid1
数据库连接
在此过程界面中,用到数据库中book表,对图书查询按钮后台代码实现过程为:
string strconn = ConfigurationSettings.AppSettings["dsn"];
//从文件 Web.config 中读取连字符串
SqlConnection cn = new SqlConnection(strconn);
//连接本地计算机 2 数据库
cn.Open();
string mysql="select book_no,book_name,ISBN,book_zuozhe,book_chubanshe,lib_department from book where 1=1"; //构造具有各个文本框选择功能查询语句
if(tbx_no.Text.ToString()!=""; //当图书编号文本框不为空时
{ mysql=mysql+"and book_no='"+tbx_no.Text.ToString()+"'"; }
if(tbx_name.Text.ToSt
展开阅读全文