C#图书馆管理系统课程设计报告图书馆管理系统

上传人:仙*** 文档编号:28092484 上传时间:2021-08-23 格式:DOC 页数:41 大小:486KB
收藏 版权申诉 举报 下载
C#图书馆管理系统课程设计报告图书馆管理系统_第1页
第1页 / 共41页
C#图书馆管理系统课程设计报告图书馆管理系统_第2页
第2页 / 共41页
C#图书馆管理系统课程设计报告图书馆管理系统_第3页
第3页 / 共41页
资源描述:

《C#图书馆管理系统课程设计报告图书馆管理系统》由会员分享,可在线阅读,更多相关《C#图书馆管理系统课程设计报告图书馆管理系统(41页珍藏版)》请在装配图网上搜索。

1、C#图书馆管理系统课程 设计报告 2010/5/31 设计题目 图书馆管理系统 学生姓名 学 号 专业班级 08 计算机 指导教师 1 摘 要 随 着 现 代 科 学 技 术 的 进 步 , 人 类 社 会 正 逐 走 向 信 息 化 。 图 书 馆 拥 有 丰 富 的 文 献 信 息 资 源 , 是 社 会 信 息 系 统 的 重 要 组 成 部 分 , 在 信 息 社 会 中 的 作 用 愈 来 愈 重 要 。 我 国 图 书 馆 计 算 机 等 信 息 技 术 的 应 用 起 步 于 20 世 纪 70 年 代 末 期 , 随 着 改 革 开 放 的 步 伐 得 以 迅 速 发 展 ,

2、特 别 是 90 年 代 以 后 , 我 国 图 书 馆 信 息 网 络 建 设 取 得 了 较 大 发 展 , 图 书 馆 信 息 化 建 设 迈 上 了 一 个 新 台 阶 。 本 文 介 绍 了 在 Visual C#.NET 环 境 下 开 发 图 书 管 理 信 息 系 统 的 过 程 。 文 章 介 绍 了 图 书 馆 管 理 信 息 系 统 的 系 统 分 析 部 分 , 包 括 可 行 性 分 析 、 图 书 借 阅 流 程 分 析 等 ; 系 统 设 计 部 分 主 要 介 绍 了 系 统 功 能 设 计 和 数 据 库 设 计 及 代 码 设 计 ; 系 统 实 现 部 分

3、 说 明 了 几 个 主 要 模 块 的 算 法 , 本 系 统 界 面 友 好 , 操 作 简 单 , 比 较 实 用 。 【 项 目 任 务 目 标 】 : 本 图 书 馆 管 理 系 统 总 的 实 现 目 标 是 :建 立 以 馆 藏 目 录 为 基 础 的 书 目 数 据 库 ;实 现 馆 内 采 购 、 编 目 、 流 通 、 文 献 检 索 等 信 息 化 管 理 ; 建 立 图 书 馆 动 态 网 站 ; 接 入 校 园 网 为 广 大 师 生 及 时 提 供 馆 内 的 最 新 信 息 。 长 期 的 目 标 还 要 实 现 直 接 浏 览 电 子 图 书 以 及 馆 际 间

4、 的 图 书 借 等 。 1 目录 摘 要 .1 第一章 系统概述 .2 1.1 图书馆管理系统需求分析 .2 1 11 系统需求 .2 1 12 开发环境 .2 1.2 系统的功能简介 .4 (1) 项目规划 .5 (2)系统管理模块 .5 (3)读者管理模块 .5 (4)流通管理模块 .5 (5)图书管理模块 .5 (6)系统开发的目标 .5 第二章 图书馆管理系统数据库分析 .6 2.1 图书馆管理系统示意图 .6 系统流程图如下: .7 2.2 图书馆管理系统数据表清单: .7 第三章 图书馆数据库设计 .8 3.1 创建数据库 .8 32 数据库设计 .8 (1) 本系统中所涉及到的

5、主要实体共有六个数据表: .8 (2) 各表的物理结构如下: .9 第四章 系统的功能 .13 41 系统登陆界面: .13 42 系统主界面: .14 43 用户管理模块: .15 44 读者类别管理模块: .16 45 图书借阅: .17 46 图书类别设置: .18 第五章 课程设计总结 .19 2 第六章:参考文献 .20 第一章 系统概述 本图书管理系统就是将传统图书馆业务的手工操作转变成由计算机馆理, 即图书馆的图书期刊、音像资料等各种载体文献的采编、典藏、流通、检索及 常规业务管理等工作,利用计算机技术,使得图书馆的管理更智能、更有效的 进行,最终的目的以方便图书借阅者方便借阅及

