还剩29页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
内容提要本文介绍了一个基于Client/Server模式的高校图书管理系统的设计与实现运用VisualBasic.Net结合MicrosoftSQLServer2000开发的登录模块主要用于验证用户身份,进行有效的操作从主界面模块在验证后进入每个子模块进行各个子系统的具体功能操作在整个系统设计中充分利用了模块化的设计思想和开发方法关键词C/SSQL2000数据库课程设计目录第1章应用背景与需求说明…………………………………………………
51.1背景…………………………………………………………………
51.2数据需求……………………………………………………………
51.3事务需求……………………………………………………………
51.4系统开发平台………………………………………………………
61.5网络拓扑结构………………………………………………………6第2章解决方案………………………………………………………………
72.1E-R模型设计………………………………………………………
72.
1.1实体列表……………………………………………………
72.
1.2系统的E-R模型……………………………………………
82.2设计数据库…………………………………………………………
82.
2.1创建数据库…………………………………………………
82.
2.2创建数据表…………………………………………………
82.
2.3连接数据库…………………………………………………
92.3主窗体设计…………………………………………………………
102.
3.1设计登录界面………………………………………………
102.
3.2添加数据组件………………………………………………
102.
3.3生成数据集…………………………………………………
112.
3.4设计代码……………………………………………………
112.4读者信息……………………………………………………………
122.
4.1设计显示界面………………………………………………
122.
4.2添加数据组件………………………………………………
122.
4.3功能实现……………………………………………………
122.5显示报表……………………………………………………………
122.
5.1添加读者信息报表…………………………………………
132.
5.2添加借阅情况表……………………………………………
132.6综合查询的实现……………………………………………………
142.
6.1添加数据组件………………………………………………
142.
6.2窗体功能实现………………………………………………14第3章系统实现………………………………………………………………
153.1开发环境……………………………………………………………
153.2系统流程图…………………………………………………………
153.3程序调试情况………………………………………………………
163.4功能显示……………………………………………………………
163.5结论…………………………………………………………………20第4章结束语…………………………………………………………………20参考文献………………………………………………………………………21附录源代码清单……………………………………………………………21第一章问题描述
1.1图书管理系统简介本系统利用VB.NET处理数据库的功能,实现对图书馆信息的管理主要功能为管理有关读者、出版社、书籍、借阅和管理者的信息等本系统的结构分为读者信息管理模块、出版社信息管理模块、书籍信息管理模块、借阅信息管理模块、管理者管理信息模块、报表显示模块和查询处理模块
1.2数据需求根据系统的需求,首先将要记录的信息分类,要记录的信息如下⑴读者信息包括证号、姓名、联系方式、已借书数目、读者类别和能否借书等⑵出版社信息包括名称、地址、网址、E-mail等⑶书籍信息包括书号、丛书系列、作者、责任编辑、字数、定价、出版时间、主题分类、二级分类、馆内借阅分类、总册数、库存量、出版社和书名等⑷借阅信息包括借阅日期、应归还日期、实际归还日期、能否续借、书号和证号等⑸管理者信息包括管理者名称、对应密码和对应权限等根据这些需要,本系统需要“读者信息”表,“出版社信息”表,“书籍信息”表,“借阅信息”表和“管理者信息”表
1.3事务需求经过实际考察、咨询和分析,高等院校图书管理系统主要应该具有以下功能模块,如
1.1图⑴在读者信息管理部分要求如下可以浏览读者信息可以对读者信息进行维护包括添加及删除等操作⑵在出版社信息管理部分要求如下可以浏览出版社信息可以对出版社信息进行维护包括添加及删除等操作⑶在书籍信息管理部分要求如下可以浏览书籍信息可以对书籍信息进行维护包括添加及删除等操作⑷在借阅信息管理部分要求如下可以浏览借阅信息可以对借阅信息进行维护操作⑸在管理者信息管理部分要求如下显示当前数据库中管理者情况对管理者信息维护操作图
1.1系统业务逻辑关系
1.4系统开发平台前台
1、硬件要求CPU:Pentium
42.0GHz以上IBM兼容机内存512MB以上容量显卡32MB或以上显存之AGP接口显卡
2、软件要求操作系统MicrosoftWindows2000/XP开发工具MicrosoftVisualStudio.Net2003数据库服务器
1、硬件要求CPU:Pentium
42.8GHz以上IBM兼容机内存1024MB以上容量显卡32MB或以上显存之AGP接口显卡
2、软件要求操作系统MicrosoftWindows2000Server数据库服务器MicrosoftSQL2000Server网络设备2块网卡客户机D-LinkDFE-650TX,服务器IntelPCLA8460B路由器一台SOHO路由器TL-R402M
1.5网络拓扑结构本设计采用客户机/服务器(C/S)体系,数据的储存管理功能较为透明性,可以合理均衡事务的处理,充分保证数据的完整性和一致性图
1.2C/S模式结构第二章解决方案数据库主要着重于数据对象的属性和数据对象之间的关系的分析一般采用E-R图,即实体-关系模型来分析数据对象的属性和数据对象之间的关系
2.1E-R模型设计
2.
1.1实体列表实体描述读者所有借阅者,查阅者,由证件号标识出版社图书馆所有图书所属出版社,由出版社编号标识书籍图书馆所有图书,由刊号标识借阅书号、证号、借阅日期、应归还日期等属性,由方式标识系统管理员系统维护人员
2.
1.2系统的E-R模型该图书管理系统的E-R模型,如下图所示#0;#0;#0;������#0;����#0;����#0;����#0;����#0;����#0;E-mail#0;����#0;����#0;��������#0;����������#0;��������#0;��������#0;����#0;��������#0;����#0;��������#0;����#0;����#0;��������#0;��������#0;��������#0;������������#0;����#0;������#0;������#0;������#0;����#0;��������#0;����������#0;��������#0;����#0;����#0;����#0;������������#0;#0;1#0;m#0;m#0;n#0;
2.2设计数据库
2.
2.1创建数据库1在服务器资源管理器中的任一节点右击2执行快捷菜单中的“新建数据库”命令并在打开的“创建数据库”对话框中输入数据库名Library,选中“使用WindowsNT集成安全性”单选按钮3单击“确定”按钮,则新建的数据库就会出现在服务器上
2.
2.2创建数据表创建数据库后,为Library数据库添加数据表,步骤如下1在服务器资源管理器中右击数据库Library下的“表”文件夹在弹出的快捷菜单中执行“新建表”命令,出现表设计器2添加表的字段和其他详细资料各表数据结构如下表所示表名列名数据类型长度主键出版社信息出版社名称varchar50Yes出版社地址varchar50网址char50E-mailchar50读者信息证号int4Yes姓名varchar20联系方式varchar50已借书数目int4读者类别int4能否借书bit1密码varchar6借阅信息书号char10Yes证号int4Yes借阅日期datetime8应归还日期datetime8实际归还日期datetime8续借bit1书籍信息书号char10Yes丛书系列nchar50作者nchar50责任编辑nchar50字数int4定价money8出版时间datetime8主题分类nchar50二级分类char50馆内借阅分类int4总册数int4库存量int4出版社varchar50书名varchar50管理者信息用户名称char20Yes密码char20权限int4表
2.1图书管理系统各表数据结构
2.
2.3连接数据库为数据库Library和本系统之间建立一个数据连接1在服务器资源管理器中右击“数据连接”节点在弹出的快捷菜单中执行“添加连接”命令,打开DataLinkProperties对话框切换到Provider选项卡,选中列表框中的MicrosoftOLEDBProviderforSQLServer项单击“下一步”切换到Connection选项卡2在其中的第一个下拉列表框中选择数据库所在服务器名称输入登录服务器信息后选择数据库Library,然后单击TestConnection按钮如果测试成功,单击“确定”按钮
2.3主窗体设计创建一个新的“Windows应用程序”类型的项目,名为“图书馆管理”将默认创建的窗体命名为“主窗体”,把“主窗体”作为本系统中的主界面在窗体中添加两个Pannel控件,7个Button控件和7个Linklabel控件
2.
3.1设计登录界面设计登录界面创建一个新的”Windows窗体”名为登录作为本系统的登录界面.在登录窗体上添加两个Label控件两个Button控件和两个TextBox控件添加控件后的窗体如图所示
2.
3.2添加数据组件在工具箱中单击“数据”选项卡,添加OleDbDataAdapter组件1在工具箱中单击OleDbDataAdapter组件,在窗体任意位置拖动出一个虚框矩形后释放左键弹出“数据适配器配置向导”对话框2单击“下一步”,在打开的对话框中选择前面建好的数据连接,然后单击“下一步”3选中“使用SQL语句”,然后单击“下一步”进入“生成SQL语句”对话框4在其中的多行文本框直接输入SQL语句“SELECT管理者信息.*FROM管理者信息”5单击“下一步”按钮,进入“查看向导结果”,单击“完成”按钮完成数据适配器配置配置数据适配器后,在主窗体上就会自动添加一个OleDbConnection控件
2.
3.3生成数据集生成数据集的步骤如下:1单击OleDbDataAdapter控件“属性”对话框中的“生成数据集”链接打开“生成数据集”对话框2在其中选中“新建”单选按钮并在其后面的文本框中输入“Lib管理者信息”3在“选择要添加到数据集中的表”列表框中列出了前面添加的OleDbDataAdapter组件所连接的表选中该表名前面的复选框4选中“将此数据集添加到设计器”复选框,单击“确定”按钮这样将生成一个名称为“Lib管理者信息”的数据集该数据集以文件形式存储文件名为“Lib管理者信息.xsd”而在项目中添加了一个DataSet组件名为“objLib管理者信息”在解决方案资源管理器中右击该项目,在弹出快捷菜单中单击“属性”菜单项在打开的“属性页”对话框中的“启动对象”下拉列表框中选择“主窗体”选项单击“确定”按钮,这样该项目启动时,就会从主窗体开始启动
2.
3.4设计代码在程序运行过程中如果想通过单击LinkLabel控件或Button控件进入系统中的各个功能模块如显示读者信息等就会弹出一个对话框要求输入用户名和密码.单击确认按钮程序就会到数据库的管理者信息表中查找该用户名和密码是否存在.如果存在允许进入功能模块.完成登录功能的主要代码集中在UserCheck函数中.在程序运行过程中在登录窗体的用户姓名和用户密码文本框中输入用户名和密码后单击确认按钮就会触发UserCheck函数并执行其中的代码.如果UserCheck函数返回True那么允许用户的操作;否则拒绝用户的操作请求.在UserCheck函数中首先定义Login类型的变量dlg_Login然后通过ShowDialog方法来显示登录窗体.如果用户在登录窗体中输入用户姓名和密码并且单击了确认按钮那么自动调用一个自定义函数LoadDataSet由此函数进行数据加载.如果出错显示错误信息回滚整个事务.具体设计代码见附录
1.
12.4读者信息在当前项目中添加一个“Windows窗体”,将窗体命名为“读者信息”
2.
4.1设计显示界面在窗体上添加1个GroupBox控件,9个Button控件,5个TextBox控件,1个CheckBox控件和7个Label控件各按钮控件是为了执行相应的操作各TextBox控件和CheckBox控件用来显示数据集中的数据,这个功能通过设置DataBindings属性来实现
2.
4.2添加数据组件向窗体添加OleDbConnection组件,命名为OleDbConnection1后将其选中,在“属性”对话框的ConnectionString栏单击,选择所建数据库Library添加OleDbDataAdapter组件和生成数据集的方法步骤如
2.
3.2及
2.
3.3设置各TextBox控件的DataBinding属性来实现对数据集中数据的显示以Edit证号为例1选中“Edit证号”控件单击“属性”对话框2单击DataBinding属性前面的+号打开该属性的详细列表3设置Text属性在该属性后面栏中单击并选择所对应字段4设置其他TextBox控件的DataBinding属性
2.
4.3功能实现显示数据,添加读者,保存更改,记录定位的实现具体实现代码见附
1.2“管理者信息”,“出版社信息”,“书籍信息”,“借阅信息”和该模块的设计思路及方法步骤完全一致,在此从略
2.5显示报表在当前项目中添加一个“Windows窗体”,命名为“报表窗体”,该模块显示当前数据库中读者信息和借阅信息的报表在窗体上添加一个CrystalReportViewer1,它充当报表显示的窗体,然后在窗体中添加一个菜单,菜单中包括两个子菜单项—“读者信息”和“借阅信息”在程序运行中,如果单击“读者信息”菜单项,就会自动在窗体上显示“读者信息报表.rpt”如果单击“借阅信息”命令就会自动在窗体上显示“借阅信息报表.rpt”报表
2.
5.1添加读者信息报表1在开发环境中选择菜单“项目”中的“添加新项”对话框中选择CrystalReport选项2在“名称”文本框中输入报表名“读者信息报表.rpt”,单击“打开”按钮,就会弹出入图所示的“CrystalReport库”对话框3在其对话框中选择“使用报表专家”单选按钮,在“选择专家”列表框中选择“标准”选项,单击“确定”按钮,进入下一步4在弹出的“标准报表专家”对话框中,选择“可用的数据源”列表框中的OLBDBADO选项,就会弹“OLEDBADO”对话框选择OLBDB提供程序为MicrosoftOLEDBProviderforSQLServer单击“下一步”按钮,显示“连接信息”对话框5在其中设置连接信息,单击“完成”按钮,返回“标准报表专家”对话框6选择数据源为OLEDBADO中的Library数据库,并且选中其中的“读者信息”表单击“插入表”按钮,把“读者信息”表插入到报表中,单击“下一步”按钮7在“字段”选项卡中单击“全部添加”按钮,把“读者信息”表中的所有字段添加到报表中,单击“完成”按钮就完成报表的设计设计完成的“读者信息报表”如图所示图
2.1读者信息报表效果图
2.
5.2添加借阅情况报表添加借阅情况报表的过程与添加读者信息报表过程大致相同,不同之处在于插入到报表中的数据表为“读者信息”
2.6综合查询的实现在程序运行过程中,单击主窗体的“综合查询”按钮,就会弹出一个对话框在其中设置查询条件,根据查询条件从记录集中筛选出所需记录为此需要在项目中添加一个窗体“综合查询”还需要设置“CmbBox运算符”控件的Items属性单击窗体上“CmbBox运算符”控件,然后在“属性”对话框中单击Items栏,就会出现一个按钮,单击按钮,在打开的窗口中如图
2.2所示设置字符串集合编辑器字符串图
2.2所示设置字符串集合编辑器设置完毕,单击确定按钮
2.
6.1添加数据组件在窗体上添加一个OleDbDataAdapter组件,使用数据适配器配置向导对其进行配置选择数据连接后输入SQL语句“SELECT 出版社信息.*FROM出版社信息”同样再为窗体添加四个OleDbDataAdapter组件,在生成SQL语句对话框的多行文本框中分别输入SQL语句“SELECT 读者信息.*FROM读者信息”,“SELECT 管理者信息.*FROM管理者信息”,“SELECT 借阅信息.*FROM借阅信息”,“SELECT 书籍信息.*FROM书籍信息”,然后单击“完成”按钮,Name属性分别设置为OleDbDataAdapter2,OleDbDataAdapter3,OleDbDataAdapter4,OleDbDataAdapter5完成数据适配器的配置生成数据集的步骤如下1在OleDbDataAdapter1组件的“属性”对话框中单击“生成数据集”超链接,打开“生成数据集”对话框,选中“新建”按钮并在后面文本框中输入“Lib综合查询”2在“选择要添加到数据集中的表”列表框中,选中5个表前面的复选框3选中“将此数据集添加到设计器”复选框,单击“确定”按钮这样,将生成一个名称为“Lib综合查询”的数据集,该数据集以文件的形式存储,文件名为“Lib综合查询.xsd”而在项目中,添加一个DataSet组件,名称为“objLib综合查询”设计完成的数据集如图
2.4所示
2.
6.2窗体功能实现具体功能实现代码见附
1.7图
2.3综合查询数据集第三章系统实现
3.1开发环境本系统使用VisualBasic.NET语言进行开发需要Microsoft.NETFrameworkSDKv
1.1的支持适用内存不低于256M配备有Windows2000,Windows2003,WindowsXP系统的计算机
3.2系统流程图在本系统中准备通过如下窗体来实现数据维护的功能1主窗体管理着各个子窗体2“读者信息”子窗体管理读者信息3“管理者信息”子窗体管理用户信息4“出版社信息”子窗体管理出版社信息5“书籍信息”子窗体管理书籍信息6“借阅信息”子窗体管理借阅信息7“报表窗体”子窗体显示数据报表8“综合查询”子窗体执行用户自定义的查询系统流程图如图
3.1所示图
3.1系统流程图
3.3程序调试情况在数据连接时一定要注意窗体和相应显示控件的绑定关系在把系统从一台计算机移植到另一台计算机时一定要把数据文件library.mdf和library_log.LDF同时移植,并对相应的提供服务的SQLServer服务器进行相应的修改,否则数据正确连接并显示
3.4功能显示运行程序后首先显示主窗体,如图
3.2所示图
3.2主界面单击“输入/查看读者信息”,就会弹出如图
3.3所示登录框图
3.3登录界面在登录对话框中输入用户姓名和密码,单击“确认”按钮,就会对用户身份进行认证,如果认证通过,那么就会弹出如图
3.4所示的读者信息管理窗体图
3.4读者信息管理窗体在“读者信息”窗体中可以对读者信息进行维护操作,例如浏览读者信息,添加记录和删除记录等单击“输入/查看书籍信息”,就会显示“书籍信息”窗体,在该窗体中可以对书籍信息进行维护操作书籍信息维护窗体如图
3.5所示图
3.5书籍信息窗体单击“输入/查看借阅信息”,就会显示“借阅信息”窗体,在该窗体中可以对出版社信息进行维护操作出版社信息维护窗体如图所示图
3.6借阅信息窗体单击“输入/查看出版社信息”,就会显示“出版社信息”窗体,在该窗体中可以对借阅信息进行维护操作借阅信息维护窗体如图
3.7所示图
3.7出版社信息窗体单击“输入/查看管理者信息”,结果如图
3.8所示图
3.8管理者信息窗体在主窗体上单击“显示报表”,那么就可以查看反映读者信息和借阅信息的报表,借阅信息的报表如图所示图
3.9报表窗体如果用户在运行的主窗体上单击“综合查询”,那么就可以查看针对不同的数据表进行查询操作选择查询依据为“出版社信息”表查看其中的所有信息,结果如图
3.10所示图
3.10综合查询窗体
3.5结论在这个系统的开发过程中,值得注意的几点有1数据报表的实现.报表是数据库应用程序的重要组成部分通过报表可以把数据库中内容经过组织以后生动地展示给用户,VB.NET提供的CrystalReport可以大大提高报表的设计效率2复杂查询的实现在程序运行过程中,单击窗体中的“综合查询”按钮,就会弹出一个对话框,在该对话框中设置查询条件,根据查询条件从记录集中筛选出所需记录,所指定的查询条件包括查询的依据,排序的依据,运算符等等第四章结束语通过做课程设计,有几点感想,归纳如下
1.扎实的理论基础如果不掌握它们,很难写出高水平的程序而这一点又是我们所缺乏的
2.不钻牛角尖当遇到障碍的时候,暂时远离电脑,当重新开始工作的时候,也许会发现那些难题现在竟然可以迎刃而解
3.多与别人交流三人行必有我师
4.良好的编程风格注意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保持一致如果注释和代码不一致,那就更加糟糕最后特别要感谢史开宗老师在软件工程和数据库课程中认真负责的教学,才使得我能结合所学的知识完成这一课程设计参考文献1萨师煊,王珊,数据库系统概论(第三版).北京高等教育出版社,20002齐治昌,谭庆平,宁洪,软件工程(第二版).北京高等教育出版社,20043DavidI.Schneider,VisualBasic.NET编程导论.电子工业出版社,2003附录源代码清单附
1.1主窗体设计代码如下PublicClass主窗体InheritsSystem.Windows.Forms.Form#RegionWindows窗体设计器生成的代码‘此处省略主窗体设计代码#EndRegionDimsenderAsSystem.ObjectDimeAsSystem.EventArgsPublicSubLoadDataSetDimobjDataSetTempAs图书馆管理.Lib管理者信息objDataSetTemp=New图书馆管理.Lib管理者信息临时数据集objDataSetTemp保存从FillDataSet函数调用中返回的记录如果未出错则填充到主数据集objLib管理者信息中TryMe.FillDataSetobjDataSetTempCatcheFillDataSetAsSystem.ExceptionThroweFillDataSetEndTryTryobjLib管理者信息.ClearobjLib管理者信息.MergeobjDataSetTempCatcheLoadMergeAsSystem.ExceptionThroweLoadMergeEndTryEndSubPublicSubFillDataSetByValdataSetAs图书馆管理.Lib管理者信息实现打开连接,将OleDbDataAdapter1中的数据添加到数据集,关闭连接dataSet.EnforceConstraints=FalseTryMe.OleDbConnection
1.OpenMe.OleDbDataAdapter
1.FilldataSetCatchfillExceptionAsSystem.ExceptionThrowfillExceptionFinallydataSet.EnforceConstraints=TrueMe.OleDbConnection
1.CloseEndTryEndSubPrivateSubLabel1_ClickByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandlesLabel
1.ClickEndSubPrivateSubLinkLabel_退出_LinkClickedByValsenderAsSystem.ObjectByValeAsSystem.Windows.Forms.LinkLabelLinkClickedEventArgsHandlesLinkLabel_退出.LinkClickedEndEndSubPrivateSubLinkLabel_读者信息_LinkClickedByValsenderAsSystem.ObjectByValeAsSystem.Windows.Forms.LinkLabelLinkClickedEventArgsHandlesLinkLabel_读者信息.LinkClickedbtn_读者信息_ClicksendereEndSubPrivateSubLinkLabel_书籍信息_LinkClickedByValsenderAsSystem.ObjectByValeAsSystem.Windows.Forms.LinkLabelLinkClickedEventArgsHandlesLinkLabel_书籍信息.LinkClickedbtn_书籍信息_ClicksendereEndSubPrivateSub主窗体_LoadByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandlesMyBase.LoadEndSubPrivateSubLinkLabel_出版社信息_LinkClickedByValsenderAsSystem.ObjectByValeAsSystem.Windows.Forms.LinkLabelLinkClickedEventArgsHandlesLinkLabel_出版社信息.LinkClickedbtn_出版社信息_ClicksendereEndSubPrivateSubLinkLabel_借阅信息_LinkClickedByValsenderAsSystem.ObjectByValeAsSystem.Windows.Forms.LinkLabelLinkClickedEventArgsHandlesLinkLabel_借阅信息.LinkClickedbtn_借阅信息_ClicksendereEndSubPrivateSubLinkLabel_查询_LinkClickedByValsenderAsSystem.ObjectByValeAsSystem.Windows.Forms.LinkLabelLinkClickedEventArgsHandlesLinkLabel_查询.LinkClickedbtn_查询_ClicksendereEndSubPrivateSubLinkLabel_报表_LinkClickedByValsenderAsSystem.ObjectByValeAsSystem.Windows.Forms.LinkLabelLinkClickedEventArgsHandlesLinkLabel_报表.LinkClickedbtn_报表_ClicksendereEndSubPrivateSubLinkLabel_管理者信息_LinkClickedByValsenderAsSystem.ObjectByValeAsSystem.Windows.Forms.LinkLabelLinkClickedEventArgsHandlesLinkLabel_管理者信息.LinkClickedbtn_管理者信息_ClicksendereEndSubFunctionUserCheckByValsenderAsSystem.ObjectByValeAsSystem.EventArgsAsBooleanDimdlg_LoginAsLogindlg_Login=NewLoginIfdlg_Login.ShowDialog=DialogResult.OKThenTryMe.LoadDataSetCatcheLoadAsSystem.ExceptionSystem.Windows.Forms.MessageBox.ShoweLoad.MessageEndTryDimiAsIntegerMe.BindingContextobjLib管理者信息管理者信息.Position=0Fori=0ToMe.BindingContextobjLib管理者信息管理者信息.Count-1IfNotMe.BindingContextobjLib管理者信息管理者信息.Current.GetTypeIsGetTypeDataRowViewThenExitForEndIfDimdrvAsDataRowView=CTypeMe.BindingContextobjLib管理者信息管理者信息.CurrentDataRowViewIfTrimdrv用户名称=dlg_Login.Txt_用户姓名.TextThenIfTrimdrv密码=dlg_Login.Txt_用户密码.TextThenReturnTrueEndIfEndIfMe.BindingContextobjLib管理者信息管理者信息.Position+=1NextEndIfUserCheck=FalseEndFunctionPrivateSubbtn_读者信息_ClickByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandlesbtn_读者信息.ClickIfUserChecksendereThenDimdlgAs读者信息dlg=New读者信息dlg.ShowDialogElseMessageBox.Show登录失败!登录MessageBoxButtons.OK_MessageBoxIcon.StopEndIfEndSubPrivateSubbtn_书籍信息_ClickByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandlesbtn_书籍信息.ClickIfUserChecksendereThenDimdlgAs书籍信息dlg=New书籍信息dlg.ShowDialogElseMessageBox.Show登录失败!登录MessageBoxButtons.OK_MessageBoxIcon.StopEndIfEndSubPrivateSubbtn_出版社信息_ClickByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandlesbtn_出版社信息.ClickIfUserChecksendereThenDimdlgAs出版社信息dlg=New出版社信息dlg.ShowDialogElseMessageBox.Show登录失败!登录MessageBoxButtons.OK_MessageBoxIcon.StopEndIfEndSubPrivateSubbtn_借阅信息_ClickByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandlesbtn_借阅信息.ClickIfUserChecksendereThenDimdlgAs借阅信息dlg=New借阅信息dlg.ShowDialogElseMessageBox.Show登录失败!登录MessageBoxButtons.OK_MessageBoxIcon.StopEndIfEndSubPrivateSubbtn_退出_ClickByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandlesbtn_退出.ClickEndEndSubPrivateSubbtn_查询_ClickByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandlesbtn_查询.ClickIfUserChecksendereThenDimdlgAs综合查询dlg=New综合查询dlg.ShowDialogElseMessageBox.Show登录失败!登录MessageBoxButtons.OK_MessageBoxIcon.StopEndIfEndSubPrivateSubbtn_报表_ClickByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandlesbtn_报表.ClickIfUserChecksendereThenDimdlgAs报表窗体dlg=New报表窗体dlg.ShowDialogElseMessageBox.Show登录失败!登录MessageBoxButtons.OK_MessageBoxIcon.StopEndIfEndSubPrivateSubbtn_管理者信息_ClickByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandlesbtn_管理者信息.ClickIfUserChecksendereThenDimdlgAs管理者信息dlg=New管理者信息dlg.ShowDialogElseMessageBox.Show登录失败!登录MessageBoxButtons.OK_MessageBoxIcon.StopEndIfEndSubPrivateSubPanel2_PaintByValsenderAsSystem.ObjectByValeAsSystem.Windows.Forms.PaintEventArgsHandlesPanel
2.PaintEndSubEndClass附
1.2读者信息窗体设计代码如下PublicClass读者信息InheritsSystem.Windows.Forms.Form#RegionWindows窗体设计器生成的代码‘此处省略主窗体设计代码#EndRegionPrivateSubGroupBox_EnterByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandlesGroupBox.EnterEndSubPrivateSubedit证号_TextChangedByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandlesedit证号.TextChangedEndSubPrivateSubOleDbDataAdapter1_RowUpdatedByValsenderAsSystem.ObjectByValeAsSystem.Data.OleDb.OleDbRowUpdatedEventArgsHandlesOleDbDataAdapter
1.RowUpdatedEndSubPrivateSub读者信息_LoadByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandlesMyBase.LoadTryMe.LoadDataSetCatcheLoadAsSystem.ExceptionSystem.Windows.Forms.MessageBox.ShoweLoad.MessageEndTryMe.objLib读者信息_PositionChangedEndSubPublicSubLoadDataSetDimobjDataSetTempAs图书馆管理.Lib读者信息objDataSetTemp=New图书馆管理.Lib读者信息临时数据集objDataSetTemp保存从FillDataSet函数调用中返回的记录如果未出错则填充到主数据集objLib读者信息中TryMe.FillDataSetobjDataSetTempCatcheFillDataSetAsSystem.ExceptionThroweFillDataSetEndTryTryobjLib读者信息.ClearobjLib读者信息.MergeobjDataSetTempCatcheLoadMergeAsSystem.ExceptionThroweLoadMergeEndTryEndSubPublicSubFillDataSetByValdataSetAs图书馆管理.Lib读者信息实现打开连接,将OleDbDataAdapter1中的数据添加到数据集,关闭连接dataSet.EnforceConstraints=FalseTryMe.OleDbConnection
1.OpenMe.OleDbDataAdapter
1.FilldataSetCatchfillExceptionAsSystem.ExceptionThrowfillExceptionFinallydataSet.EnforceConstraints=TrueMe.OleDbConnection
1.CloseEndTryEndSubPrivateSubobjLib读者信息_PositionChangedMe.lblNavLocation.Text=Me.BindingContextobjLib读者信息_读者信息.Position+
1.ToString+的_+Me.BindingContextobjLib读者信息读者信息.Count.ToStringEndSubPrivateSubbtnAdd_ClickByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandlesbtnAdd.Click首先清除控件中的内容然后调用AddNew方法添加新记录如果出错显示信息调用函数显示记录数和当前记录位置TryMe.BindingContextobjLib读者信息读者信息.EndCurrentEditMe.BindingContextobjLib读者信息读者信息.AddNewCatcheEndEditAsSystem.ExceptionSystem.Windows.Forms.MessageBox.ShoweEndEdit.MessageEndTryMe.objLib读者信息_PositionChangedEndSubPrivateSubbtnUpdate_ClickByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandlesbtnUpdate.Click将在窗体中对数据的更改保存到数据库中TryMe.UpdateDataSetCatcheUpdateAsSystem.ExceptionSystem.Windows.Forms.MessageBox.ShoweUpdate.MessageEndTryMe.objLib读者信息_PositionChangedEndSubPublicSubUpdateDataSetDimobjDataSetChangesAs图书馆管理.Lib读者信息=_New图书馆管理.Lib读者信息创建一个新数据集来保存对主数据集所做的更改Me.BindingContextobjLib读者信息读者信息.EndCurrentEdit停止当前的任何编辑objDataSetChanges=CTypeobjLib读者信息.GetChanges图书馆管理.Lib读者信息IfNotobjDataSetChangesIsNothingThenTryMe.UpdateDataSourceobjDataSetChanges调用UpdateDataSource函数将更改合并到数据集中objLib读者信息.MergeobjDataSetChangesobjLib读者信息.AcceptChangesCatcheUpdateAsSystem.ExceptionThroweUpdateEndTryEndIfEndSubPublicSubUpdateDataSourceByValChangedRowsAs图书馆管理.Lib读者信息打开数据连接,使用OleDbDataAdapter的Update方法更新数据库TryIfNotChangedRowsIsNothingThenMe.OleDbConnection
1.OpenMe.OleDbDataAdapter
1.UpdateChangedRowsEndIfCatchupdateExceptionAsSystem.ExceptionThrowupdateExceptionFinallyMe.OleDbConnection
1.CloseEndTryEndSubPrivateSubbtnNavFirst_ClickByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandlesbtnNavFirst.ClickMe.BindingContextobjLib读者信息读者信息.Position=0Me.objLib读者信息_PositionChangedEndSubPrivateSubbtnCancel_ClickByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandlesbtnCancel.ClickMe.BindingContextobjLib读者信息读者信息.CancelCurrentEditMe.objLib读者信息_PositionChangedEndSubPrivateSubbtnDelete_ClickByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandlesbtnDelete.ClickIfMe.BindingContextobjLib读者信息读者信息.Count0ThenMe.BindingContextobjLib读者信息读者信息.RemoveAt_Me.BindingContextobjLib读者信息读者信息.PositionEndIfMe.objLib读者信息_PositionChangedEndSubPrivateSubbtnLast_ClickByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandlesbtnLast.ClickMe.BindingContextobjLib读者信息读者信息.Position=_Me.BindingContextobjLib读者信息读者信息.Count-1Me.objLib读者信息_PositionChangedEndSubPrivateSubbtnNavPrev_ClickByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandlesbtnNavPrev.ClickMe.BindingContextobjLib读者信息读者信息.Position=_Me.BindingContextobjLib读者信息读者信息.Position-1Me.objLib读者信息_PositionChangedEndSubPrivateSubbtnNavNext_ClickByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandlesbtnNavNext.ClickMe.BindingContextobjLib读者信息读者信息.Position=_Me.BindingContextobjLib读者信息读者信息.Position+1Me.objLib读者信息_PositionChangedEndSubPrivateSubbtnCancelAll_ClickByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandlesbtnCancelAll.ClickMe.objLib读者信息.RejectChangesEndSubEndClass**鉴于“读者信息”,“管理者信息”,“出版社信息”,“书籍信息”,“借阅信息”模块除连接数据源不同外,设计思路步骤均相同,此处省略“管理者信息”,“出版社信息”,“书籍信息”,“借阅信息”四个模块的代码附
1.3管理者信息窗体设计代码(略)附
1.4出版社信息窗体设计代码(略)附
1.5书籍信息窗体设计代码如(略)附
1.6借阅信息窗体设计代码如(略)附
1.7综合查询窗体设计代码如下PublicClass综合查询InheritsSystem.Windows.Forms.Form#RegionWindows窗体设计器生成的代码‘此处省略窗体设计代码#EndRegionSubQueryDataByValSqlStringAsStringByValOrderStringAsStringQueryString=SqlStringIfOrderStringThenQueryString=SqlString+ORDERBY+OrderStringEndIfEndSubPublicSubLoadDataSetDimobjDataSetTempAs图书馆管理.Lib综合查询objDataSetTemp=New图书馆管理.Lib综合查询TryMe.FillDataSetobjDataSetTempCatcheFillDataSetAsSystem.ExceptionThroweFillDataSetEndTryTryobjLib综合查询.ClearobjLib综合查询.MergeobjDataSetTempCatcheLoadMergeAsSystem.ExceptionThroweLoadMergeEndTryEndSubPublicSubFillDataSetByValdataSetAs图书馆管理.Lib综合查询dataSet.EnforceConstraints=FalseTryIfMe.OleDbConnection
1.StateConnectionState.ClosedThenMe.OleDbConnection
1.CloseEndIfMe.OleDbConnection
1.OpenMe.OleDbDataAdapter
1.FilldataSetMe.OleDbDataAdapter
2.FilldataSetMe.OleDbDataAdapter
3.FilldataSetMe.OleDbDataAdapter
4.FilldataSetMe.OleDbDataAdapter
5.FilldataSetCatchfillExceptionAsSystem.ExceptionThrowfillExceptionFinallydataSet.EnforceConstraints=TrueMe.OleDbConnection
1.CloseEndTryEndSubDimDataType100AsString该数组用来存储字段的数据类型DimSqlStringAsStringDimOrderStringAsStringDimQueryStringAsString这三个字符串变量用来存储查询语句SqlString变量用来存储查询语句中除了ORDERBY子句之外的部分OrderString变量用来存储ORDERBY子句QueryString变量存储查询语句PrivateSub综合查询_LoadByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandlesMyBase.Load初始化列表“cmbBox查询表”Me.cmbBox查询表.Items.Add读者信息Me.cmbBox查询表.Items.Add管理者信息Me.cmbBox查询表.Items.Add借阅信息Me.cmbBox查询表.Items.Add书籍信息Me.cmbBox查询表.Items.Add出版社信息Me.cmbBox查询表.SelectedIndex=0将列表的第一项设为选中项EndSubPrivateSubcmbBox查询表_SelectedIndexChangedByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandlescmbBox查询表.SelectedIndexChanged在“cmbBox查询表”中选择一项作为查询表则在“cmbBox查询依据”“cmbBox排序依据”将自动填充查询表中的所有字段保持数据表与字段二者的一致性Dimstr_TableAsStringstr_Table=Me.cmbBox查询表.SelectedItemIfstr_Table=ThenReturnMe.cmbBox查询依据.Items.ClearMe.cmbBox排序依据.Items.ClearDimmySelectQueryAsString=SELECT*FROM+str_TableDimmyCommandAsNewOleDb.OleDbCommandmySelectQueryMe.OleDbConnection1IfMe.OleDbConnection
1.State=ConnectionState.ClosedThenMe.OleDbConnection
1.OpenEndIfDimmyReaderAsOleDb.OleDbDataReadermyReader=myCommand.ExecuteReaderDimiAsIntegerFori=0TomyReader.FieldCount-1DataTypei=myReader.GetFieldTypei.NameMe.cmbBox排序依据.Items.AddmyReader.GetNamei.ToStringMe.cmbBox查询依据.Items.AddmyReader.GetNamei.ToStringNextmyReader.CloseMe.cmbBox查询依据.SelectedIndex=0Me.cmbBox排序依据.SelectedIndex=0EndSubPrivateSubbtn执行查询_ClickByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandlesbtn执行查询.ClickIfDataTypeMe.cmbBox查询依据.SelectedIndex=Int32ThenSqlString=SELECT*FROM+Me.cmbBox查询表.Text+WHERESqlString=SqlString+Me.cmbBox查询依据.Text++_Me.cmbBox运算符.Text+++Me.edit指定值.Text+ElseIfDataTypeMe.cmbBox查询依据.SelectedIndex=StringThenSqlString=SELECT*FROM+Me.cmbBox查询表.Text+WHERESqlString=SqlString+Me.cmbBox查询依据.Text++_Me.cmbBox运算符.Text+++Me.edit指定值.Text+ElseIfDataTypeMe.cmbBox查询依据.SelectedIndex=DateThenSqlString=SELECT*FROM+Me.cmbBox查询表.Text+WHERESqlString=SqlString+Me.cmbBox查询依据.Text++_Me.cmbBox运算符.Text+Cdate+Me.edit指定值.Text+EndIfOrderString=Me.cmbBox排序依据.TextQueryDataSqlStringOrderStringIfMe.cmbBox查询表.Text=读者信息ThenMe.OleDbInsertCommand
2.CommandText=QueryStringEndIfIfMe.cmbBox查询表.Text=管理者信息ThenMe.OleDbInsertCommand
3.CommandText=QueryStringEndIfIfMe.cmbBox查询表.Text=借阅信息ThenMe.OleDbInsertCommand
4.CommandText=QueryStringEndIfIfMe.cmbBox查询表.Text=书籍信息ThenMe.OleDbInsertCommand
5.CommandText=QueryStringEndIfIfMe.cmbBox查询表.Text=出版社信息ThenMe.OleDbInsertCommand
1.CommandText=QueryStringEndIfTryMe.LoadDataSet尝试加载数据集Me.DataGrid
1.DataMember=Me.cmbBox查询表.TextCatcheLoadAsSystem.ExceptionSystem.Windows.Forms.MessageBox.ShoweLoad.MessageEndTryEndSubEndClass用户登录读者信息管理出版社信息管理书籍信息管理借阅信息管理管理者信息管理注销客户机数据库服务器。