人事管理系统毕业论文.pdf
《人事管理系统毕业论文.pdf》由会员分享,可在线阅读,更多相关《人事管理系统毕业论文.pdf(74页珍藏版)》请在咨信网上搜索。
人事管理系统.2摘 要.21 前言.41.2 人事管理系统发展趋势.51.2.1 世界趋势.51.2.2 技术革新.51.2.3 工作目标和价值观的改变.51.3 系统调研.61.3.1 社会可行性分析.61.3.2 技术可行性分析.61.3.3 经济可行性分析.61.3.4 管理可行性分析.72 开发工具及其语言特点.72.2.1 简洁的语法.82.2.2 精心地面向对象设计.92.2.3 与 Web 的紧密结合.102.2.4 完整的安全性与错误处理.102.2.5 版本处理技术.112.2.6 灵活性和兼容性.113 数据库概述.123.1SQL Server 2008 主要特点.123.1.1.NET 框架.123.1.2XML 技术.123.1.3ADO.NET2.0 版本.123.1.4 增强的安全性.123.1.5Transact-SQL 的增强性能.133.1.6SQL 服务中介.133.1.7 通告服务.133.1.8Web 服务.133.1.9 报表服务.133.1.10 全文搜索功能的增强.143.2C#与 ADO.NET.143.2.1 C#中的数据库访问.143.2.2 数据绑定.243.3 SQL 语言.253.3.1 数据定义语句.253.3.2 视图定义语句.253.3.3 索引定义语句.263.3.4 数据操纵语句.263.3.5INSERT 语句.263.3.6UPDATE 语句.263.3.7DELETE 语句.263.3.8 查询语句.273.3.9 条件查询.273.3.10 查询排序.273.3.11 统计查询.273.3.12Group by 子句.283.3.13Distinct 关键词.283.3.14Top 关键词.283.3.15 多表查询.283.3.16 子查询.283.3.17 备份/还原数据库.294 数据库设计.295 系统需求分析.335.1 系统流程图如下.33附录 各模块实现的主要源代码.491.1 登录模块的设计与实现的主要代码.491.2 登陆实体类:.50Model 类库.50DAL 类库.52BLL 类库.521.3 基础信息管理实现的主要代码:.531.4 人事管理实现主要代码:.541.5 考勤管理实现主要代码:.611.6 职工培训实现主要代码:.621.7 工资管理实现主要代码:.641.8 备忘录主要代码:.661.9 工具管理主要代码:.702.0 数据库管理主要代码:.70/还原数据库.712.1 系统管理主要代码:.72人事管理系统人事管理系统摘摘 要要在当今社会,互联网空前的发展,给人们的工作和生活带来了极大的便利和高效,信息化,电子化已经成为节约运营成本,提高工作效率的首选。考虑到当前大量企业的人事管理尚处于手工作业阶段,不但效率低下,还常常因为管理的不慎而出现纰漏。因此根据部分企业提供的需求,设计此人事管理系统,以帮助企业达到人事管理办公自动化、节约管理成本、提高企业工作效率的目的。本人事管理系统采用 B/S 结构,主要对企业员工的信息以及跟人事相关的工作流程进行集中的管理,方便企业建立一个完善的、强大的员工信息数据库管理。它是以 Visual Studio.NET 2008 技术 和 SQL Server 2005 数据库作为开发平台。使用 C#语言设计操作控件和编写操作程序,完成数据添加、修改、删除、存储、调用查询等功能;并使用 SQL Server 2005 数据库形成数据表,进行数据存储。本文详细介绍了人事管理系统的功能需求,系统设计和具体实现。并简要介绍了系统开发采用的过程方法。关键词关键词 人事管理系统;B/S;.NET;SQL Server;C#;数据库;数据库管理The Design And Implementation Of Personnel Management System Based On B/SAbstractIn todays society,the Internet an unprecedented development,to peoples work and life has brought great convenience and high efficiency,information,electronic has become save operational costs,improve the work efficiency of the first choice.Considering the current large enterprise personnel management is still in manual work stage,not only the efficiency is low,often because of management carelessly and leaks.So according to some enterprises to provide requirements,design the personnel management system,in order to help enterprises to achieve personnel management office automation,saving management cost and improve enterprise efficiency purpose.The personnel management system use B/S structure,mainly to enterprise staffs information and personnel related to the work flow for centralized management,convenient enterprises to establish a perfect,strong employee information database management.It is Visual Studio ASP.NET 2008 technology and SQL Server 2005 database as a development platform.Using c#language design operation control and write operation procedure,complete data add,modify,delete,storage,call the function such as inquires,And use the SQL Server 2005 database form data table,data storage.This paper introduces the personnel management of the functional requirements of the system,system design and realization.And briefly introduces the system development process of the method.Key words:Personnel management system;B/S;.NET;SQL Server;Database;Database management1 前言前言1.1 应用的目的与意义人的管理是一切管理工作的核心。员工代表一个企业的形象,因而人事管理机制设计的好坏,直接影响一个企业的成败。员工的档案管理是企业人事管理的基础,在企业员工普遍流失的今天,一个准确而及时的人事管理系统,有利于人事部门对员工流动进行分析、编制,为企业所需人员提供了保障。人力资源部那些重复的,事务性的工作交给 PMS(Personnel Management System,人事管理系统)来解决,可以省去用户以往人力资源管理工作的繁琐、枯燥;用领先的人力资源管理理念,把人力资源管理的作业流程控制和战略规划设计巧妙地集合于一体;系统重点涉及到人力资源管理工作中的员工资料、考勤、绩效、工资、培训、备忘录、工具管理、等员工基本相关信息、用户管理以及用户角色权限分配等方面,并有综合的系统数据库还原/备份、数据清空、及系统操作日志的导出管理。可以很好地为用户的人力资源管理部门在对员工的成本管理、考勤管理、工资管理等综合管理给予帮助。1.2 人事管理系统发展趋势1.2.1 世界趋势人事管理系统主导 21 世纪,无论是发达国家还是发展中国家,对人力资源的战略性意义都有了深刻的认识,并开始付诸行动。世界公认,21 世纪将是人力资源的世纪;人力资源问题将主导整个 21 世纪甚至更为遥远,这种状况的变化起因于竞争压力。目前,世界经济趋向全球化。世界经济的全球化过程和国家的开放过程,要求组织的管理部门降低管理成本以减少竞争压力和增强竞争能力。对于不同的组织,人力资源成本在总成本中的比例是不一样的。1.2.2 技术革新无论是现在还是将来,工业的发展越来越多地取决于科学和技术、知识与技能。高新科技产业更是如此。这不仅要求员工尤其是技术人员掌握新的科学知识和技术能力,而且更重要的在于要求员工深入而快捷地掌握和应用这些知识和技能。这就导致了两个问题。第一,随着这种技术革新的发展和知识更新速度的加快,人们有更多的职业选择机会。第二,伴随着这种发展以及职业选择机会的增多,人力资源管理活动和频繁程度加剧;而且这种活动对科学技术的要求与它的反应程度也更高了,进而提高了人力资源成本。1.2.3 工作目标和价值观的改变随着社会政治和经济的发展,人们的工作目标和价值观也都发生了重要的变化。这就对人事管理部门和管理人员提出了新的要求和新的问题,不得不考虑诸如工作类型设计、岗位分析、充分尊重员工以及为他们提供良好的个人发展和自我价值实现的环境与条件等问题。这样,人力资源管理就派上了用场。1.3 系统调研1.3.1 社会可行性分析随着计算机的发展与普及,以及互联网技术的扩展,日常劳资人事管理必将实现无纸化办公,并且加入到公司内部的 Intranet 或者是 Internet 上去,实现数据的共享,这样有利于劳资人事信息在单位内部的查询,提高了数据资源的利用,并且能及时的得到更新,不需要象过去那样浪费大量的人力物力去进行抄写,提高了工作的效率1.3.2 技术可行性分析Visual Studio.NET 提供了一个统一的、紧密集成的可视化编程环境,简化了开发应用程序的过程,缩短了实用方法的时间。利用 Visual Studio.NET,可以非常轻松地创建具有自动伸缩能力的可靠的应用程序和组件。而且微软的优秀成果 C#语言保持了 C/C+所特有的强大功能和控制能力。与 C+十分相似的模型和语法,具有与 COM+服务完全的交互性和完全支持能力,能够轻松地迁移现有的代码。数据库方面 SQL Server 2005 已经可以满足中小型企业的数据要求,甚至有些大型企业都可以达到要求。如今计算机普及程度日益推广,计算机配置日新月异,能承载此系统的机器就如办公的机器都可以达到要求。所以说本系统具有技术可行性。1.3.3 经济可行性分析采用传统的手工输入方法,不仅工作繁琐而且需要人力输入多,记录容易出错,那样产生了成本高,效果差的弊病,对于一个企业的资料库建立是十分困难和麻烦的。而采用这种系统所发费的成本,精力都远远低于手工,并且实用十分方便,更新也简易,每个部门只需一个人统一管理,对企业实现办公无纸化能起到很大的作用。所以此系统经济可行性也具备了。1.3.4 管理可行性分析本系统采用了系统数据库备份、恢复的功能,而且界面层次分明,一目了然,加上设计方面加入了人性化元素。管理此系统并不难,易学易会。2 开发工具及其语言特点2.1 Visual Studio.NET 主要特点2.1.1 提供加速开发过程的高效工具Visual Studio.NET 提供了一个统一的、紧密集成的可视化编程环境,以帮助用户简化开发网络应用程序的过程,缩短学习使用方法的时间。它提供了一种新的语言C#。通过共享的 HTML、XML 和样式单编辑器,用户可以轻松地借助包括 C#在内的任何一种 Visual Studio 语言来开发网络应用程序。2.1.2 提供对各种网络应用程序的快速设计能力借助 WebForm,用户可以用他们在开发基于网页的应用程序时所使用的技巧来创建跨浏览器的网络应用程序。2.1.3 利用 XML 和 Web Service 来简化分布式计算Web Service 借助标准的 Intemet 协议在网络上调用商务逻辑。HTTP 被作为 Web Service 传输的基础协议,该协议使得对功能的请求能够穿越各种团体所使用的防火墙。XML 被用来对上述功能请求的参数进行格式统一,从而使这些请求能够使用于所有的软件和硬件。这样使得对 Web Service 的访问可以通过任何一种语言、使用任何一种组件模型在任何一种操作系统上实现。2.1.4 快速构建中间层商务组件Visual Studio 的一个核心目标就是要为基于服务器的应用程序提供应用程序快速部署工具。利用 Visual Studio.NET 创建的组件将为您的商务运作提供足够的功能和伸缩性。2.1.5 构建可靠的可伸缩解决方案利用 Visual Studio.NET,用户可以非常轻松地创建具有自动伸缩能力的可靠的应用程序和组件。2.2 C#技术概述C#在带来对应用程序的快速开发能力的同时,并没有牺牲 C 与 C+程序员所关心的各种特性。它忠实地继承了 C 和 C+的优点。如果你对 C 或 C+有所了解,你会发现它是那样的熟悉。即使你是一位新手,C#也不会给你带来任何其它的麻烦,快速应用程序开发(Rapid Application Development,RAD)的思想与简洁的语法将会使你迅速成为一名熟练的开发人员。C#是专门为.NET 应用而开发出的语言。这从根本上保证了 C#与.NET 框架的完美结合。在.NET 运行库的支持下,.NET 框架的各种优点在 C#中表现得淋漓尽致。C#的一些突出的特点简洁的语法精心地面向对象设计与 Web 的紧密结合完整的安全性与错误处理版本处理技术灵活性与兼容性2.2.1 简洁的语法在缺省的情况下,C#的代码在.NET 框架提供的“可操纵”环境下运行,不允许直接地内存操作。它所带来的最大的特色是没有了指针。与此相关的是,那些在 C+中被疯狂使用的操作符(例如:“:”、“-”和“.,”)已经不再出现。C#只支持一个“.”,对于我们来说,现在需要理解的一切仅仅是名字的嵌套而已。C#用真正的关键字换掉了那些把活动模板库(Active Template Library,ALT)和 COM 搞得乱糟糟的伪关键字,如OLE_COLOR、BOOL、VARIANT_BOOL、DISPID_XXXXX 等等。每种 C#操作符在.NET 类库中都有了新名字。语法中的冗余是 C+中的常见的问题,比如const和#define、各种各样的字符类型等等。C#对此进行了简化,只保留了常见的形式,而别的冗余形式从它的语法结构中被清除了出去。2.2.2 精心地面向对象设计从 Smalltalk 开始,面向对象的话题就始终缠绕着任何一种现代程序设计语言。的确,C#具有面向对象的语言所应有的一切特性:封装、继承与多态性,这并不出奇。然而,通过精心地面向对象设计,从高级商业对象到系统级应用,C#建造广泛组件的绝对选择。在 C#的类型系统中,每种类型都可以看作一个对象。C#提供了一个叫做装箱(boxing)与拆箱(unboxing)的机制来完成这种操作,而不给使用者带来麻烦,这在以后的章节中将进行更为详细的介绍。C#只允许单继承,即一个类不会有多个基类,从而避免了类型定义的混乱。在后面的学习中你很快会发现,C#中没有了全局函数,没有了全局变量,也没有了全局常数。一切的一切,都必须封装在一个类之中。你的代码将具有更好的可读性,并且减少了发生命名冲突的可能。整个 C#的类模型是建立在.NET虚拟对象系统(Visual Object System,VOS)的基础之上,其对象模型是.NET 基础架构的一部分,而不再是其本身的组成部分。在下面将会谈到,这样做的另一个好处是兼容性。借助于从 VB 中得来的丰富的 RAD 经验,C#具备了良好的开发环境。结合自身强大的面向对象功能,C#使得开发人员的生产效率得到极大的提高。对于公司而言,软件开发周期的缩短将能使它们更好应付网络经济的竞争。在功能与效率的杠杆上人们终于找到了支点。2.2.3 与 Web 的紧密结合.NET 中新的应用程序开发模型意味着越来越多的解决方案需要与 Web 标准相统一,例如超文本标记语言(Hypertext Markup Language,HTML)和 XML。由于历史的原因,现存的一些开发工具不能与 Web 紧密地结合。SOAP 的使用使得 C#克服了这一缺陷,大规模深层次的分布式开发从此成为可能。由于有了 Web 服务框架的帮助,对程序员来说,网络服务看起来就象是C#的本地对象。程序员们能够利用他们已有的面向对象的知识与技巧开发 Web服务。仅需要使用简单的 C#语言结构,C#组件将能够方便地为 Web 服务,并允许它们通过 Internet 被运行在任何操作系统上的任何语言所调用。举个例子,XML 已经成为网络中数据结构传递的标准,为了提高效率,C#允许直接将XML 数据映射成为结构。这样就可以有效的处理各种数据。2.2.4 完整的安全性与错误处理语言的安全性与错误处理能力,是衡量一种语言是否优秀的重要依据。任何人都会犯错误,即使是最熟练的程序员也不例外:忘记变量的初始化,对不属于自己管理范围的内存空间进行修改,这些错误常常产生难以预见的后果。一旦这样的软件被投入使用,寻找与改正这些简单错误的代价将会是让人无法承受的。C#的先进设计思想可以消除软件开发中的许多常见错误,并提供了包括类型安全在内的完整的安全性能。为了减少开发中的错误,C#会帮助开发者通过更少的代码完成相同的功能,这不但减轻了编程人员的工作量,同时更有效地避免了错误的发生。.NET 运行库提供了代码访问安全特性,它允许管理员和用户根据代码的ID 来配置安全等级。在缺省情况下,从 Internet 和 Intranet 下载的代码都不允许访问任何本地文件和资源。比方说,一个在网络上的共享目录中运行的程序,如果它要访问本地的一些资源,那么异常将被触发,它将会无情地被异常扔出去,若拷贝到本地硬盘上运行则一切正常。内存管理中的垃圾收集机制减轻了开发人员对内存管理的负担。.NET 平台提供的垃圾收集器(Garbage Collection,GC)将负责资源的释放与对象撤销时的内存清理工作。变量类型是安全的。C#中不能使用未初始化的变量,对象的成员变量由编译器负责将其置为零,当局部变量未经初始化而被使用时,编译器将做出提醒;C#不支持不安全的指向,不能将整数指向引用类型,例如对象,当进行下行指向时,C#将自动验证指向的有效性;C#中提供了边界检查与溢出检查功能。2.2.5 版本处理技术C#提供内置的版本支持来减少开发费用,使用 C#将会使开发人员更加轻易地开发和维护各种商业用户。升级软件系统中的组件(模块)是一件容易产生错误的工作。在代码修改过程中可能对现存的软件产生影响,很有可能导致程序的崩溃。为了帮助开发人员处理这些问题,C#在语言中内置了版本控制功能。例如:函数重载必须被显式声明,而不会象在 C+或 java 中经常发生的那样不经意地被进行,这可以防止代码级错误和保留版本化的特性。另一个相关的特性是接口和接口继承的支持。这些特性可以保证复杂的软件可以被方便地开发和升级。2.2.6 灵活性和兼容性在简化语法的同时,C#并没有失去灵活性。尽管它不是一种无限制语言,比如:它不能用来开发硬件驱动程序,在默认的状态下没有指针等等,但是,在学习过程中你将发现,它仍然是那样的灵巧。如果需要,C#允许你将某些类或者类的某些方法声明为非安全的。这样一来,你将能够使用指针、结构和静态数组,并且调用这些非安全代码不会带来任何其它的问题。此外,它还提供了一个另外的东西(这样的称呼多少有些不敬)来模拟指针的功能-delegates,代表。再举一个例子:C#不支持类的多继承,但是通过对接口的继承,你将获得这一功能。2.2.7 安全性正是由于其灵活性,C#允许与 C 风格的需要传递指针型参数的 API 进行交互操作,DLL 的任何入口点都可以在程序中进行访问。C#遵守.NET 公用语言规范(Common Language Specification,CLS),从而保证了 C#组件与其它语言组件间的互操作性。元数据(Metadata)概念的引入既保证了兼容性,又实现了类型安全。3 数据库概述数据库概述3.1SQL Server 2008 主要特点3.1.1.NET 框架使用 SQL Server2008,开发人员通过使用相似的语言,例如微软的 Visual C#.NET 和微软的 Visual Basic,将能够创立数据库对象。开发人员还将能够建立两个新的对象用户定义的类和集合。3.1.2XML 技术 在使用本地网络和互联网的情况下,在不同应用软件之间散步数据的时候,可扩展标记语言(XML)是一个重要的标准。SQL Server2008 将会自身支持存储和查询可扩展标记语言文件。3.1.3ADO.NET2.0 版本 从对 SQL 类的新的支持,到多活动结果集(MARS),SQL Server2008 中的 ADO.NET 将推动数据集的存取和操纵,实现更大的可升级性和灵活性。3.1.4 增强的安全性 SQL Server 2008 中的新安全模式将用户和对象分开,提供 fine-grainaccess存取、并允许对数据存取进行更大的控制。另外,所有系统表格将作为视图得到实施,对数据库系统对象进行了更大程度的控制。3.1.5Transact-SQL 的增强性能 SQL Server 2008 为开发可升级的数据库应用软件,提供了新的语言功能。这些增强的性能包括处理错误、递归查询功能、关系运算符PIVOT,APPLY,ROW_NUMBER 和其他数据列排行功能,等等。3.1.6SQL 服务中介 SQL 服务中介将为大型、营业范围内的应用软件,提供一个分布式的、异步应用框架。3.1.7 通告服务 通告服务使得业务可以建立丰富的通知应用软件,向任何设备,提供个人化的和及时的信息,例如股市警报、新闻订阅、包裹递送警报、航空公司票价等。在 SQL Server 2008 中,通告服务和其他技术更加紧密地融合在了一起,这些技术包括分析服务、SQL Server Management Studio。3.1.8Web 服务 使用 SQL Server 2008,开发人员将能够在数据库层开发 Web 服务,将SQL Server 当作一个超文本传输协议(HTTP)侦听器,并且为网络服务中心应用软件提供一个新型的数据存取功能。3.1.9 报表服务 利用 SQL Server 2008,报表服务可以提供报表控制,可以通过 Visual Studio 2005 发行。3.1.10 全文搜索功能的增强 SQL Server2008 将支持丰富的全文应用软件。服务器的编目功能将得到增强,对编目的对象提供更大的灵活性。查询性能和可升级性将大幅得到改进,同时新的管理工具将为有关全文功能的运行,提供更深入的了解。3.2C#与 ADO.NET3.2.1 C#中的数据库访问用.NET 框架编写的(当然也包括用 C#编写的应用程序)应用程序需要访问数据库时,将使用 ADO.NET 来实现数据库访问。数据绑定是一种非常有用的访问数据库的方法,能够减少需要编写的代码量。很多简单任务可以通过纯粹声明式代码来完成。ADO.NETADO.NET 是微软的数据访问框架的最新产物,它是.NET 框架的一部分。在 ADO.NET 之前,程序员在 ASP(Active Server Pages)或 Visual Basic 中使用 ADO(AtiveX Data Objects),这是一组 COM(Component Object Model,组件对象模型)组件,它通过一个易于使用的封装类提供对底层数据访问代码的访问。虽然 ADO 大大简化了数据库访问,但更高级的程序员(特别是 C+程序员)通常更喜欢使用更直接、更快的代码,如 OLE DB(Object Linking and Embedding for Databases)代码库。ADO.NET 比 ADO 的功能更强大。它是在.NET 代码中访问数据库的最好工具。.NET 框架中的 ADO.NET 类型(在 System.Data 命名空间及其子空间下的所有类型)包括那些为访问 SQL Server、OLE DB、ODBC 和 Oracle 数据库而优化的类型。它们都是基于通用类的,因此使用 ADO.NET 访问不同的 DBMS是相似的。ADO.NET 类型实现两个主要的功能。数据访问:用于访问数据库中数据和操作数据库的类型;数据表示:用于包含数据库数据(如数据表)的类型。这两种类型之间联系密切,在数据库开发中两种类型都会用到。严格地说,可以只用一种数据库访问类型。然而,如果使用数据访问类型来填充数据表示类型将节省大量工作。ADO.NET 包含 7 个重要的基类,其中 4 个是数据访问类:DbConnection;DbCommand;DbDataReader;DbDataAdapter。其他 3 个类是数据表示类:DataTable;DataRelation;DataSet。DataTable 类使用了其他一些重要的类:DataColum、Constraint 和 DataRow,本节也将介绍它们。1DbConnectionDbConnection 类提供与数据库的连接。创建 DbConnection 对象时,应提供与 DBMS 通信所需的所有信息,如数据库的位置、用于认证的用户名和密码以及要访问的 DBMS 中的数据库。所有其他 ADO.NET 数据访问类都依靠 DbConnection 与数据库进行通信。DbConnection 类的扮演角色如图 2.1 所示。图 3.2.1 DbConnection 类在从 DbConnection 派生而来的类中,到数据库的连接都是由连接字符串定义的,该字符串存储在属性 DbConnection.ConnectionString 中。数据库连接应只在传输数据时才打开,因此创建 DbConnection 实例时并不自动连接到数据库。DbConnection 类定义了 Open()方法和 Close()方法,用于控制连接何时可用。很多其他的 ADO.NET 类也能控制连接状态,例如,有些类在完成操作后关闭它们使用的连接。DbConnection 对象还能参与事务。可用 DbConnection.BeginTransaction()方法开始事务,或使用 DbConnection.EnlistTransaction()作为已有事务的一部分执行操作。访问 SQL Server 或 SQL Server 速成版中的数据时,使用 SqlConnection,该类是 DbConnection 的子类。一般来说,DbConnection 和 SqlConnection 及其他子类都称为连接类。2DbCommandDbCommand 类提供与数据库交互的主要方法。可以用 DbCommand 对象来执行SQL 语句、运行存储过程等。DbCommand 及其派生类称为命令类。大部分时候并不直接使用 DbCommand,而是用封装了 DbCommand 的其他对象。但有时候需要对数据库通信进行更多的控制,这时就可以使用 DbCommand 对象。DbCommand 对象的扮演角色如图 2.2 所示。图 3.2.2 DbCommand 类DbCommand 中最重要的属性是 DbCommand.CommandText。要执行 SQL 语句,就要将语句文本放在这个属性中。可以用 DbCommand.CommandType 来指定要执行的语句类型,使用 DbCommand.Connection 和 DbCommand.Tranction 来访问底层的连接或事务。要注意,DbCommand 对象可能有参数化的命令字符串,命令中的参数来自类型为 DbCommand.Parameters 集合的属性。这与直接在命令字符串中输入参数相比有很多优点,在本书后面部分将会看到。要使用 DbCommand 对象执行命令,有三种选择,这取决于要执行的命令是什么。有些命令不返回结果,这种情况下可以用 DbCommand.ExecuteNonQuery()方法;有些命令返回一个结果,这时可用 DbCommand.ExecuteScalar()方法;最后,有很多命令返回多行数据,这时可用 DbCommand.ExecuteReader()方法,它将返回一个 DbDataReader 对象(下一小节将解释)。SQL Server 的 DbCommand 版本名为 SqlCommand。它有自己的一些特殊方法,如 SqlCommand.ExecuteXmlReader()方法,它直接以 XML 格式返回结果。3DbDataReader使用 DbDataReader 类可以从结果集中读取数据,如从执行存储在命令对象中的命令生成的结果集中读取数据。该类经过高度优化,可以很快地访问数据库中的数据。然而,这种优化也有些副作用,例如,只能以串行方式一次读取一行数据。不能读完两行后再返回去读取第一行。通常,可以用 DbDataReader 对象(更确切地说,是数据阅读器的子类对象)来提取要使用的行数据,并将其存储在其他对象中。例如,可以读取一个结果集中的每行,将其存储到在自定义集合或泛型列表对象中的自定义类中。与命令对象一样,很多时候数据阅读器对象是由 ADO.NET 命名空间下的其他类使用的,用户不必直接使用它们。图 3.2.3 说明了如何在数据库应用程序中使用数据阅读器。要使用数据阅读器对象,首先必须调用 DbDataReader.Read()方法选择结果集中的第一行。可不断调用该方法来移动数据阅读器,使数据阅读器像结果集中的游标一样总是指向一行。获取一行时,Read()方法返回 true;否则返回false如当所有行都已经读完时。也可以用 DbDataReader.HasRows 属性来判断结果集中是否还有其他行。图 3.2.4 DbDataReader 类很多属性和方法可用于检查当前选中的行。DbDataReader.FieldCount 查看当前行包含多少列,并用 DbDataReader 的重载索引器访问各列。如果知道要访问的列名,可用基于字符串的索引器来获得列值,也可以使用基于整数的索引器通过位置获得列。在这两种情况下,这种方法都将返回 object 值,可将其转化为其他类型的数据。也可以使用 DbDataReader 提供的多个方法直接获得类型化数据,如 GetString()和 GetInt32()分别将指定列以 string 和 int 值返回,列通过其索引选择。要使用这些方法获得值类型,必须首先使用 DbDataReader.IsDBNull 检查空值;否则,空值将引发异常。检查空值是必须的,因为不管什么数据库类型都可以为空。这与.NET 中的值类型不同,可为空的值类型(如 int)在这种上下文环境中是不受支持的。DbDataReader 也能够获得关于它包含的数据的元信息使用DbDataReader.GetSchema Table()方法,这样就可以知道列的名称、数据类型和其他信息,如列是否包含空值。与前面的其他类一样,也有专门用于 SQL Server 的数据阅读器类,这就是SqlDataReader,本书将使用该类。该类继承 DbDataReader,提供将数据读取为本地 SQL 类型的方法,这样就能够避免空类型的问题。这些类型包含在System.Data.Sqltypes 命名空间中,是可为空的;如 SqlDouble 和 SqlInt32。虽然这些类型也可以像标准的值类型那样进行操作,但它们实际上是引用类型。4DbDataAdapter在 ADO.NET 的核心数据访问类中,最后一个是 DbDataAdapter 类。它比前面介绍过的类型要复杂得多,设计该类的目的只有一个:减少存储在数据集对象中的数据与数据库进行数据交换时的干扰。与前面的类一样,DbDataAdapter 类也有很多派生类,它们统称为数据适配器类。稍后将详细解释什么是数据集对象,简单地说,它们是能够以.NET 对象的形来表示数据库中数据的对象。数据集对象可以包含整个表或多个表的数据。数据适配器既可以将数据库中的数据传输给包含在数据集中的表,也可以将数据集中的数据传输到数据库中。这个功能由命令对象和数据阅读器对象执行,因此大部分时候用户不必考虑它。然而,DbDataAdapter 最重要的(也是最有用的)特性之一是,它用于传输数据的命令对象被暴露出来,因此可以根据需要对它们进行定制。图 2.4 说明了 DbDataAdapter 类的工作原理,包括它包含的命令对象。图 3.2.4 DbDataAdapter 类数据适配器使用的 4 个命令对象存储在 4 个属性中:SelectCommand(用于查询数据)、InsertCommand(用于添加数据)、UpdateCommand(用于编辑数据)和 DeleteCommand(用于删除数据)。要使用适配器,并不一定全部用到这 4 个属性,例如,可以只用适配器来查询数据。另外,.NET 框架可以根据其他命令的值推断出命令的值,例如,可以根据查询命令来生成更新、插入和删除命令。然而,这种自动生成的命令的效率可能不如手工提供的高。本书稍后还会讨论这个问题。数据适配器中最常用的两个方法是 DbDataAdapter.Fill()和DbDataAdapter.Update()。Fill()方法从数据库中获取数据;Update()方法更新数据库中的数据。这两个方法都可以用于数据集或单个数据表。另外,可以使用DbDataAdapter.FillSchema()获取架构数据。SQL Server 中的 DbDataAdapter 版本是 Sql DbDataAdapter。5DataTableDataTable 是 ADO.NET 提供的第一个数据表示类。与数据访问类不同,数据表示类没有专门用于特定数据库管理系统(如 SQL Server)的子类,它们独立于平台。实际上,如果需要的话,数据表示类完全可以独立于数据库使用,它们只是存储数据的一种方便的方法。DataTable 类用于存储(读者可能对此感到不解)数据表。在继续讨论这个类之前需要澄清一件事情:以 DataTable 对象存储的表不一定要映射到数据库中的表。DataTable 可能包含表中数据的一个子集,该子集可能只包含数据库表的部分行、部分列,可能是由数据库中多个表组合而成的数据,还可能是所有这些的组合,这取决于用于获得数据的查询语句。通常,DataTable 与数据库中的表匹配,但仍然要知道上面提到的事实。图 3.2.5 说明了 DataTable 与其他 ADO.NET 对象之间的关系。图 2.5 DataTable要获得完全填充的 DataTable,可使用数据适配器。有包含数据的 DataTable 后,就可以访问行、列、约束和它包含的其他信息。这些信息可以通过命名恰切的属性来访问,包括 Rows、Columns 和 Contraints 等。上面提到的 3 个属性都返回一个集合类(DataRowCollection、D- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人事管理系统 毕业论文
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文