6、管理者高效、方便管理为目的。 1.1 图书馆管理系统需求分析 111 系统需求 通过调查,要求系统需要有以下功能: 由于操作人员的计算机知识普遍较差,要求有良好的人机界面; 由于该系统的使用对象多,要求有较好的权限管理; 原始数据修改简单方便,支持多条件修改 方便的数据查询,支持多条件查询; 在相应的权限下,删除数据方便简单,数据稳定性好; 数据计算自动完成,尽量减少人工干预; 112 开发环境 本系统的设计是在 Windows XP 中文版操作系统环境下,使用 Microsoft 3 Visual Studio 2005 中文版开发成功的。数据库是使用 SQL server 2005 中文

7、版,它是基于客户机/服务器体系结构的多线程、高性能的数据库管理系统。由 于它具有对数据集中进行管理,保证数据的安全性和完整性,可以优化系统性 能,支持开放性等优点,在各个行业中都得到了广泛的应用。 Visual C#.NET .NET 首先是一个开发平台,它定义了一种公用语言子集(Common Language Subsct,CLS),这是一种为符合其规范的语言与类库之间提供无缝集成的混合语。 .NET 统一了编程类库,提供了对下一代多络通信标准,可扩展标记语言 (Extensible Markup Language,XML)的完全支持,使应用程序的开发变得更容易 更简单.Microsoft.

8、NET 计划还将实现人机交互方面的革命,微软将在其软件中 添加手写和语音识别的功能,让人们能够与计算机进行更好的交流,并在此基础 上继续扩展功能,增加对各种用户终端的支持能力。最为重要的,.NET 将改变 因特网的行为方式:软件将变成为服务。与 Microsoft 的其它产品一样,.NET 与 Windows 平台紧密集成,并且与其它微软产品相比它更进一步:由于其运行 库已经与操作系统融合在了一起,从广义上把它称为一个运行库也不为过。 简而言之,.NET 是一种面向网络、支持各种用户终端的开发平台环境。微 软的宏伟目标是让 Misrosoft.NET 彻底改变软件的开发方式、发行方式、使用 方

9、式等等,并且不止是针对微软一家,而是面向所有开发商与运营商!.NET 的 核心内容之一就是要搭建第三代因特网平台,这个网络平台将解决网站之间的 协同合作问题,从而是最大限度地获取信息。在.NET 平台上,不同网站之间通 过相关的协定联系在一起,网站之间形成自动交流,协同工作,提供最全面的 服务。 C#既具有 C+语言功能强大、灵活,又具有 VB 的简单易学、高效的优点, 4 利用它可以方便快捷地开发基于文字处理、图开图像、数据库、多媒体、网络 的 Windows 应用程序和 Web 应用程序,它对于迅速崛起的 XML 和 Web Service 也提供了全方位的支持。因此,越来越多的人选择它作

10、为程序设计语言。 可视化编程: 用传统程序设计语言设计程序时,都是通过编写程序代码来设计用户界面, 在设计过程中看不到界面的实际显示效果,必须编译后运行程序才能观察。如 果对界面的效果不满意,还要回到程序中修改。有时候,这种编程-编译-修改 的操作可能要反复多次,大大影响了软件开发效率。Microsoft Visual Studio 2005 提供了可视化设计工具,把 Windows 界面设计的复杂性“封装”起来,开 发人员不必为界面设计而编写大量程序代码。只需要按设计要求的屏幕布局, 用系统提供的工具,在屏幕上画出各种“部件” ,即图形对象,并设置这些图形 对象的属性。Microsoft V

11、isual Studio 2005 自动产生界面设计代码,程序设 计人员只需要编写实现程序功能的那部分代码,从而可以大大提高程序设计的 效率。 面向对象的程序设计 Microsoft Visual Studio 2005 支持面向对象的程序设计,但它与一般的 面向对象的程序设计语言(C+)不完全相同。在一般的面向对象程序设计语言中, 对象由程序代码和数据组成,是抽象的概念;而 Microsoft Visual Studio 2005 则是应用面向对象的程序设计方法,把程序和数据封装起来作为一个对象, 并为每个对象赋予应有的属性,使对象成为实在的东西。在设计对象时,不必 编写建立和描述每个对象的

12、程序代码,而是用工具画在界面上,Microsoft Visual Studio 2005 自动生成对象的程序代码并封装起来。每个对象以图形方 式显示在界面上,都是可视的。 5 1.2 系统的功能简介 本系统主要可以实现以下的管理功能:读者管理、流通管理、图书管理、 系统管理等等。 (1) 项目规划 图书馆管理系统是一个典型的数据库应用程序,由系统管理、读者管理、流 通管理、图书管理等模块组成,特规划如下: (2)系统管理模块 该模块的主要任务是维护系统的正常运行和安全性设置,包括新图书管理员 的添加、修改密码、照片的添加等等。 (3)读者管理模块 该模块的功能是实现对读者类别的设置、读者档案的

13、管理、借书证挂失与 恢复以及过期续证管理。 (4)流通管理模块 该模块的主要功能是对图书的借阅、归还、逾期清单和过期后罚款的一些 管理。 (5)图书管理模块 该模块的主要功能有:图书类别设置、图书档案管理、出版社管理、图书 6 注销、图书征定、图书验收、图书盘点等对图书的管理。 (6)系统开发的目标 图书馆管理系统总的实现目标是:建立以馆藏目录为基础的书目数据库; 实现馆内采购、编目、流通、文献检索等信息化管理;建立图书馆动态网站; 接入校园网为广大师生及时提供馆内的最新信息。长期的目标还要实现直接浏 览电子图书以及馆际间的图书互借等。 第二章 图书馆管理系统数据库分析 2.1 图书馆管理系统

14、示意图 图书馆管理系统 读 者 管 理 读 者 类 别 设 置 读 者 档 案 管 理 借 书 证 挂 失 与 恢 复 过 期 续 证 管 理 图 书 管 理 图 书 类 别 设 置 图 书 档 案 管 理 出 版 社 管 理 图 书 注 销 图 书 征 定 图 书 验 收 图 书 盘 点 流 通 管 理 图 书 借 阅 图 书 归 还 逾 期 清 单 图 书 罚 款 7 系统流程图如下: 读者管理 读者信息 管理员 图书管理 流通管理 图书信息 图书借阅 图书归还 逾期清单 图书罚款 2.2 图书馆管理系统数据表清单: 数据表名称 数据表用途 出版社 保存图书对应出版社的基础信息 读者类型

15、保存读者类型及相关信息 读者信息 保存读者的各种信息 供应商 保存图书供应商信息 管理员 保存用户信息 期刊丢失 保存期刊丢失记录 期刊罚款 保存期刊罚款记录 期刊归还 保存期刊归还记录 期刊借阅 保存期刊借阅记录 期刊类型 保存期刊类型及相关信息 期刊信息 保存期刊信息 期刊征订 保存期刊征订入库记录 期刊注销 保存期刊注销记录 书架 保存图书馆内数据的基础信息 图书丢失 保存图书丢失记录 图书罚款 保存图书罚款记录 8 图书馆 保存图书馆的基础信息 图书归还 保存图书归还记录 图书借阅 保存图书借阅记录 图书类型 保存图书类型及相关信息 图书信息 保存图书信息 图书征订 保存图书征订入库记

16、录 图书注销 保存图书注销记录 文献尺寸 保存文献(包括图书和期刊)的尺寸基础信息 文献等级 保存文献(包括图书和期刊)的等级基础信息 文献附件 保存文献(包括图书和期刊)的附件基础信息 文献印刷 保存文献(包括图书和期刊)的印刷基础信息 文献语系 保存文献(包括图书和期刊)的语系基础信息 第三章 图书馆数据库设计 3.1 创建数据库 打开 SQL Server 企业管理器 ,新建一个数据库,名称为 xmm。利用光盘中的脚本代码 “建库脚本图书馆管理系统.sql”文件创建数据库对象,完成数据库的设计也可以利用” 建库脚本xmm.bak”文件直接恢复数据库,这样数据库中存在初始的图书信息和系统数

17、据. 32 数据库设计 (1) 本系统中所涉及到的主要实体共有六个数据表: a) “读者信息”表:-条形码,编号,姓名,性别,类型,出生日期,有效证件,证 件号码,联系方式,登记日期,有限期至,操作员,备注,图书借阅次数,期刊借 阅次数,是否挂失 b) “图书信息”表:-条形码,编号,书名,类型,作者,译者,ISBN,出版社, 9 价格,页码,书架名称,现存量,库存总量,入库时间,操作员,简介,借出次数, 是否注销 c) “图书借阅”表:-借阅编号,图书编号,读者编号,借阅时间,应还时间,续 借次数,操作员,状态 d) “图书归还”表:-归还编号,图书编号,读者编号,退还押金,归还时间,操 作

18、员,确认归还 e) “图书征订”表:-征订编号,图书编号,订购者,订购者联系方式,订购 数量,订购单价,订购日期,是否验收,验收日期,操作员 f) “图书罚款”表:-罚款编号,图书编号,读者编号,罚款日期,应罚日期,应 罚金额,实收金额,是否交款,备注 g) “管理员”表:-编号,姓名,年龄,联系电话,地址,照片,权限,说明,密 码 (2) 各表的物理结构如下: 读者信息表: 字段名称 类型 宽度 是否为空 条形码 Varchar 20 否 编号 Varchar 20 否 姓名 Varchar 10 否 性别 Varchar 4 否 类型 Varchar 20 否 出生日期 Smallldat

19、etime 是 10 有效证件 Varchar 30 否 证件号码 Varchar 30 否 联系方式 Varchar 200 是 登记日期 Smalldatetime 否 有限期至 Smalldatetime 否 操作员 Varchar 10 否 备注 Ntext 是 图书借阅次数 Int 否 期刊借阅次数 Int 否 是否挂失 bit 否 图书信息表: 字段名称 类型 宽度 是否为空 条形码 Varchar 20 否 编号 varchar 20 否 书名 varchar 100 否 类型 varchar 50 否 作者 varchar 200 是 译者 varchar 100 是 ISBN

20、 varchar 20 否 出版社 varchar 50 是 价格 Money 是 页码 Int 是 11 书架名称 Varchar 100 否 现存量 Int 是 库存总量 Int 是 入库时间 Smalldatetime 否 操作员 Varchar 10 否 简介 Ntext 是 借出次数 Int 否 是否注销 Bit 否 图书借阅表: 字段名称 类型 宽度 是否为空 借阅编号 Int 16 否 图书编号 Varchar 20 否 读者编号 Varchar 5 否 借阅时间 Smalldatetime 8 否 应还时间 Smalldatetime 16 否 绫借次数 Int 8 否 操作员

21、 Varchar 否 状态 varchar 否 图书归还表: 字段名称 类型 宽度 是否为空 归还编号 Int 20 否 图书编号 Varchar 20 否 12 读者编号 Varchar 20 否 退还押金 Money 50 否 归还时间 Smalldatetime 否 操作员 Varchar 10 否 确认归还 bit 否 图书征订表: 字段名称 类型 宽度 是否为空 征订编号 varchar 50 否 图书编号 varchar 50 否 订购者 varchar 100 否 订购者联系方式 varchar 400 是 订购数量 Int 否 订购单价 Money 否 订购日期 Smallda

22、tetim e 否 是否验收 Bit 否 验收日期 Smalldatetim e 否 操作员 varchar 20 否 图书罚款表: 字段名称 类型 宽度 是否为空 罚款编号 Int 否 13 图书编号 Varchar 20 否 读者编号 Varchar 20 否 罚款日期 Smalldatetime 否 应罚金额 Money 否 实收金额 Money 否 是否交款 Bit 否 备注 varchar 200 是 管理员表: 字段名称 类型 宽度 是否为空 编号 Varchar 10 否 姓名 Varchar 10 否 年龄 Varchar 10 是 联系电话 Varchar 10 是 住址 V

23、archar 10 是 照片 Image 16 是 权限 Varchar 10 否 说明 Varchar 10 是 密码 Varchar 10 否 第四章 系统的功能 下面的一些界面都为系统的一些主要运行界面. 14 41 系统登陆界面: 本界面的主要功能是为了对系统进行安全性管理,本系统的用户名和密码 保存在管理员表中,本系统根据不同的用户而设置了不同的权限,例:(用户名: 刘飞,密码:123)即可登陆. 图 4.1 系统登陆界面 42 系统主界面: 本界面是系统的主界面,在本界面上集成了本系统的所有功能,共有 7 个 功能菜单和 21 个子菜单(功能模块) ,从而实现了本系统从读者管理、流

24、通管 理、图书管理、系统管理等系统的具体功能,同时,在系统管理模块中可以完 成对本系统的安全性管理。 15 图 4.2 系统主界面 43 用户管理模块: 此界面是本系统的安全性设置模块,根据不同的管理员对本系统的管理不 同,从而实行了分级管理,对用户的权限和类别进行了分类管理。 16 44 读者类别管理模块: 因为本系统中有些功能模块具有相似之处,因此在本文只用此模块进行一个 简单的说明。其它的相似模块的代码可能参阅本模块的设计思路。 17 45 图书借阅: 本模块为系统的主要工作模块,是管理日常的图书的借阅的一些工作,别一 图书归还与之类似,在这里就不一一列出了. 18 46 图书类别设置:

25、 本模块为管理图书馆内的图书类型,在入库的时候做出分类,以便以后便易查找.为借阅 者带来便利. 19 第五章 课程设计总结 在本系统的开发过程中,由于我是初次开发软件,在知识、经验方面都存 在着不足。另外,在整个开发的过程中,时间也比较仓促。因此,该系统必然 会存在一些缺陷和不足。因为对图书馆管理图书的整个流程不够熟悉,在需求 分析时未能做到完全满足用户的需求。虽然网络在图书馆管理系统中的应用不 是很多,但是未来的发展方向,在本次开发过程由于硬件的限制,未能实现网 络功能,因此在以后的系统更新过程中可能会造成一些不必要的数据损失。 尽管本管理系统存在着很多不足,但其功能全面、易于日后程序更新、

26、数 据库管理容易、界面友好、操作方便、效率高、安全性好等优点是本管理系统 所必需的。相信本图书馆管理系统是一套学校在日常管理中必不可少的管理软 20 件,通过开发这个系统,我掌握了项目开发的本过程,了解了基本知识巩固了 我对 C#2005 的学习,但在这次毕业设计中的最大收获并不是掌握这几门开发工 具的应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮助的精 神。 在课程设计总结即将完成之际,回顾紧张但又充实的学习班和开发过程, 本人在此向所有关心我的及帮助我的老师和同学们致以最真诚的感谢。 在本次毕业设计中,我从指导老师-朱会东老师,身上学到了很多 东西。他认真负责的工作态度,严谨的

27、治学精神和深厚的理论水平都使我收益 匪浅。他无论在理论上还是在实践中,都给与我很大的帮助,使我得到很大的 提高,这对于我以后的工作和学习都有一种巨大的帮助,在此感谢他耐心的辅 导。 另外,我还要感谢在这几年来对我有所教导的老师,他们孜孜不倦的教诲 不但让我学到了很多知识,而且让我掌握了学习的方法,更教会了我做人处事 的道理,在此表示感谢。同时,在系统开发过程中还有段传鑫同学也给了我不 少帮助,这里一并表示感谢。 第六章:参考文献 1 周佩德.数据库原理及应用.电子工业出版社 2 马骏等,Microsoft Visual Studio 2005 C#程序设计教程,2008 6 王要武,管理系统,

28、电子工业出版社,2005 7 李红等编著,管理信息系统开发与应用,电子工业出版社,2005 第七章:主要代码 21 主要模块程序代码如下: 程序登陆界面: public int power; private void button1_Click(object sender, EventArgs e) sqlConnection1.Open(); if (textBox1.Text = | textBox2.Text = ) MessageBox.Show(请输入用户名和密码,然后再登录!); return; string sql = select 权限 from 管理员信息 where 姓名=

29、 + textBox1.Text.Trim() + and 密码= + textBox2.Text.Trim() + ; SqlCommand mycom = null; try mycom = new SqlCommand(sql, sqlConnection1); SqlDataReader mydr = mycom.ExecuteReader(); if (mydr.HasRows) mydr.Read(); power = Convert.ToInt32(mydr0); switch (power) case 220: this.读者管理ToolStripMenuItem.Enable

30、d = true; break; case 330: this.读者管理ToolStripMenuItem.Enabled = true; this.图书管理ToolStripMenuItem.Enabled = true; break; case 110: this.读者管理ToolStripMenuItem.Enabled = true; 22 this.流通管理ToolStripMenuItem.Enabled = true; this.图书管理ToolStripMenuItem.Enabled = true; this.系统管理ToolStripMenuItem.Enabled = t

31、rue; break; default: MessageBox.Show(你没有使使用本系统的权限); break; MessageBox.Show(登录成功!); panel1.Hide(); label4.Visible = true; mydr.Close(); else MessageBox.Show(没有这个用户或密码不正确,请重新登录!); catch (SqlException a) MessageBox.Show(a.Message, 错误); sqlConnection1.Close(); 读者类别管理模块: public BindingManagerBase Navigat

32、or; public void TextReadOnly(bool A) textBox2.ReadOnly = A; textBox3.ReadOnly = A; textBox4.ReadOnly = A; textBox5.ReadOnly = A; 23 private void 读者类型管理_Load(object sender, EventArgs e) sqlDataAdapter1.Fill(dataSet11,读者类型); Navigator = this.BindingContextdataSet11, 读者类型; TextReadOnly(true); private v

33、oid button1_Click(object sender, EventArgs e) dataGrid1.UnSelect(Navigator.Position); Navigator.Position = 0; dataGrid1.Select(Navigator.Position); dataGrid1.CurrentRowIndex = Navigator.Position; return; private void button2_Click(object sender, EventArgs e) if (Navigator.Position != 0) dataGrid1.Un

34、Select(Navigator.Position); Navigator.Position-; dataGrid1.Select(Navigator.Position); dataGrid1.CurrentRowIndex = Navigator.Position; else return; private void button3_Click(object sender, EventArgs e) if (Navigator.Position != Navigator.Count - 1) dataGrid1.UnSelect(Navigator.Position); Navigator.

35、Position+; 24 dataGrid1.Select(Navigator.Position); dataGrid1.CurrentRowIndex = Navigator.Position; else return; private void button4_Click(object sender, EventArgs e) dataGrid1.UnSelect(Navigator.Position); Navigator.Position = Navigator.Count - 1; dataGrid1.Select(Navigator.Position); dataGrid1.Cu

36、rrentRowIndex = Navigator.Position; return; /-新增 private void button5_Click(object sender, EventArgs e) Navigator.AddNew(); TextReadOnly(false); /-修改- private void button6_Click(object sender, EventArgs e) TextReadOnly(false); /-删除- private void button7_Click(object sender, EventArgs e) DialogResult

37、 result = MessageBox.Show(确定删除这条记录吗?,删除提示 ,MessageBoxButtons.OKCancel,MessageBoxIcon.Error); if (result = DialogResult.OK) Navigator.RemoveAt(Navigator.Position); sqlDataAdapter1.Update(dataSet11, 读者类型); 25 else MessageBox.Show(无可删除数据, 提示, MessageBoxButtons.OK, MessageBoxIcon.Error); /-提交 private vo

38、id button8_Click(object sender, EventArgs e) if (textBox2.Text = ) MessageBox.Show(类型不能为空); Navigator.EndCurrentEdit(); if (dataSet11.GetChanges() != null) try sqlDataAdapter1.Update(dataSet11, 读者类型); TextReadOnly(true); catch (Exception express) MessageBox.Show(express.ToString(), 提示, MessageBoxBut

39、tons.OK, MessageBoxIcon.Error); dataSet11.RejectChanges(); MessageBox.Show(操作成功!); return; /-取消- private void button9_Click(object sender, EventArgs e) 26 Navigator.CancelCurrentEdit(); TextReadOnly(true); /-退出- private void button10_Click(object sender, EventArgs e) this.Close(); /-搜索- private void

40、 button11_Click(object sender, EventArgs e) sqlConnection1.Open(); SqlDataAdapter myda = new SqlDataAdapter(select * from 读者类型 where 类型 like %+textBox1.Text+%,sqlConnection1); dataSet11.Clear(); myda.Fill(dataSet11,读者类型); sqlConnection1.Close(); 图书管理模块: private BindingManagerBase Navigator; public 图

41、书档案管理() InitializeComponent(); private void 图书档案管理_Load(object sender, EventArgs e) TextReadOnly(true); sqlDataAdapter1.Fill(dataSet11, 图书信息); Navigator = this.BindingContextdataSet11, 图书信息; /-首记录上一条下一条尾记录- private void button1_Click(object sender, EventArgs e) dataGrid1.UnSelect(Navigator.Position)

42、; Navigator.Position = 0; 27 dataGrid1.Select(Navigator.Position); dataGrid1.CurrentRowIndex = Navigator.Position; private void button2_Click(object sender, EventArgs e) if (Navigator.Position != 0) dataGrid1.UnSelect(Navigator.Position); Navigator.Position-; dataGrid1.Select(Navigator.Position); da

43、taGrid1.CurrentRowIndex = Navigator.Position; else dataGrid1.UnSelect(Navigator.Position); Navigator.Position=0; dataGrid1.Select(Navigator.Position); dataGrid1.CurrentRowIndex = Navigator.Position; private void button3_Click(object sender, EventArgs e) if (Navigator.Position != Navigator.Count-1) d

44、ataGrid1.UnSelect(Navigator.Position); Navigator.Position+; dataGrid1.Select(Navigator.Position); dataGrid1.CurrentRowIndex = Navigator.Position; else dataGrid1.UnSelect(Navigator.Position); Navigator.Position = Navigator.Count - 1; 28 dataGrid1.Select(Navigator.Position); dataGrid1.CurrentRowIndex

45、= Navigator.Position; private void button4_Click(object sender, EventArgs e) dataGrid1.UnSelect(Navigator.Position); Navigator.Position = Navigator.Count - 1; dataGrid1.Select(Navigator.Position); dataGrid1.CurrentRowIndex = Navigator.Position; /-新增修改删除提交 取消退出- public void TextReadOnly(bool A) textB

46、ox2.ReadOnly = A; textBox3.ReadOnly = A; textBox4.ReadOnly = A; textBox5.ReadOnly = A; textBox6.ReadOnly = A; textBox7.ReadOnly = A; textBox9.ReadOnly = A; textBox10.ReadOnly =A; textBox11.ReadOnly=A; comboBox2.Enabled = !A; comboBox3.Enabled = !A; public void SetValue() sqlConnection1.Open(); SqlCo

47、mmand com = new SqlCommand(select max(编号) as 最大编号 from 图书信息, sqlConnection1); int maxID = 1; 29 object result = com.ExecuteScalar(); if (result != System.DBNull.Value) maxID = Convert.ToInt32(result) + 1; int length=maxID.ToString().Length; switch (length) case 1: textBox3.Text = 000000 + maxID.ToSt

48、ring(); break; case 2: textBox3.Text = 00000 + maxID.ToString(); break; case 3: textBox3.Text = 0000 + maxID.ToString(); break; case 4: textBox3.Text = 000 + maxID.ToString(); break; case 5: textBox3.Text = 00 + maxID.ToString(); break; case 6: textBox3.Text = 0 + maxID.ToString(); break; case 7: te

49、xtBox3.Text = maxID.ToString(); break; sqlConnection1.Close(); private void button5_Click(object sender, EventArgs e) Navigator.AddNew(); 30 SetValue(); TextReadOnly(false); private void button7_Click(object sender, EventArgs e) DialogResult result = MessageBox.Show(确定要删除吗?, 删除数据, MessageBoxButtons.

50、OKCancel); if (result = DialogResult.OK) if (Navigator.Count 0) Navigator.RemoveAt(Navigator.Position); sqlDataAdapter1.Update(dataSet11, 图书信息); else MessageBox.Show(无删除数据, 提示, MessageBoxButtons.OK, MessageBoxIcon.Error); private void button6_Click(object sender, EventArgs e) TextReadOnly(false); pr

51、ivate void button8_Click(object sender, EventArgs e) Navigator.CancelCurrentEdit(); TextReadOnly(true); private void button11_Click(object sender, EventArgs e) if(textBox3.Text=|textBox4.Text=|comboBox2.Text=|comboBox3.Text=) MessageBox.Show(编号,书名,类型和书架是必填字段!请填写完整!,提示, MessageBoxButtons.OK, MessageB

52、oxIcon.Warning); return; 31 Navigator.EndCurrentEdit(); if (dataSet11.GetChanges() != null) sqlDataAdapter1.Update(dataSet11, 图书信息); TextReadOnly(true); return; private void button9_Click(object sender, EventArgs e) this.Close(); /-搜索 private void button10_Click(object sender, EventArgs e) sqlConnec

53、tion1.Open(); string str=; if (comboBox4.Text = 模糊) switch (comboBox1.SelectedIndex) case 0: str = select * from 图书信息; break; case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: str = select * from 图书信息 where +comboBox1.Text+ like % + textBox1.Text + %; 32 break; default: str = select *

54、from 图书信息; break; else switch (comboBox1.SelectedIndex) case 0: str = select * from 图书信息; break; case 1: case 2: case 3: case 4:case 5: case 6:case 7: case 8: str = select * from 图书信息 where + comboBox1.Text + = + textBox1.Text + ; break; default: str = select * from 图书信息; break; SqlDataAdapter myda

55、= new SqlDataAdapter(str, sqlConnection1); dataSet11.Clear(); myda.Fill(dataSet11, 图书信息); sqlConnection1.Close(); public static string shuJiaName, leiXing; private void comboBox3_DropDown(object sender, EventArgs e) comboBox3.Text = ; Selectbook f = new Selectbook(); f.Text = 双击表格选择书架; f.ShowDialog(

56、); comboBox3.Text =shuJiaName; 33 comboBox2.Text = leiXing; private void comboBox2_DropDown(object sender, EventArgs e) comboBox2.Text = ; Selectbook f1 = new Selectbook(); f1.Text = 双击表格选择类型; f1.ShowDialog(); comboBox3.Text = shuJiaName; comboBox2.Text = leiXing; 流通管理: private void TextReadOnly(boo

57、l A) textBox2.ReadOnly = A; textBox3.ReadOnly = A; textBox4.ReadOnly = A; public string readerID; public DataTable tb; public int outnum, thisnum; public void DataGridinfo() tb = new DataTable(); tb.Columns.Add(状态, typeof(string); tb.Columns.Add(图书编号, typeof(string); tb.Columns.Add(书名, typeof(string

58、); tb.Columns.Add(借阅时间, typeof(string); tb.Columns.Add(应还时间, typeof(string); tb.Columns.Add(出版社, typeof(string); tb.Columns.Add(价格, typeof(string); dataGrid1.DataSource = tb; /tb.Rows.Add(tb.NewRow(); /*DataGridTableStyle ts = new DataGridTableStyle(); 34 DataGridTextBoxColumn aColumnTextColumn; ts.

59、AllowSorting = false; ts.AlternatingBackColor = Color.LightCoral; ts.MappingName = tb.TableName;*/ private void 图书借阅_Load(object sender, EventArgs e) DataGridinfo(); label6.Text = 已借书0本; label7.Text = 本次借书0本; TextReadOnly(true); private void textBox1_KeyPress(object sender, KeyPressEventArgs e) if (

60、e.KeyChar=13 textBox3.Clear(); textBox4.Clear(); showinfo(); /-显示- - private void showinfo() sqlConnection1.Open(); string str=; if (radioButton1.Checked = true) str = select 姓名,读者信息.类型,图书册数,编号 from 读者信息 ,读者类型 where 读者信息.类型=读者类型.类型 and 读者信息.编号= + textBox1.Text + ; if (radioButton2.Checked = true) st

61、r = select 姓名,读者信息.类型,图书册数,编号 from 读者信息 ,读者类型 where 35 读者信息.类型=读者类型.类型 and 读者信息.条形码= + textBox1.Text + ; SqlCommand mycom = new SqlCommand(str,sqlConnection1); SqlDataReader mydr = mycom.ExecuteReader(); mydr.Read(); if (mydr.HasRows = false) MessageBox.Show(无此读者,请检查后重新输入, 错误, MessageBoxButtons.OK,

62、MessageBoxIcon.Error); return; else textBox2.Text = mydr.GetValue(0).ToString(); textBox3.Text = mydr.GetValue(1).ToString(); textBox4.Text = mydr.GetValue(2).ToString(); readerID = mydr.GetValue(3).ToString(); mydr.Close(); string str1 = select 状态,图书编号,书名,借阅时间,应还时间,出版社,价格 from 图书 信息 join 图书借阅 on 图书

63、信息.编号=图书借阅.图书编号 where 状态=未还 and 读者编号 =+readerID+; SqlDataAdapter da = new SqlDataAdapter(str1, sqlConnection1); tb.Clear(); da.Fill(tb); outnum = tb.Rows.Count; thisnum = 0; label6.Text = 已借书 + outnum + 本; label7.Text = 本次借书 + thisnum + 本; groupBox2.Enabled = true; textBox5.Focus();/- sqlConnection1

64、.Close(); 36 private void textBox5_KeyPress(object sender, KeyPressEventArgs e) if (e.KeyChar = 13 /-借书 private void borrowbook() if (outnum = Convert.ToInt32(textBox4.Text.Trim() MessageBox.Show(已经达到最大借书数量,请先归还书籍后再借书, 提示, MessageBoxButtons.OK, MessageBoxIcon.Information); return; sqlConnection1.Ope

65、n(); string str1 = ; if (radioButton1.Checked = true) str1 = select 编号,书名,出版社,价格,类型 from 图书信息 where 编号= + textBox5.Text + ; if (radioButton2.Checked = true) str1 = select 编号,书名,出版社,价格,类型 from 图书信息 where 条形码= + textBox5.Text + ; SqlCommand com = new SqlCommand(str1,sqlConnection1); SqlDataReader dr =

66、 com.ExecuteReader(); DataRow arow = tb.NewRow(); string bookType; dr.Read(); if (dr.HasRows = false) 37 MessageBox.Show(无此图书,请检查后重新输入, 错误, MessageBoxButtons.OK, MessageBoxIcon.Error); return; else /判断该读者是否已经借过该编号的书没有就在表中新增一行 string newbookID = dr.GetValue(0).ToString(); foreach (DataRow newRow in tb.Rows) if (newRow图书编号.ToString().Trim() = newbookID.Trim() MessageBox.Show(该读者已经借有此书,不能再借, 信息, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; arow图书编号 = dr.GetValue(0).ToString(); arow书名 = dr

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!