第一篇:企业人事管理系统毕业论文设计-企业人事管理系统的
毕业设计(论文)
企业人事管理系统的
设计与实现
摘要
在当今社会,互联网空前的发展,给人们的工作和生活带来了极大的便利和高效,信息化,电子化已经成为节约运营成本,提高工作效率的首选。考虑到当前大量企业的人事管理尚处于手工作业阶段,不但效率低下,还常常因为管理的不慎而出现纰漏。因此根据部分企业提供的需求,设计此企业人事管理系统,以帮助企业达到人事管理办公自动化、节约管理成本、提高企业工作效率的目的。
本企业人事管理系统采用C/S结构,主要对企业员工的信息以及跟人事相关的工作流程进行集中的管理,方便企业建立一个完善的、强大的员工信息数据库。它是以.NET2005.和SQL 2005 Express数据库作为开发平台。使用C# 设计操作控件和编写操作程序,完成数据输入、修改、存储、调用查询等功能;并使用SQL 2005数据库形成数据表,进行数据存储。
本文详细介绍了企业人事管理系统的功能需求,系统设计和具体实现。并简要介绍了系统开发采用的过程方法。
关键词
企业人事管理系统;C/S;员工信息数据库
II
The Design and Implementation of Enterprise Personnel Management System Based on C/S
Abstract
Author:Jing Zhu
Tutor:Weigen Qiu
In our society, the unprecedented development of Internet has brought us great convenience and efficiency.Informatization and electronization have become the first choice of saving operation cost and improving work efficiency.Many enterprises' personnel administration systems lie in the phase of manual management which 阿惹 inefficient and easy to go wrong by carelessness.Therefore, this MIS(Management Information System)is designed to make the personnel administration more scientific, normative and efficient.The system adopts the structure mode of client/server(C/S), Windows XP as the operation system,SQL 2005 Express as the background database, and Microsoft Visual Studio.NET 2005 as the developing tool.It can help enterprises to establish a perfect, strong staff information database, which facilitates the centralized management of staff information and workflow.The paper explains the course design, system design and implementation of MIS, also briefly introduces the process of the system development.Key words: Personnel Management System;C/S;Employee Information Database
III
企业人事管理系统...........................................................................................................................3 1前言...............................................................................................................................................3
1.1 应用的目的与意义............................................................................................................3 1.2 人事管理系统发展趋势..................................................................................................3
1.2.2 世界趋势.................................................................................................................3 1.2.3 技术革新.................................................................................................................4 1.2.4 工作目标和价值观的改变.....................................................................................4 1.3 系统调研............................................................................................................................4
1.3.1 社会可行性分析.....................................................................................................4 1.3.2 技术可行性分析.....................................................................................................4 1.3.3 经济可行性分析.....................................................................................................5 1.3.4 管理可行性分析.....................................................................................................5 1.4 研究内容............................................................................................................................5 2开发工具及其语言特点................................................................................................................6
2.1 Visual Studio.NET主要特点如下......................................................................................6
2.2.1简洁的语法..............................................................................................................7 2.2.2精心地面向对象设计..............................................................................................8 2.2.3与Web的紧密结合.................................................................................................8 2.2.4完整的安全性与错误处理......................................................................................9 2.2.5版本处理技术........................................................................................................10 2.2.6灵活性和兼容性....................................................................................................10 3.1SQL2005主要特点...........................................................................................................10 3.1.1.NET框架...............................................................................................................11 3.1.2XML技术...............................................................................................................11 3.1.3ADO.NET2.0版本.................................................................................................11 3.1.4增强的安全性........................................................................................................11 3.1.5Transact-SQL的增强性能.....................................................................................11 3.1.6SQL服务中介........................................................................................................11 3.1.7通告服务................................................................................................................12 3.1.8Web服务................................................................................................................12 3.1.9报表服务................................................................................................................12 3.1.10全文搜索功能的增强..........................................................................................12 3.2C#与ADO.NET.................................................................................................................12 3.2.1 C#中的数据库访问.............................................................................................12 3.2.2 数据绑定...............................................................................................................23 3.3 SQL语言.......................................................................................................................24 3.3.1表定义语句............................................................................................................24 3.3.2视图定义语句........................................................................................................24 3.3.3索引定义语句........................................................................................................24 3.3.4数据操纵语句........................................................................................................24 3.3.5INSERT语句..........................................................................................................25 3.3.6UPDATE语句........................................................................................................25 3.3.7DELETE语句.........................................................................................................25 3.3.8查询语句................................................................................................................25 广东工业大学
企业人事管理系统__朱竞
2009-11-30
第1页
3.3.9条件查询................................................................................................................25 3.3.10查询排序..............................................................................................................26 3.3.11统计查询..............................................................................................................26 3.3.12Group by子句......................................................................................................26 3.3.13Distinct关键词.....................................................................................................26 3.3.14Top关键词............................................................................................................27 3.3.15多表查询..............................................................................................................27 3.3.16多重查询..............................................................................................................27 3.3.17EXISTS关键词....................................................................................................27 4系统需求分析..............................................................................................................................28 4.1系统流程图如下...............................................................................................................28 5 致谢............................................................................................................................................49 附录F 各模块实现的主要源代码..............................................................................................52 F1.1登录模块的设计与实现的主要代码.............................................................................52 }...............................................................................................................................................53 F1.2登陆实体类:................................................................................................................53 F1.3 员工管理模块的设计与实现的主要代码..................................................................54 F1.3.1员工管理实现的主要代码:......................................................................................54 F1.3.2 部门管理实现主要代码:.......................................................................................55 }...............................................................................................................................................57 F1.3.3工资管理主要代码:.................................................................................................57 }...............................................................................................................................................61 F1.3.4考勤信息设计与实现主要代码:..............................................................................61 }...............................................................................................................................................64 F1.4 数据访问类:...............................................................................................................64 }...............................................................................................................................................67 F1.5生日提醒主要代码:.....................................................................................................67 F1.6启动第三方EXE文件操作类:...................................................................................67 }...............................................................................................................................................68
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第2页
企业人事管理系统
1前言
1.1 应用的目的与意义
人的管理是一切管理工作的核心。员工代表一个企业的形象,因而人事管理机制设计的好坏,直接影响一个企业的成败。
员工的档案管理是企业人事管理的基础,在企业员工普遍流失的今天,一个准确而及时的人事管理系统,有利于人事部门对员工流动进行分析、编制,为企业所需人员提供了保障。
人力资源部那些重复的,事务性的工作交给HRP(Human Resource Planning,人力资源管理系统)来解决,可以省去用户以往人力资源管理工作的繁琐、枯燥;用领先的人力资源管理理念,把人力资源管理的作业流程控制和战略规划设计巧妙地集合于一体;系统重点涉及到人力资源管理工作中的薪资、考勤、绩效、调动、基本信息、用户管理以及用户切换等方面,并有综合的系统安全设置、报表综合管理模块。可以很好地为用户的人力资源管理部门在对员工的成本管理、知识管理、绩效管理等综合管理给予帮助。以每个月中所发工资为例,其中包括考勤、人事信息变动、奖惩、迟到和旷工对本月的薪资计算都有影响,为了及时的计算发放工资往往要提前一个星期花费大量时间,加班加点才能及时完成,而这样做无论从工作效率还是准确度方面,都不允许,而且还浪费大量的人力财力。如果改用HRP管理做到高效、高精度,还可以减少管理时带来的一些繁琐的工作,节约管理带来的开支。1.2 人事管理系统发展趋势 1.2.2 世界趋势
人力资源管理系统主导21世纪,无论是发达国家还是发展中国家,对人力资源的战略性意义都有了深刻的认识,并开始付诸行动。世界公认,21世纪将是人力资源的世纪;人力资源问题将主导整个21世纪甚至更为遥远,这种状况的变化起因于竞争压力。目前,世界经济趋向全球化。世界经济的全球化过程和国广东工业大学
企业人事管理系统__朱竞
2009-11-30
第3页
家的开放过程,要求组织的管理部门降低管理成本以减少竞争压力和增强竞争能力。对于不同的组织,人力资源成本在总成本中的比例是不一样的。1.2.3 技术革新
无论是现在还是将来,工业的发展越来越多地取决于科学和技术、知识与技能。高新科技产业更是如此。这不仅要求员工尤其是技术人员掌握新的科学知识和技术能力,而且更重要的在于要求员工深入而快捷地掌握和应用这些知识和技能。这就导致了两个问题。第一,随着这种技术革新的发展和知识更新速度的加快,人们有更多的职业选择机会。第二,伴随着这种发展以及职业选择机会的增多,人力资源管理活动和频繁程度加剧;而且这种活动对科学技术的要求与它的反应程度也更高了,进而提高了人力资源成本。1.2.4 工作目标和价值观的改变
随着社会政治和经济的发展,人们的工作目标和价值观也都发生了重要的变化。这就对人事管理部门和管理人员提出了新的要求和新的问题,不得不考虑诸如工作类型设计、岗位分析、充分尊重员工以及为他们提供良好的个人发展和自我价值实现的环境与条件等问题。这样,人力资源管理就派上了用场。1.3 系统调研 1.3.1 社会可行性分析
随着计算机的发展与普及,以及互联网技术的扩展,日常劳资人事管理必将实现无纸化办公,并且加入到公司内部的Intranet或者是Internet上去,实现数据的共享,这样有利于劳资人事信息在单位内部的查询,提高了数据资源的利用,并且能及时的得到更新,不需要象过去那样浪费大量的人力物力去进行抄写,提高了工作的效率 1.3.2 技术可行性分析
Visual Studio.NET提供了一个统一的、紧密集成的可视化编程环境,简化了开发应用程序的过程,缩短了实用方法的时间。利用Visual Studio.NET,可以非常广东工业大学
企业人事管理系统__朱竞
2009-11-30
第4页
轻松地创建具有自动伸缩能力的可靠的应用程序和组件。而且微软的优秀成果c#语言保持了c/c++所特有的强大功能和控制能力。与c++十分相似的模型和语法,具有与COM+服务完全的交互性和完全支持能力,能够轻松地迁移现有的代码。数据库方面SQL2005已经可以满足中小型企业的数据要求,甚至有些大型企业都可以达到要求。如今进算计普及程度日益推广,计算机配置日新月异,能承载此系统的机器就如办公的机器都可以达到要求。所以说本系统具有技术可行性。
1.3.3 经济可行性分析 采用传统的手工输入方法,不仅工作繁琐而且需要人力输入多,记录容易出错,那样产生了成本高,效果差的弊病,对于一个企业的资料库建立是十分困难和麻烦的。而采用这种系统所发费的成本,精力都远远低于手工,并且实用十分方便,更新也简易,每个部门只需一个人统一管理,对企业实现办公无纸化能起到很大的作用。所以此系统经济可行性也具备了。1.3.4 管理可行性分析
本系统采用了系统数据备份、恢复的功能,而且界面层次分明,一目了然,加上设计方面加入了人性化元素。管理此系统并不难,易学易会。1.4 研究内容
本论文共分为5章。第1章绪论,介绍了本课题的应用目的和意义、人事管理系统、可行性分析和研究内容。第2章介绍了开发工具及其特点、数据库技术。第3章主要介绍了系统的设计与分析,包括总体设计、数据库设计、详细设计等。第4章主要介绍系统实现,即系统各种模块的功能实现。第5章为本课题完成成果和发展期望的总结。
本论文主要利用C#可视化技术及SQL数据库开发技术,对员工管理与考勤管理系统进行系统化、细致化和完善化的分析研究。
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第5页
2开发工具及其语言特点
2.1 Visual Studio.NET主要特点如下 2.1.1提供加速开发过程的高效工具
Visual Studio.NET提供了一个统一的、紧密集成的可视化编程环境,以帮助用户简化开发网络应用程序的过程,缩短学习使用方法的时间。它提供了一种新的语言——C#。通过共享的HTML、XML和样式单编辑器,用户可以轻松地借助包括C#在内的任何一种Visual Studio语言来开发网络应用程序。2.1.2 提供对各种网络应用程序的快速设计能力
借助Web Form,用户可以用他们在开发基于窗体的桌面应用程序时所使用的技巧来创建跨平台、跨浏览器的网络应用程序。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#技术概述
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第6页
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类库中都有了新名字。
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第7页
语法中的冗余是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#克服了这一缺陷,大规模深层次的分布式开发从此成为可能。
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第8页
由于有了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#中提供了边界检查与溢出检查功能。
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第9页
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.1SQL2005主要特点
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第10页
3.1.1.NET框架
使用SQL Server2005,开发人员通过使用相似的语言,例如微软的VisualC#.NET和微软的VisualBasic,将能够创立数据库对象。开发人员还将能够建立两个新的对象——用户定义的类和集合。
3.1.2XML技术
在使用本地网络和互联网的情况下,在不同应用软件之间散步数据的时候,可扩展标记语言(XML)是一个重要的标准。SQL Server2005将会自身支持存储和查询可扩展标记语言文件。
3.1.3ADO.NET2.0版本
从对SQL类的新的支持,到多活动结果集(MARS),SQL Server2005中的ADO.NET将推动数据集的存取和操纵,实现更大的可升级性和灵活性。
3.1.4增强的安全性
SQL Server2005中的新安全模式将用户和对象分开,提供fine-grainaccess存取、并允许对数据存取进行更大的控制。另外,所有系统表格将作为视图得到实施,对数据库系统对象进行了更大程度的控制。
3.1.5Transact-SQL的增强性能
SQL Server2005为开发可升级的数据库应用软件,提供了新的语言功能。这些增强的性能包括处理错误、递归查询功能、关系运算符PIVOT,APPLY,ROW_NUMBER和其他数据列排行功能,等等。
3.1.6SQL服务中介
SQL服务中介将为大型、营业范围内的应用软件,提供一个分布式的、异步应用框架。
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第11页
3.1.7通告服务
通告服务使得业务可以建立丰富的通知应用软件,向任何设备,提供个人化的和及时的信息,例如股市警报、新闻订阅、包裹递送警报、航空公司票价等。在SQL Server2005中,通告服务和其他技术更加紧密地融合在了一起,这些技术包括分析服务、SQLServerManagementStudio。
3.1.8Web服务
使用SQL Server2005,开发人员将能够在数据库层开发Web服务,将SQL Server当作一个超文本传输协议(HTTP)侦听器,并且为网络服务中心应用软件提供一个新型的数据存取功能。
3.1.9报表服务
利用SQL Server2005,报表服务可以提供报表控制,可以通过VisualStudio2005发行。
3.1.10全文搜索功能的增强
SQL Server2005将支持丰富的全文应用软件。服务器的编目功能将得到增强,对编目的对象提供更大的灵活性。查询性能和可升级性将大幅得到改进,同时新的管理工具将为有关全文功能的运行,提供更深入的了解。3.2C#与ADO.NET
3.2.1 C#中的数据库访问
用.NET框架编写的(当然也包括用C#编写的应用程序)应用程序需要访问数据库时,将使用ADO.NET来实现数据库访问。数据绑定是一种非常有用的访问数据库的方法,能够减少需要编写的代码量。很多简单任务可以通过纯粹声明式代广东工业大学
企业人事管理系统__朱竞
2009-11-30
第12页
码来完成。<1> ADO.NET ADO.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。
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第13页
DataTable类使用了其他一些重要的类:DataColum、Constraint和DataRow,本节也将介绍它们。1.DbConnection DbConnection类提供与数据库的连接。创建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及其他子类都称为连接类。2.DbCommand DbCommand类提供与数据库交互的主要方法。可以用DbCommand对象来执行广东工业大学
企业人事管理系统__朱竞
2009-11-30
第14页
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格式返回结果。3.DbDataReader 使用DbDataReader类可以从结果集中读取数据,如从执行存储在命令对象中的命令生成的结果集中读取数据。该类经过高度优化,可以很快地访问数据库中的广东工业大学
企业人事管理系统__朱竞
2009-11-30
第15页
数据。然而,这种优化也有些副作用,例如,只能以串行方式一次读取一行数据。不能读完两行后再返回去读取第一行。通常,可以用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值返回,列通过其索引选择。要使用这广东工业大学
企业人事管理系统__朱竞
2009-11-30
第16页
些方法获得值类型,必须首先使用DbDataReader.IsDBNull检查空值;否则,空值将引发异常。检查空值是必须的,因为不管什么数据库类型都可以为空。这与.NET中的值类型不同,可为空的值类型(如int)在这种上下文环境中是不受支持的。
DbDataReader也能够获得关于它包含的数据的元信息—使用DbDataReader.GetSchema Table()方法,这样就可以知道列的名称、数据类型和其他信息,如列是否包含空值。
与前面的其他类一样,也有专门用于SQL Server的数据阅读器类,这就是SqlDataReader,本书将使用该类。该类继承DbDataReader,提供将数据读取为本地SQL类型的方法,这样就能够避免空类型的问题。这些类型包含在System.Data.Sqltypes命名空间中,是可为空的;如SqlDouble和SqlInt32。虽然这些类型也可以像标准的值类型那样进行操作,但它们实际上是引用类型。4.DbDataAdapter 在ADO.NET的核心数据访问类中,最后一个是DbDataAdapter类。它比前面介绍过的类型要复杂得多,设计该类的目的只有一个:减少存储在数据集对象中的数据与数据库进行数据交换时的干扰。与前面的类一样,DbDataAdapter类也有很多派生类,它们统称为数据适配器类。
稍后将详细解释什么是数据集对象,简单地说,它们是能够以.NET对象的形来表示数据库中数据的对象。数据集对象可以包含整个表或多个表的数据。数据适配器既可以将数据库中的数据传输给包含在数据集中的表,也可以将数据集中的数据传输到数据库中。
这个功能由命令对象和数据阅读器对象执行,因此大部分时候用户不必考虑它。然而,DbDataAdapter最重要的(也是最有用的)特性之一是,它用于传输数据的命令对象被暴露出来,因此可以根据需要对它们进行定制。图2.4说明了DbDataAdapter类的工作原理,包括它包含的命令对象。
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第17页
图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。5.DataTable DataTable是ADO.NET提供的第一个数据表示类。与数据访问类不同,数据表示类没有专门用于特定数据库管理系统(如SQL Server)的子类,它们独立于平台。实际上,如果需要的话,数据表示类完全可以独立于数据库使用,它们只是存储数据的一种方便的方法。
DataTable类用于存储(读者可能对此感到不解)数据表。在继续讨论这个类之广东工业大学
企业人事管理系统__朱竞
2009-11-30
第18页
前需要澄清一件事情:以DataTable对象存储的表不一定要映射到数据库中的表。DataTable可能包含表中数据的一个子集,该子集可能只包含数据库表的部分行、部分列,可能是由数据库中多个表组合而成的数据,还可能是所有这些的组合,这取决于用于获得数据的查询语句。通常,DataTable与数据库中的表匹配,但仍然要知道上面提到的事实。
图3.2.5说明了DataTable与其他ADO.NET对象之间的关系。
图2.5 DataTable 要获得完全填充的DataTable,可使用数据适配器。有包含数据的DataTable后,就可以访问行、列、约束和它包含的其他信息。这些信息可以通过命名恰切的属性来访问,包括Rows、Columns和Contraints等。
上面提到的3个属性都返回一个集合类(DataRowCollection、DataColumnCollection和ConstaintCollection)对象。与其他集合类一样,这些类可用于在它们包含的对象集合中导航,添加或删除项等。稍后将介绍这些集合包含的类。
DataTable类另一个非常重要的方面是,如何处理数据修改。例如,如果删除DataTable中的一行,数据适配器如何知道在数据库中删除对应的数据?DataTable对象记录了对原始数据的修改,而不只是数据的当前状态。从DataTable中删除一行并不会真的删除这些数据,而只是数据被标记为已删除。在DataTable对象的消费方(如应用程序)看来,就像数据已被删除,但实际上并没有删除。任何时候都可以使用GetChanges()方法获得关于对DataTable对象所做的修改列表(以另一个DataTable对象的形式)。可以在适当时使用AcceptChanges()方法广东工业大学
企业人事管理系统__朱竞
2009-11-30
第19页
接受已做的修改,从而覆盖原来的数据。例如,可以在修改提交到数据库后这样做。也可以使用RejectChanges()撤销所有的修改,如当最终用户单击“取消”按钮时。
DataTable对象也暴露了很多事件,在应用程序中可以定制这些事件,如RowDeleted和ColumnChanged。使用这些事件可以保证应用程序对事件进行响应,还可以实现其他功能,例如,确保底层数据库在数据发生修改时立即更新。(1)DataColumn。
DataColumn存储了在数据表中定义列所需的所有信息。在DataTable中,Columns属性包含一个DataColumnCollection,这是一个DataColumn对象集合。DataColumn还包含与DBMD匹配的属性,包括ColumnName、Dataype、AllowDBNull和DefaultValue。它的属性可能比使用的DBMS的属性还要多,但如果使用过不同的DBMS,这一点将显而易见。对于SQL Server,这并不是问题。(2)Constaint。
Constaint对象(在ConstaintCollection中,可通过DataTable.Constaints访问)用于包含表的所有元数据,这些数据不包含在DataColumn对象中。Constaint类作为更具体类的基类,这些具体类包括UniqueConstaint—用于确保给定列或列组合的值是唯一的(例如,这对于主键是必须的)和ForeingKeyConstaint—用于实现表之间的关系。(3)DataRow。
DataRow类用于存储表中一行包含的数据。通过DataTable.Rows属性可以访问DataRow Collection对象,后者存储了组成表数据的多个DataRow对象。一行数据中的各列可通过索引器来访问,索引器让你能够通过列名、索引和版本(例如,如果行被修改)来访问列。
行的当前状态,即它是否被修改、删除或以某种方式改变,可通过DataRowState属性访问。该属性的值为DataRowState类型,这是一种包含所有可能行状态的枚举类型。各个DataRow对象也有与DataTable对应的方法,用于接受、拒绝和获得更改。例如,可以推断出,调用DataTable.AcceptChanges()将级联地对表的每行调用DataRow AcceptChanges()。6.DataRelation 广东工业大学
企业人事管理系统__朱竞
2009-11-30
第20页
在处理多个DataTable对象时,通常需要表示(并实施)表数据之间的关系。这由DataRelation类来完成。可将多个DataRelation对象组合起来,构成一个DataRelationCollection对象。
关系可以用DataRelation类的多个属性来定义,包括ChildTable、ChildColumns、ChildKeyConstraint、ParentTable和ParentKeyConstraint等。这些属性都是对相应的对象的引用,如DataTable和DataColumn对象。关系名也被存储在DataRelation.RelationName属性中。现在还不用太担心DataRelation对象,因为它们封装了ADO.NET比较高级的方面,这在本书后面将介绍。7.DataSet 现在到了ADO.NET中最重要的类—DataSet。从某种程度上说,该类只是DataTable对象和DataRelation对象的集合(如图2.6所示)。然而,DataSet的强大功能体现在与其他对象结合使用,包括用于Web应用程序和Windows应用程序的控件、Web服务和XML文档。
DataSet类包含很多属性和方法;其中很多与其组成部分的属性和方法类似,例如,GetChanges()和RejectChanges()。还有一些重要的属性,如Tables(以DataTableCollection类的形式包含DataSet中的表集合)、Relations(包含一个DataRelation Collection类,其中的Relation对象定义了表之间的关系)。数据表之间的关系及应用于数据的约束使得对DataSet的操作很麻烦。例如,如果两个表之间存在一对多关系,则添加一行到其中一个表中,可能要求另一个表中存在一行。而这行可能不存在(例如,如果两行同时添加时),这时,为避免错误,添加这些行的顺序将很重要;必须先添加位于关系“一”端的行。也可以将DataSet.Enforce Constraints属性设置为false,这样在执行编辑操作时将忽略关系。(1)DataSet对象和XML之间的关系。
与ADO.NET的其他对象一样,设计DataSet对象时也考虑了XML数据。使用DataSet.GetXml()方法,可将数据集转换为XML文档;还可以使用DataSet.GetXmlSchema()方法只提取数据集中的架构(包括数据集包含的所有表广东工业大学
企业人事管理系统__朱竞
2009-11-30
第21页
和其他对象的架构)作为XML文档。还可使用序列化技术在DataSet和XML文档之间进行转换,因为DataSet类实现了IxmlSeria-lizable接口。
DataSet对象与XML之间的关系以及使用序列化在这两种表示格式之间进行转换,在.NET框架中运用相当广泛。它提供了一种在应用程序层之间和通过Internet交换数据的很好方法。特别地,有了数据集的XML表示形式后,就可以在Web服务之间进行交换DataSet对象。(2)类型化数据集(typed data set)。
DataSet对象的功能很强大,但它们并不是最容易使用或最合乎逻辑的。例如,要访问表中的特定行,使用它就显得很笨拙。必须使用DataSet.Tables集合获得正确的表,用DataTable.Rows集合获得正确的行,然后以对象引用的形式或通过DataColumn的方法提取列数据—这些都不容易。访问特定列的代码行可能如下所示:
int result =(int)myDataSet.Tables[“myTable”].Rows[5][ “IntegerColumn”];还有一种方法,那就是使用类型化数据集。类型化数据集是DataSet的子类,但它包含强类型属性和方法,使得数据操作更容易。如果使用类型化数据集,上面的代码就可以简化为如下所示:
int result = myTypedDataSet.MyTable[5].IntegerColumn;虽然这并不影响代码的功能,但输入更容易(尤其是启用了智能感知功能时),以后阅读代码时也更容易理解。
唯一的限制是,需要在设计时就知道数据集中将包含的数据的结构。然而,因为数据库的结构不大可能有很大的改变,因此这通常不成问题。
可以使用xsd.exe工具或通过Visual C#速成版界面自动创建类型化数据集。xsd.exe工具要求提供一个架构(schema),这是以扩展名为.xsd的XML架构文件提供的。Visual C#速成版在创建类型化数据集时也要使用架构信息,但它直接从数据库获取这些信息,这使得对数据集的结构进行操作更容易。(3)性能。
有些人认为应尽量避免使用数据集。这是因为它们是“重量级”对象,带来的开销在高性能应用程序中可能很大。另外,以数据集的形式通过Web传输数据可能意味着要传输大量的XML数据。
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第22页
从某种程度上说,这些担忧是正确的。如果性能很重要,可以设计自己的类,并直接使用数据阅读器提供的数据进行填充。然而,数据集(特别是类型化数据集)自有它们的用处。它们提供了很多特性,只需少量代码就可以使用这些特性,且用于操作它们的代码通常很简单。例如,如果不没有数据集,要表示数据库的数据,同时在类中记录所有编辑,且这些编辑可以很容易地传输到数据库,可能需要大量的代码,且实现起来相当困难。3.2.2 数据绑定
数据绑定是程序员只需做少量工作就可以用数据库中的数据填充Windows或Web控件的一种技术。.NET框架让程序员只需使用简单的代码就可以将数据源与控件关联起来,实际上,可以通过GUI实现很多功能,而不需要编写大量C#代码。
数据绑定有两点要求:数据源和要绑定数据的控件。数据源包括数据库连接,但不仅限于此,也可以使用对象或来自Web服务的数据作为数据源。使用对象作为数据源是一种功能强大的方法,可以利用自定义的集合和自己设计的类,但这有点偏题了。本书大部分时候使用的数据源类型都是数据库数据源,它有Web控件形式,也有Windows控件形式。
生成数据库数据源时,通常不仅需要配置连接。数据库数据源包括关于要访问数据库中哪些对象的信息。实际上,在幕后通常将生成类型化数据集。此外,幕后还将用到前面介绍的ADO.NET对象(连接、命令、数据阅读器和数据适配器协同工作来创建数据源)。然而,程序员不必太担心这一点,而只需创建一个数据源并将它绑定到控件,如图2.7所示。
图2.7 数据绑定
要绑定到控件,需要将控件的属性设置为数据源的元素(从而间接地设置为数据库的元素)。对于简单控件,如标签或文本框,只要将控件的Text属性设置为数广东工业大学
企业人事管理系统__朱竞
2009-11-30
第23页
据库中类型为文本的列。还可以将数据绑定到列表控件(包括下拉列表),这样列表中的每项都绑定到数据库表中的一行。更高级的控件(如GridView)可用于查看整个表的内容。另外,也可以提供自定义的控件和自定义的数据绑定架构,以便使用和编辑数据库中的数据。3.3 SQL语言
通用的SQL语言,最早于1974年提出,当时称为SEQUEL语言,后来被国际标准化组织ISO采纳为国际标准,现在大多数数据库管理系统都支持SQL语言。
SQL是一种处理数据的高级语言,是非过程化语言,在查询数据时,只需指出“要什么”,而不需指出如何实现的过程。SQL语言包括数据定义、查询、操纵和控制功能。SQL语言的语法格式简单,使用方便灵活。3.3.1表定义语句
广义上讲,表定义语句包括数据表的创建语句(Create语句)、数据表修改语句(Alter语句)和数据表删除语句(Drop语句)。3.3.2视图定义语句
视图是对数据表中数据的一种显示方式,用一个数据表可以有多个视图,以根据用户的不同需求,将数据表中用户所关心的数据提取出来,显示给用户,忽略数据表中其他数据。视图也可以理解为一种预先定义好的查询。实际上,查询的优点在于可在多个数据表之间按指定的条件对数据进行筛选显示。3.3.3索引定义语句
索引是加速数据查询的重要手段,索引一旦被建立起来,就成为了数据库的一部份,并占用数据库的存储空间。使用索引的突出优点就是加快数据的查询速度,但是,对于数据的插入、删除和修改操作来说,索引却降低了执行效率。3.3.4数据操纵语句
数据操纵包括数据的插入、更新和删除等操作,数据操纵语句是应用程序编制过广东工业大学
企业人事管理系统__朱竞
2009-11-30
第24页
程中使用较多的语句之一。3.3.5INSERT语句
INSERT语句所实现的功能是向数据库中插入新的数据,该语句的一般语法如下: Insert into tableName [(fieldList)] values(valueList)3.3.6UPDATE语句
UPDATE语句用于更新数据表中的数据。所谓的更新是指数据已经存在于数据表,但需要对其中的数据进行修改,此时可以使用UPDATE语句实现。3.3.7DELETE语句
如果某些数据需要从数据表中删除,则可以使用DELETE语句进行,该语句的基本语法如下:
Delete from tableName [Where select_conditon] 3.3.8查询语句
查询语句是SQL语言中使用最为频繁的语句,查询可以根据需要在数据表内或者多个数据表之间进行数据筛选。熟练掌握数据查询语句,才能编写出高质量的数据库管理软件。
查询是SQL语言最重要最核心的功能之一。在SQL语言中查询是通过Select语句实现的,最简单的SQL语句结构如下: Select字段列表 From表名 3.3.9条件查询
Select语句除了可以对字段进行筛选以外,还可以对记录进行筛选和操作,此时,要用到Where字句。Where子句在Select语句中用于指定查询条件,其结构一般广东工业大学
企业人事管理系统__朱竞
2009-11-30
第25页
如下:
Select 字段列表 from 表名 Where 条件表达式 3.3.10查询排序
SQL语句还可以对查询的结果进行排序,此时,要用到Order by子句。另外,还要用到两个负责排序方式的关键词ASC和DESC,ASC指明按升序排列查询结果;DESC则指明按降序进行排列。排序查询的结构一般如下: Select fieldlist From tableName [Where select_conditon] Order by field1 [ASC|DESC],field2 [ASC|DESC] 3.3.11统计查询
SQL语言对数值型的字段具有统计的功能,该功能涉及到5个统计函数,介绍如下:Count(*):统计符合查询条件的记录的个数。AVG(field):计算某个数值型字段的平均值。Max(field):返回某个数值型字段的最大值。Min(field):返回某个数值型字段的最小值。Sum(field):计算某个数值型字段所有记录的和。3.3.12Group by子句
Group by子句的作用是将查询结果中的数据按指定字段分组,Group by子句常与统计函数一起使用,以对查询数据实现分组统计。Group by子句的一般语法如下:
Group by 字段1,字段2 3.3.13Distinct关键词
在数据表的某个字段中可能会出现多个重复的值,使用Distinct关键字可以避免查询结果中出现重复的记录。含Distinct关键词的SQL语句结构一般如下: Select Distinct 字段名列表 From 表名 Where 条件表达式
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第26页
3.3.14Top关键词
Top关键词的作用是限制查询结果的返回数目。该关键词常被用来限制显示查询结果中前多少个或者前百分之多少的记录。因此,Top关键词经常和Order by子句一起出现。Top关键词的基本语法: Top n Top n Percent 3.3.15多表查询
SQL语言还可以实现在同一个数据库中的不同数据表之间进行查询。3.3.16多重查询
SQL语句允许嵌套使用,这种查询一般是把其中一个查询的结果作为另一个查询语句的查询条件。多重查询中一般会出现In、Not In、All、Some或者Any等关键词。In和Not In用来指定某值在和不在某区间或者集合;All表示集合中的全部,而Some和Any则表示集合中的一部分。3.3.17EXISTS关键词
EXISTS(NOT EXISTS)关键词是复合查询语句中的常用关键词,其作用是判断复合查询语句的内层查询是否存在查询结果。使用EXISTS关键词时内层查询只是起到一个判断是否存在查询结果的作用,其筛选出的数据对整个查询没有任何作用。
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第27页
4系统需求分析
4.1系统流程图如下
员工管理准备员工信息管理登陆社会关系学习经历维护数据备份判定数据清空系统主界面部门设置设置清空员工管理系统设置岗位调整工资考勤信息管理下载考勤信息考评管理税率管理奖惩管理工资调整管理工资项目管理工资汇总统计子模块员工管理功能图如下:
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第28页
部门设置用户管理岗位调整员工管理学习经历维护员工基本信息社会关系用户管理:主要用于管理不同职能的员工信息,可以实现创建,修改,删除员工职能信息的功能。
系统运行界面图如下:
对应的数据库设计图:
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第29页
员工基本信息:企业人事档案管理信息化模块;具有快速、无限量员工数据输入及保存功能;由特定权限的管理员统一管理员工档案。对员工从进入公司开始直至离职的整个过程进行人面管理,档案信息包括,职员编号,职员姓名,出生年月,职工学历,定时检查更新员工信息,具有权限的使用者可以登记、查询、修改、统计部门信息、岗位设置情况。图如下:
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第30页
对应的数据库设计如下:
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第31页 社会关系:主要用于建立和保存职员的社会关系,以备侯用。运行图如下:
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第32页
对应的数据库系统设计:
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第33页
学习经历维护:主要记录员工各个阶段不同部门学习的情况。系统运行图
对应的数据库设计:
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第34页
部门设置:可以添加、修改、删除部门。系统运行图:
对应的数据库设计:
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第35页
岗位调整:主要用于让公司找到员工的强项并让员工发挥最大作用。
对应的数据库设计:
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第36页
工资考勤信息管理功能图如下:
下载考勤信息税率管理工资汇总统计考评管理工资考勤信息管理工资项目管理奖惩管理工资调整管理下载考勤信息:用于记录员工的考勤情况。系统运行图如下:
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第37页
对应的数据库设计图:
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第38页
考评管理:用于实时调查员工的工作情况,调整好他们最佳工作状态,可以促进良性竞争和增强企业的活力。系统运行图:
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第39页
对应的数据库设计图如下:
税率管理:主要用于计算税率,可以升级工资模块,跟时代同步。系统运行图如下:
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第40页
相应的数据库设计如图:
奖惩管理:赏罚分明,调动企业工作气氛。系统运行图如下:
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第41页
对应的数据库设计图如下:
工资调整管理:工资的合理调整可以有效调动员工积极性。系统运行图如下:
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第42页
对应的数据库设计图如下:
工资项目管理:用于基本工资和参数的记录和调整。系统运行图如下:
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第43页
对应数据库设计图如下:
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第44页
工资汇总统计:用于员工工资的报表显示。如图:
系统设置图如下:
数据备份系统设置数据清空设置清空 系统设置:主要用于数据库的备份和维护。
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第45页
运行图如下: 连接到数据库:
进行数据库备份或者恢复:
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第46页
广东工业大学
企业人事管理系统__朱竞
2009-11-30
第47页
第二篇:企业人事管理系统毕业论文设计[推荐]
江苏广播电视大学楚州学院
毕业设计(论文)
企业人事管理系统的设计与实现
学 院 楚州学院 专 业 计算机信息管理 年级班别 2009年 学 号 20097320081048 学生姓名 张 美 玲 指导教师 张 震
摘 要
在当今社会,互联网空前的发展,给人们的工作和生活带来了极大的便利和高效,信息化,电子化已经成为节约运营成本,提高工作效率的首选。考虑到当前大量企业的人事管理尚处于手工作业阶段,不但效率低下,还常常因为管理的不慎而出现纰漏。因此根据部分企业提供的需求,设计此企业人事管理系统,以帮助企业达到人事管理办公自动化、节约管理成本、提高企业工作效率的目的。
本企业人事管理系统采用C/S结构,主要对企业员工的信息以及跟人事相关的工作流程进行集中的管理,方便企业建立一个完善的、强大的员工信息数据库。它是以.NET2005.和SQL 2005 Express数据库作为开发平台。使用C# 设计操作控件和编写操作程序,完成数据输入、修改、存储、调用查询等功能;并使用SQL 2005数据库形成数据表,进行数据存储。
本文详细介绍了企业人事管理系统的功能需求,系统设计和具体实现。并简要介绍了系统开发采用的过程方法。
关键词
企业人事管理系统;C/S;员工信息数据库
II
1企业人事管理系统
企业人事管理系统....................................................3 1前言..............................................................3
1.1 应用的目的与意义............................................3 1.2 人事管理系统发展趋势.......................................3
1.2.2 世界趋势...............................................3 1.2.3 技术革新...............................................4 1.2.4 工作目标和价值观的改变.................................4 1.3 系统调研....................................................4
1.3.1 社会可行性分析.........................................4 1.3.2 技术可行性分析.........................................4 1.3.3 经济可行性分析.........................................5 1.3.4 管理可行性分析.........................................5 1.4 研究内容....................................................5 2开发工具及其语言特点..............................................6
2.1 Visual Studio.NET主要特点如下...............................6
2.2.1简洁的语法.............................................7 2.2.2精心地面向对象设计.....................................8 2.2.3与Web的紧密结合.......................................8 2.2.4完整的安全性与错误处理.................................9 2.2.5版本处理技术...........................................9 2.2.6灵活性和兼容性........................................10 3.1SQL2005主要特点.............................................10 3.1.1.NET框架..............................................10 3.1.2XML技术...............................................11 3.1.3ADO.NET2.0版本........................................11 3.1.4增强的安全性..........................................11 3.1.5Transact-SQL的增强性能................................11 3.1.6SQL服务中介...........................................11 3.1.7通告服务..............................................11 3.1.8Web服务...............................................12 3.1.9报表服务..............................................12 3.1.10全文搜索功能的增强...................................12 3.2C#与ADO.NET.................................................12 3.2.1 C#中的数据库访问.....................................12 3.2.2 数据绑定..............................................23 3.3 SQL语言...................................................24 3.3.1表定义语句............................................24 3.3.2视图定义语句..........................................24 3.3.3索引定义语句..........................................24 3.3.4数据操纵语句..........................................25 3.3.5INSERT语句............................................25 3.3.6UPDATE语句............................................25 3.3.7DELETE语句............................................25 3.3.8查询语句..............................................25
第1页
2企业人事管理系统
3.3.9条件查询..............................................26 3.3.10查询排序.............................................26 3.3.11统计查询.............................................26 3.3.12Group by子句.........................................26 3.3.13Distinct关键词.......................................26 3.3.14Top关键词............................................27 3.3.15多表查询.............................................27 3.3.16多重查询.............................................27 3.3.17EXISTS关键词.........................................27 4系统需求分析.....................................................28 4.1系统流程图如下..............................................28 5 致谢.............................................................49 附录F 各模块实现的主要源代码.....................................47 F1.1登录模块的设计与实现的主要代码.............................47 }..............................................................48 F1.2登陆实体类:...............................................48 F1.3 员工管理模块的设计与实现的主要代码.......................49 F1.3.1员工管理实现的主要代码:.................................49 F1.3.2 部门管理实现主要代码:.................................50 }..............................................................52 F1.3.3工资管理主要代码:.......................................53 }..............................................................56 F1.3.4考勤信息设计与实现主要代码:.............................56 }..............................................................60 F1.4 数据访问类:..............................................60 }..............................................................62 F1.5生日提醒主要代码:.........................................62 F1.6启动第三方EXE文件操作类:.................................63 }..............................................................63
第2页
3企业人事管理系统
企业人事管理系统
1前言
1.1 应用的目的与意义
人的管理是一切管理工作的核心。员工代表一个企业的形象,因而人事管理机制设计的好坏,直接影响一个企业的成败。
员工的档案管理是企业人事管理的基础,在企业员工普遍流失的今天,一个准确而及时的人事管理系统,有利于人事部门对员工流动进行分析、编制,为企业所需人员提供了保障。
人力资源部那些重复的,事务性的工作交给HRP(Human Resource Planning,人力资源管理系统)来解决,可以省去用户以往人力资源管理工作的繁琐、枯燥;用领先的人力资源管理理念,把人力资源管理的作业流程控制和战略规划设计巧妙地集合于一体;系统重点涉及到人力资源管理工作中的薪资、考勤、绩效、调动、基本信息、用户管理以及用户切换等方面,并有综合的系统安全设置、报表综合管理模块。可以很好地为用户的人力资源管理部门在对员工的成本管理、知识管理、绩效管理等综合管理给予帮助。以每个月中所发工资为例,其中包括考勤、人事信息变动、奖惩、迟到和旷工对本月的薪资计算都有影响,为了及时的计算发放工资往往要提前一个星期花费大量时间,加班加点才能及时完成,而这样做无论从工作效率还是准确度方面,都不允许,而且还浪费大量的人力财力。如果改用HRP管理做到高效、高精度,还可以减少管理时带来的一些繁琐的工作,节约管理带来的开支。1.2 人事管理系统发展趋势 1.2.2 世界趋势
人力资源管理系统主导21世纪,无论是发达国家还是发展中国家,对人力资源的战略性意义都有了深刻的认识,并开始付诸行动。世界公认,21世纪将是人力资源的世纪;人力资源问题将主导整个21世纪甚至更为遥远,这种状况的变化起因于竞争压力。目前,世界经济趋向全球化。世界经济的全球化过程和国
第3页
4企业人事管理系统
家的开放过程,要求组织的管理部门降低管理成本以减少竞争压力和增强竞争能力。对于不同的组织,人力资源成本在总成本中的比例是不一样的。1.2.3 技术革新
无论是现在还是将来,工业的发展越来越多地取决于科学和技术、知识与技能。高新科技产业更是如此。这不仅要求员工尤其是技术人员掌握新的科学知识和技术能力,而且更重要的在于要求员工深入而快捷地掌握和应用这些知识和技能。这就导致了两个问题。第一,随着这种技术革新的发展和知识更新速度的加快,人们有更多的职业选择机会。第二,伴随着这种发展以及职业选择机会的增多,人力资源管理活动和频繁程度加剧;而且这种活动对科学技术的要求与它的反应程度也更高了,进而提高了人力资源成本。1.2.4 工作目标和价值观的改变
随着社会政治和经济的发展,人们的工作目标和价值观也都发生了重要的变化。这就对人事管理部门和管理人员提出了新的要求和新的问题,不得不考虑诸如工作类型设计、岗位分析、充分尊重员工以及为他们提供良好的个人发展和自我价值实现的环境与条件等问题。这样,人力资源管理就派上了用场。1.3 系统调研
1.3.1 社会可行性分析
随着计算机的发展与普及,以及互联网技术的扩展,日常劳资人事管理必将实现无纸化办公,并且加入到公司内部的Intranet或者是Internet上去,实现数据的共享,这样有利于劳资人事信息在单位内部的查询,提高了数据资源的利用,并且能及时的得到更新,不需要象过去那样浪费大量的人力物力去进行抄写,提高了工作的效率 1.3.2 技术可行性分析
Visual Studio.NET提供了一个统一的、紧密集成的可视化编程环境,简化了开发应用程序的过程,缩短了实用方法的时间。利用Visual Studio.NET,可
第4页
5企业人事管理系统
以非常轻松地创建具有自动伸缩能力的可靠的应用程序和组件。而且微软的优秀成果c#语言保持了c/c++所特有的强大功能和控制能力。与c++十分相似的模型和语法,具有与COM+服务完全的交互性和完全支持能力,能够轻松地迁移现有的代码。数据库方面SQL2005已经可以满足中小型企业的数据要求,甚至有些大型企业都可以达到要求。如今进算计普及程度日益推广,计算机配置日新月异,能承载此系统的机器就如办公的机器都可以达到要求。所以说本系统具有技术可行性。
1.3.3 经济可行性分析 采用传统的手工输入方法,不仅工作繁琐而且需要人力输入多,记录容易出错,那样产生了成本高,效果差的弊病,对于一个企业的资料库建立是十分困难和麻烦的。而采用这种系统所发费的成本,精力都远远低于手工,并且实用十分方便,更新也简易,每个部门只需一个人统一管理,对企业实现办公无纸化能起到很大的作用。所以此系统经济可行性也具备了。1.3.4 管理可行性分析
本系统采用了系统数据备份、恢复的功能,而且界面层次分明,一目了然,加上设计方面加入了人性化元素。管理此系统并不难,易学易会。1.4 研究内容
本论文共分为5章。第1章绪论,介绍了本课题的应用目的和意义、人事管理系统、可行性分析和研究内容。第2章介绍了开发工具及其特点、数据库技术。第3章主要介绍了系统的设计与分析,包括总体设计、数据库设计、详细设计等。第4章主要介绍系统实现,即系统各种模块的功能实现。第5章为本课题完成成果和发展期望的总结。
本论文主要利用C#可视化技术及SQL数据库开发技术,对员工管理与考勤管理系统进行系统化、细致化和完善化的分析研究。
第5页
6企业人事管理系统
2开发工具及其语言特点
2.1 Visual Studio.NET主要特点如下 2.1.1提供加速开发过程的高效工具
Visual Studio.NET提供了一个统一的、紧密集成的可视化编程环境,以帮助用户简化开发网络应用程序的过程,缩短学习使用方法的时间。它提供了一种新的语言——C#。通过共享的HTML、XML和样式单编辑器,用户可以轻松地借助包括C#在内的任何一种Visual Studio语言来开发网络应用程序。2.1.2 提供对各种网络应用程序的快速设计能力
借助Web Form,用户可以用他们在开发基于窗体的桌面应用程序时所使用的技巧来创建跨平台、跨浏览器的网络应用程序。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#也不会给你带来任何其它的麻烦,第6页
7企业人事管理系统
快速应用程序开发(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#对此进行了简化,只保留了常见的形式,而别的冗余形式从它的语法结构中被清除了出去。
第7页
8企业人事管理系统
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服务,并允许它们通
第8页
9企业人事管理系统
过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#将会使开发人员更加轻易地开发和维护各种商业用户。升级软件系统中的组件(模块)是一件容易产生错
第9页
10企业人事管理系统
误的工作。在代码修改过程中可能对现存的软件产生影响,很有可能导致程序的崩溃。为了帮助开发人员处理这些问题,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.1SQL2005主要特点 3.1.1.NET框架
使用SQL Server2005,开发人员通过使用相似的语言,例如微软的VisualC#.NET和微软的VisualBasic,将能够创立数据库对象。开发人员还将能够建立两个新的对象——用户定义的类和集合。
第10页
11企业人事管理系统
3.1.2XML技术
在使用本地网络和互联网的情况下,在不同应用软件之间散步数据的时候,可扩展标记语言(XML)是一个重要的标准。SQL Server2005将会自身支持存储和查询可扩展标记语言文件。3.1.3ADO.NET2.0版本
从对SQL类的新的支持,到多活动结果集(MARS),SQL Server2005中的ADO.NET将推动数据集的存取和操纵,实现更大的可升级性和灵活性。3.1.4增强的安全性
SQL Server2005中的新安全模式将用户和对象分开,提供fine-grainaccess存取、并允许对数据存取进行更大的控制。另外,所有系统表格将作为视图得到实施,对数据库系统对象进行了更大程度的控制。3.1.5Transact-SQL的增强性能
SQL Server2005为开发可升级的数据库应用软件,提供了新的语言功能。这些增强的性能包括处理错误、递归查询功能、关系运算符PIVOT,APPLY,ROW_NUMBER和其他数据列排行功能,等等。3.1.6SQL服务中介
SQL服务中介将为大型、营业范围内的应用软件,提供一个分布式的、异步应用框架。3.1.7通告服务
通告服务使得业务可以建立丰富的通知应用软件,向任何设备,提供个人化的和及时的信息,例如股市警报、新闻订阅、包裹递送警报、航空公司票价等。
第11页
12企业人事管理系统
在SQL Server2005中,通告服务和其他技术更加紧密地融合在了一起,这些技术包括分析服务、SQLServerManagementStudio。3.1.8Web服务
使用SQL Server2005,开发人员将能够在数据库层开发Web服务,将SQL Server当作一个超文本传输协议(HTTP)侦听器,并且为网络服务中心应用软件提供一个新型的数据存取功能。3.1.9报表服务
利用SQL Server2005,报表服务可以提供报表控制,可以通过VisualStudio2005发行。3.1.10全文搜索功能的增强
SQL Server2005将支持丰富的全文应用软件。服务器的编目功能将得到增强,对编目的对象提供更大的灵活性。查询性能和可升级性将大幅得到改进,同时新的管理工具将为有关全文功能的运行,提供更深入的了解。3.2C#与ADO.NET
3.2.1 C#中的数据库访问
用.NET框架编写的(当然也包括用C#编写的应用程序)应用程序需要访问数据库时,将使用ADO.NET来实现数据库访问。数据绑定是一种非常有用的访问数据库的方法,能够减少需要编写的代码量。很多简单任务可以通过纯粹声明式代码来完成。<1> ADO.NET ADO.NET是微软的数据访问框架的最新产物,它是.NET框架的一部分。在ADO.NET之前,程序员在ASP(Active Server Pages)或Visual Basic中使用
第12页
13企业人事管理系统
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,本节也将介绍它们。1.DbConnection DbConnection类提供与数据库的连接。创建DbConnection对象时,应提供与DBMS通信所需的所有信息,如数据库的位置、用于认证的用户名和密码以
第13页
14企业人事管理系统
及要访问的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及其他子类都称为连接类。2.DbCommand DbCommand类提供与数据库交互的主要方法。可以用DbCommand对象来执行SQL语句、运行存储过程等。DbCommand及其派生类称为命令类。
大部分时候并不直接使用DbCommand,而是用封装了DbCommand的其他对象。但有时候需要对数据库通信进行更多的控制,这时就可以使用DbCommand对象。DbCommand对象的扮演角色如图2.2所示。
第14页
15企业人事管理系统
图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格式返回结果。3.DbDataReader 使用DbDataReader类可以从结果集中读取数据,如从执行存储在命令对象中的命令生成的结果集中读取数据。该类经过高度优化,可以很快地访问数据库中的数据。然而,这种优化也有些副作用,例如,只能以串行方式一次读取一行数据。不能读完两行后再返回去读取第一行。通常,可以用DbDataReader对象(更确切地说,是数据阅读器的子类对象)来提取要使用的行数据,并将其存储在其他对象中。例如,可以读取一个结果集中的每行,将其存储到在自定义集合或泛型列表对象中的自定义类中。
第15页
16企业人事管理系统
与命令对象一样,很多时候数据阅读器对象是由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也能够获得关于它包含的数据的元信息—使用
第16页
17企业人事管理系统
DbDataReader.GetSchema Table()方法,这样就可以知道列的名称、数据类型和其他信息,如列是否包含空值。
与前面的其他类一样,也有专门用于SQL Server的数据阅读器类,这就是SqlDataReader,本书将使用该类。该类继承DbDataReader,提供将数据读取为本地SQL类型的方法,这样就能够避免空类型的问题。这些类型包含在System.Data.Sqltypes命名空间中,是可为空的;如SqlDouble和SqlInt32。虽然这些类型也可以像标准的值类型那样进行操作,但它们实际上是引用类型。4.DbDataAdapter 在ADO.NET的核心数据访问类中,最后一个是DbDataAdapter类。它比前面介绍过的类型要复杂得多,设计该类的目的只有一个:减少存储在数据集对象中的数据与数据库进行数据交换时的干扰。与前面的类一样,DbDataAdapter类也有很多派生类,它们统称为数据适配器类。
稍后将详细解释什么是数据集对象,简单地说,它们是能够以.NET对象的形来表示数据库中数据的对象。数据集对象可以包含整个表或多个表的数据。数据适配器既可以将数据库中的数据传输给包含在数据集中的表,也可以将数据集中的数据传输到数据库中。
这个功能由命令对象和数据阅读器对象执行,因此大部分时候用户不必考虑它。然而,DbDataAdapter最重要的(也是最有用的)特性之一是,它用于传输数据的命令对象被暴露出来,因此可以根据需要对它们进行定制。图2.4说明了DbDataAdapter类的工作原理,包括它包含的命令对象。
第17页
18企业人事管理系统
图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。5.DataTable DataTable是ADO.NET提供的第一个数据表示类。与数据访问类不同,数据表示类没有专门用于特定数据库管理系统(如SQL Server)的子类,它们独立于平台。实际上,如果需要的话,数据表示类完全可以独立于数据库使用,它们只是存储数据的一种方便的方法。
DataTable类用于存储(读者可能对此感到不解)数据表。在继续讨论这个类之
第18页
19企业人事管理系统
前需要澄清一件事情:以DataTable对象存储的表不一定要映射到数据库中的表。DataTable可能包含表中数据的一个子集,该子集可能只包含数据库表的部分行、部分列,可能是由数据库中多个表组合而成的数据,还可能是所有这些的组合,这取决于用于获得数据的查询语句。通常,DataTable与数据库中的表匹配,但仍然要知道上面提到的事实。
图3.2.5说明了DataTable与其他ADO.NET对象之间的关系。
图2.5 DataTable 要获得完全填充的DataTable,可使用数据适配器。有包含数据的DataTable后,就可以访问行、列、约束和它包含的其他信息。这些信息可以通过命名恰切的属性来访问,包括Rows、Columns和Contraints等。
上面提到的3个属性都返回一个集合类(DataRowCollection、DataColumnCollection和ConstaintCollection)对象。与其他集合类一样,这些类可用于在它们包含的对象集合中导航,添加或删除项等。稍后将介绍这些集合包含的类。
DataTable类另一个非常重要的方面是,如何处理数据修改。例如,如果删除DataTable中的一行,数据适配器如何知道在数据库中删除对应的数据?DataTable对象记录了对原始数据的修改,而不只是数据的当前状态。从DataTable中删除一行并不会真的删除这些数据,而只是数据被标记为已删除。在DataTable对象的消费方(如应用程序)看来,就像数据已被删除,但实际上并没有删除。
任何时候都可以使用GetChanges()方法获得关于对DataTable对象所做的修改
第19页
20企业人事管理系统
列表(以另一个DataTable对象的形式)。可以在适当时使用AcceptChanges()方法接受已做的修改,从而覆盖原来的数据。例如,可以在修改提交到数据库后这样做。也可以使用RejectChanges()撤销所有的修改,如当最终用户单击“取消”按钮时。
DataTable对象也暴露了很多事件,在应用程序中可以定制这些事件,如RowDeleted和ColumnChanged。使用这些事件可以保证应用程序对事件进行响应,还可以实现其他功能,例如,确保底层数据库在数据发生修改时立即更新。(1)DataColumn。
DataColumn存储了在数据表中定义列所需的所有信息。在DataTable中,Columns属性包含一个DataColumnCollection,这是一个DataColumn对象集合。DataColumn还包含与DBMD匹配的属性,包括ColumnName、Dataype、AllowDBNull和DefaultValue。它的属性可能比使用的DBMS的属性还要多,但如果使用过不同的DBMS,这一点将显而易见。对于SQL Server,这并不是问题。(2)Constaint。
Constaint对象(在ConstaintCollection中,可通过DataTable.Constaints访问)用于包含表的所有元数据,这些数据不包含在DataColumn对象中。Constaint类作为更具体类的基类,这些具体类包括UniqueConstaint—用于确保给定列或列组合的值是唯一的(例如,这对于主键是必须的)和ForeingKeyConstaint—用于实现表之间的关系。(3)DataRow。
DataRow类用于存储表中一行包含的数据。通过DataTable.Rows属性可以访问DataRow Collection对象,后者存储了组成表数据的多个DataRow对象。一行数据中的各列可通过索引器来访问,索引器让你能够通过列名、索引和版本(例如,如果行被修改)来访问列。
行的当前状态,即它是否被修改、删除或以某种方式改变,可通过DataRowState属性访问。该属性的值为DataRowState类型,这是一种包含所有可能行状态的枚举类型。各个DataRow对象也有与DataTable对应的方法,用于接受、拒绝和获得更改。例如,可以推断出,调用DataTable.AcceptChanges()将级联地对表的每行调用DataRow AcceptChanges()。
第20页
21企业人事管理系统
6.DataRelation 在处理多个DataTable对象时,通常需要表示(并实施)表数据之间的关系。这由DataRelation类来完成。可将多个DataRelation对象组合起来,构成一个DataRelationCollection对象。
关系可以用DataRelation类的多个属性来定义,包括ChildTable、ChildColumns、ChildKeyConstraint、ParentTable和ParentKeyConstraint等。这些属性都是对相应的对象的引用,如DataTable和DataColumn对象。关系名也被存储在DataRelation.RelationName属性中。
现在还不用太担心DataRelation对象,因为它们封装了ADO.NET比较高级的方面,这在本书后面将介绍。7.DataSet 现在到了ADO.NET中最重要的类—DataSet。从某种程度上说,该类只是DataTable对象和DataRelation对象的集合(如图2.6所示)。然而,DataSet的强大功能体现在与其他对象结合使用,包括用于Web应用程序和Windows应用程序的控件、Web服务和XML文档。
DataSet类包含很多属性和方法;其中很多与其组成部分的属性和方法类似,例如,GetChanges()和RejectChanges()。还有一些重要的属性,如Tables(以DataTableCollection类的形式包含DataSet中的表集合)、Relations(包含一个DataRelation Collection类,其中的Relation对象定义了表之间的关系)。数据表之间的关系及应用于数据的约束使得对DataSet的操作很麻烦。例如,如果两个表之间存在一对多关系,则添加一行到其中一个表中,可能要求另一个表中存在一行。而这行可能不存在(例如,如果两行同时添加时),这时,为避免错误,添加这些行的顺序将很重要;必须先添加位于关系“一”端的行。也可以将DataSet.Enforce Constraints属性设置为false,这样在执行编辑操作时将忽略关系。
(1)DataSet对象和XML之间的关系。
第21页
22企业人事管理系统
与ADO.NET的其他对象一样,设计DataSet对象时也考虑了XML数据。使用DataSet.GetXml()方法,可将数据集转换为XML文档;还可以使用DataSet.GetXmlSchema()方法只提取数据集中的架构(包括数据集包含的所有表和其他对象的架构)作为XML文档。还可使用序列化技术在DataSet和XML文档之间进行转换,因为DataSet类实现了IxmlSeria-lizable接口。
DataSet对象与XML之间的关系以及使用序列化在这两种表示格式之间进行转换,在.NET框架中运用相当广泛。它提供了一种在应用程序层之间和通过Internet交换数据的很好方法。特别地,有了数据集的XML表示形式后,就可以在Web服务之间进行交换DataSet对象。(2)类型化数据集(typed data set)。
DataSet对象的功能很强大,但它们并不是最容易使用或最合乎逻辑的。例如,要访问表中的特定行,使用它就显得很笨拙。必须使用DataSet.Tables集合获得正确的表,用DataTable.Rows集合获得正确的行,然后以对象引用的形式或通过DataColumn的方法提取列数据—这些都不容易。访问特定列的代码行可能如下所示: int
result
=(int)myDataSet.Tables[“myTable”].Rows[5][ “IntegerColumn”];还有一种方法,那就是使用类型化数据集。类型化数据集是DataSet的子类,但它包含强类型属性和方法,使得数据操作更容易。如果使用类型化数据集,上面的代码就可以简化为如下所示:
int result = myTypedDataSet.MyTable[5].IntegerColumn;虽然这并不影响代码的功能,但输入更容易(尤其是启用了智能感知功能时),以后阅读代码时也更容易理解。
唯一的限制是,需要在设计时就知道数据集中将包含的数据的结构。然而,因为数据库的结构不大可能有很大的改变,因此这通常不成问题。
可以使用xsd.exe工具或通过Visual C#速成版界面自动创建类型化数据集。xsd.exe工具要求提供一个架构(schema),这是以扩展名为.xsd的XML架构文件提供的。Visual C#速成版在创建类型化数据集时也要使用架构信息,但它直接从数据库获取这些信息,这使得对数据集的结构进行操作更容易。
第22页
23企业人事管理系统
(3)性能。
有些人认为应尽量避免使用数据集。这是因为它们是“重量级”对象,带来的开销在高性能应用程序中可能很大。另外,以数据集的形式通过Web传输数据可能意味着要传输大量的XML数据。
从某种程度上说,这些担忧是正确的。如果性能很重要,可以设计自己的类,并直接使用数据阅读器提供的数据进行填充。然而,数据集(特别是类型化数据集)自有它们的用处。它们提供了很多特性,只需少量代码就可以使用这些特性,且用于操作它们的代码通常很简单。例如,如果不没有数据集,要表示数据库的数据,同时在类中记录所有编辑,且这些编辑可以很容易地传输到数据库,可能需要大量的代码,且实现起来相当困难。3.2.2 数据绑定
数据绑定是程序员只需做少量工作就可以用数据库中的数据填充Windows或Web控件的一种技术。.NET框架让程序员只需使用简单的代码就可以将数据源与控件关联起来,实际上,可以通过GUI实现很多功能,而不需要编写大量C#代码。数据绑定有两点要求:数据源和要绑定数据的控件。数据源包括数据库连接,但不仅限于此,也可以使用对象或来自Web服务的数据作为数据源。使用对象作为数据源是一种功能强大的方法,可以利用自定义的集合和自己设计的类,但这有点偏题了。本书大部分时候使用的数据源类型都是数据库数据源,它有Web控件形式,也有Windows控件形式。
生成数据库数据源时,通常不仅需要配置连接。数据库数据源包括关于要访问数据库中哪些对象的信息。实际上,在幕后通常将生成类型化数据集。此外,幕后还将用到前面介绍的ADO.NET对象(连接、命令、数据阅读器和数据适配器协同工作来创建数据源)。然而,程序员不必太担心这一点,而只需创建一个数据源并将它绑定到控件,如图2.7所示。
图2.7 数据绑定
第23页
24企业人事管理系统
要绑定到控件,需要将控件的属性设置为数据源的元素(从而间接地设置为数据库的元素)。对于简单控件,如标签或文本框,只要将控件的Text属性设置为数据库中类型为文本的列。还可以将数据绑定到列表控件(包括下拉列表),这样列表中的每项都绑定到数据库表中的一行。更高级的控件(如GridView)可用于查看整个表的内容。另外,也可以提供自定义的控件和自定义的数据绑定架构,以便使用和编辑数据库中的数据。3.3 SQL语言
通用的SQL语言,最早于1974年提出,当时称为SEQUEL语言,后来被国际标准化组织ISO采纳为国际标准,现在大多数数据库管理系统都支持SQL语言。SQL是一种处理数据的高级语言,是非过程化语言,在查询数据时,只需指出“要什么”,而不需指出如何实现的过程。SQL语言包括数据定义、查询、操纵和控制功能。SQL语言的语法格式简单,使用方便灵活。3.3.1表定义语句
广义上讲,表定义语句包括数据表的创建语句(Create语句)、数据表修改语句(Alter语句)和数据表删除语句(Drop语句)。3.3.2视图定义语句
视图是对数据表中数据的一种显示方式,用一个数据表可以有多个视图,以根据用户的不同需求,将数据表中用户所关心的数据提取出来,显示给用户,忽略数据表中其他数据。视图也可以理解为一种预先定义好的查询。实际上,查询的优点在于可在多个数据表之间按指定的条件对数据进行筛选显示。3.3.3索引定义语句
索引是加速数据查询的重要手段,索引一旦被建立起来,就成为了数据库的一部份,并占用数据库的存储空间。使用索引的突出优点就是加快数据的查询速度,但是,对于数据的插入、删除和修改操作来说,索引却降低了执行效率。
第24页
25企业人事管理系统
3.3.4数据操纵语句
数据操纵包括数据的插入、更新和删除等操作,数据操纵语句是应用程序编制过程中使用较多的语句之一。3.3.5INSERT语句
INSERT语句所实现的功能是向数据库中插入新的数据,该语句的一般语法如下: Insert into tableName [(fieldList)] values(valueList)3.3.6UPDATE语句
UPDATE语句用于更新数据表中的数据。所谓的更新是指数据已经存在于数据表,但需要对其中的数据进行修改,此时可以使用UPDATE语句实现。3.3.7DELETE语句
如果某些数据需要从数据表中删除,则可以使用DELETE语句进行,该语句的基本语法如下:
Delete from tableName [Where select_conditon] 3.3.8查询语句
查询语句是SQL语言中使用最为频繁的语句,查询可以根据需要在数据表内或者多个数据表之间进行数据筛选。熟练掌握数据查询语句,才能编写出高质量的数据库管理软件。
查询是SQL语言最重要最核心的功能之一。在SQL语言中查询是通过Select语句实现的,最简单的SQL语句结构如下: Select字段列表 From表名
第25页
26企业人事管理系统
3.3.9条件查询
Select语句除了可以对字段进行筛选以外,还可以对记录进行筛选和操作,此时,要用到Where字句。Where子句在Select语句中用于指定查询条件,其结构一般如下:
Select 字段列表 from 表名 Where 条件表达式 3.3.10查询排序
SQL语句还可以对查询的结果进行排序,此时,要用到Order by子句。另外,还要用到两个负责排序方式的关键词ASC和DESC,ASC指明按升序排列查询结果;DESC则指明按降序进行排列。排序查询的结构一般如下: Select fieldlist From tableName [Where select_conditon] Order by field1 [ASC|DESC],field2 [ASC|DESC] 3.3.11统计查询
SQL语言对数值型的字段具有统计的功能,该功能涉及到5个统计函数,介绍如下:Count(*):统计符合查询条件的记录的个数。AVG(field):计算某个数值型字段的平均值。Max(field):返回某个数值型字段的最大值。Min(field):返回某个数值型字段的最小值。Sum(field):计算某个数值型字段所有记录的和。3.3.12Group by子句
Group by子句的作用是将查询结果中的数据按指定字段分组,Group by子句常与统计函数一起使用,以对查询数据实现分组统计。Group by子句的一般语法如下:
Group by 字段1,字段2 3.3.13Distinct关键词
在数据表的某个字段中可能会出现多个重复的值,使用Distinct关键字可以避
第26页
27企业人事管理系统
免查询结果中出现重复的记录。含Distinct关键词的SQL语句结构一般如下: Select Distinct 字段名列表 From 表名 Where 条件表达式 3.3.14Top关键词
Top关键词的作用是限制查询结果的返回数目。该关键词常被用来限制显示查询结果中前多少个或者前百分之多少的记录。因此,Top关键词经常和Order by子句一起出现。Top关键词的基本语法: Top n Top n Percent 3.3.15多表查询
SQL语言还可以实现在同一个数据库中的不同数据表之间进行查询。3.3.16多重查询
SQL语句允许嵌套使用,这种查询一般是把其中一个查询的结果作为另一个查询语句的查询条件。多重查询中一般会出现In、Not In、All、Some或者Any等关键词。In和Not In用来指定某值在和不在某区间或者集合;All表示集合中的全部,而Some和Any则表示集合中的一部分。3.3.17EXISTS关键词
EXISTS(NOT EXISTS)关键词是复合查询语句中的常用关键词,其作用是判断复合查询语句的内层查询是否存在查询结果。使用EXISTS关键词时内层查询只是起到一个判断是否存在查询结果的作用,其筛选出的数据对整个查询没有任何作用。
第27页
28企业人事管理系统
4系统需求分析
4.1系统流程图如下
员工管理准备员工信息管理登陆社会关系学习经历维护数据备份判定数据清空系统主界面部门设置设置清空员工管理系统设置岗位调整工资考勤信息管理下载考勤信息考评管理税率管理奖惩管理工资调整管理工资项目管理工资汇总统计子模块员工管理功能图如下:
部门设置用户管理岗位调整员工管理学习经历维护员工基本信息社会关系第28页
29企业人事管理系统
用户管理:主要用于管理不同职能的员工信息,可以实现创建,修改,删除员工职能信息的功能。
系统运行界面图如下:
对应的数据库设计图:
员工基本信息:企业人事档案管理信息化模块;具有快速、无限量员工数
第29页
30企业人事管理系统
据输入及保存功能;由特定权限的管理员统一管理员工档案。对员工从进入公司开始直至离职的整个过程进行人面管理,档案信息包括,职员编号,职员姓名,出生年月,职工学历,定时检查更新员工信息,具有权限的使用者可以登记、查询、修改、统计部门信息、岗位设置情况。图如下:
对应的数据库设计如下:
第30页
31企业人事管理系统
社会关系:主要用于建立和保存职员的社会关系,以备侯用。运行图如下:
第31页
32企业人事管理系统
对应的数据库系统设计:
第32页
33企业人事管理系统
学习经历维护:主要记录员工各个阶段不同部门学习的情况。系统运行图
对应的数据库设计:
第33页
34企业人事管理系统
部门设置:可以添加、修改、删除部门。系统运行图:
对应的数据库设计:
岗位调整:主要用于让公司找到员工的强项并让员工发挥最大作用。
第34页
35企业人事管理系统
对应的数据库设计:
工资考勤信息管理功能图如下:
第35页
36企业人事管理系统
工资汇总统计下载考勤信息税率管理考评管理工资考勤信息管理工资项目管理奖惩管理工资调整管理下载考勤信息:用于记录员工的考勤情况。系统运行图如下:
对应的数据库设计图:
第36页
37企业人事管理系统
考评管理:用于实时调查员工的工作情况,调整好他们最佳工作状态,可以促进良性竞争和增强企业的活力。系统运行图:
第37页
38企业人事管理系统
对应的数据库设计图如下:
税率管理:主要用于计算税率,可以升级工资模块,跟时代同步。系统运行图如下:
相应的数据库设计如图:
第38页
39企业人事管理系统
奖惩管理:赏罚分明,调动企业工作气氛。系统运行图如下:
对应的数据库设计图如下:
第39页
40企业人事管理系统
工资调整管理:工资的合理调整可以有效调动员工积极性。系统运行图如下:
对应的数据库设计图如下:
第40页
41企业人事管理系统
工资项目管理:用于基本工资和参数的记录和调整。系统运行图如下:
对应数据库设计图如下:
第41页
42企业人事管理系统
工资汇总统计:用于员工工资的报表显示。如图:
系统设置图如下:
数据备份系统设置数据清空设置清空 系统设置:主要用于数据库的备份和维护。
第42页
43企业人事管理系统
运行图如下: 连接到数据库:
进行数据库备份或者恢复:
第43页
44企业人事管理系统
系统大概流程和功能介绍:
系统登陆:安全作用,设置管理员的账号用于登陆与维护。
系统主界面:
第44页
45企业人事管理系统
增强更为人性化的功能: 比如操作助手:
企业员工生日提醒如图:
第45页
46企业人事管理系统
增强更为美观的界面:
参考文献:
[1] 王珊,陈红.数据库系统原理教程[M].北京:清华大学出版社,2008。[2] 李晓喆.SQL Server 2000管理及应用系统开发[M].北京:人民邮电出版社,2002。
[3] 侯晓霞,柴洪辉.C#技术内幕[M].北京:清华大学出版社,2002。[4] 李敏波.C#高级编程[M].北京:清华大学出版社,2005。[5] 张志华,刘云鹏.C#设计模式[M].北京:电子工业出版社,2003。[6] 张晓坤,谭立平,车树良.C#编程语言详解[M].北京:电子工业出版社,2004。
[7] 周存杰.Visual.C#.NET.网络核心编程[M].北京:清华大学出版社,2002。[8] 姜力,高群.SQL Server数据库设计与管理[M].北京:中国林业出版社,2006
第46页
47企业人事管理系统
致谢
首先衷心感谢我的导师谢光强老师对我学术上的指导和帮助。在毕业设计和论文写作的过程中,谢老师给我提供了各种意见与支持,并引导我逐步解决各种问题,使我的毕业论文条理化、规范化,同时使我增长了见识、提高了水平。谢老师学识渊博、治学严谨,作为我的导师让我感到万分的荣幸。
同时感谢同事,他为我提供了一些c#学习资料。最后,还要感谢所有帮助过我和关心过我的人。忠心的说一声“谢谢”。
附录F 各模块实现的主要源代码
F1.1登录模块的设计与实现的主要代码 if(tbxUserCode.Text.Trim()== “"){ BigMessageBox.Show(”请您输入用户或密码!“, ”警告“, MessageBoxButtons.OK, MessageBoxIcon.Stop);this.tbxUserCode.Text = ”“;this.tbxUserCode.Text = ”“;this.tbxUserCode.Focus();return;} else { EmployeeInfo emp = null;switch(User.LoginValidate(tbxUserCode.Text.Trim(), tbxUserPwd.Text.Trim(), out emp)){ case User.LoginResult.NoUser: { BigMessageBox.Show(”没有该用户信息“, ”用户验证“, MessageBoxButtons.OK, MessageBoxIcon.Stop);tbxUserCode.Text = ”“;tbxUserCode.Focus();break;} case User.LoginResult.PasswordError: { BigMessageBox.Show(”用户密码错误!“, ”用户验证“, MessageBoxButtons.OK, MessageBoxIcon.Stop);tbxUserPwd.Text = ”“;
第47页
48企业人事管理系统
tbxUserPwd.Focus();break;} case User.LoginResult.Success: { FormMain objMain = new FormMain();this.Hide();objMain.Show();break;} default: break;}
} F1.2登陆实体类:
StringBuilder strSql = new StringBuilder();strSql.Append(”select EmpID, LoginName, LoginCode, Password, RoleID, IsUsed, CreateName,CreateDatetime,Remark FROM Login “);strSql.Append(” where LoginrCode=“ + LoginrCode);Login model = new Login();DataTable dt = DbHelperSQL.Instance.GetDataTable(strSql.ToString());
if(dt.Rows.Count > 0){
model.EmpNO = dt.Rows[0][”EmpNO“].ToString();model.LoginName = dt.Rows[0][”LoginName“].ToString();model.LoginrCode = dt.Rows[0][”LoginCode“].ToString();model.Password = dt.Rows[0][”Password“].ToString();if(dt.Rows[0][”RoleID“].ToString()!= ”“){ model.RoleID = int.Parse(dt.Rows[0][”RoleID“].ToString());} model.IsUsed = dt.Rows[0][”IsUsed“].ToString();model.CreateName = dt.Rows[0][”CreateName“].ToString();if(dt.Rows[0][”CreateDatetime“].ToString()!= ”"){
第48页
第三篇:企业人事管理系统毕业论文设计
目录
前 言........................................................................................................................................错误!未定义书签。1 需求分析................................................................................................................................错误!未定义书签。1.1 系统需求..........................................................................................................................错误!未定义书签。1.1 功能需求..........................................................................................................................错误!未定义书签。1.3 可靠性要求......................................................................................................................错误!未定义书签。1.4 性能需求..........................................................................................................................错误!未定义书签。2 开发环境简介.........................................................................................................................错误!未定义书签。2.1 DELPHI简介.....................................................................................................................错误!未定义书签。2.1.1 Delphi7的集成开发环境(IDE)..........................................................................错误!未定义书签。2.1.2 Pascal简介...............................................................................................................错误!未定义书签。2.2 SQL SERVER 2000 简介..................................................................................................错误!未定义书签。2.2.1 SQL Server 数据平台..............................................................................................错误!未定义书签。2.3 TQUERY部件在SQL编程中的运用...............................................................................错误!未定义书签。3 总体设计................................................................................................................................错误!未定义书签。3.1 基本设计..........................................................................................................................错误!未定义书签。3.1.1 设计概念..................................................................................................................错误!未定义书签。3.1.2 功能分析..................................................................................................................错误!未定义书签。3.1.3 数据流图..................................................................................................................错误!未定义书签。3.1.4 系统模块..................................................................................................................错误!未定义书签。3.2 用例图..............................................................................................................................错误!未定义书签。4 数据库设计............................................................................................................................错误!未定义书签。4.1 数据库概念设计..............................................................................................................错误!未定义书签。4.2 数据库逻辑结构设计......................................................................................................错误!未定义书签。5 详细设计................................................................................................................................错误!未定义书签。5.1 系统主窗体......................................................................................................................错误!未定义书签。5.2 数据库连接......................................................................................................................错误!未定义书签。5.3 用户登陆界面..................................................................................................................错误!未定义书签。5.4 用户功能选择..................................................................................................................错误!未定义书签。5.5 用户信息录入..................................................................................................................错误!未定义书签。5.6 查询功能窗体..................................................................................................................错误!未定义书签。5.7 数据备份和还原窗体......................................................................................................错误!未定义书签。5.8 工作日记及工作日记管理..............................................................................................错误!未定义书签。5.9 用户管理及用户密码修改..............................................................................................错误!未定义书签。
5.10 打印报表模块................................................................................................................错误!未定义书签。5.11 数据公用模块................................................................................................................错误!未定义书签。5.12 其它模块........................................................................................................................错误!未定义书签。6 总
结....................................................................................................................................错误!未定义书签。参考文献....................................................................................................................................错误!未定义书签。致谢............................................................................................................................................错误!未定义书签。
人事管理系统
网络工程
雷灵明
指导老师:曹步青
摘要:随着企业自身人力资源的日益庞大、复杂程度逐渐增强,人机作坊再也无法适应如今企业的人事管理了,取代的是运用各种领域的知识,结合计算机科学而开发的人事管理系统。人事管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的数据库。而对于后者则要求应用程序功能完备,易使用等特点。人事管理系统是对工作人员进行统一的管理,可以方便的进行录入,查询,修改,删除,退出。经过以上分析,本系统使用Delphi 7.0作为界面和功能开发工具和SQL Sever 2000作为后台数据库,利用其提供的各种面向对象的开发工具进行界面和数据库开发。软件过程结合了快速原型模型与增量模型的优点:首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成可行系统。
关键词:人事管理;DEPHI;ADO;SQL server 2000
Personnel Management System
Network engineering
Lei Lingming Teacher:Cao Buqing
Abstract: Along with their own human resources increasing, complexity growing, the man-machine workshop also is unable adapt the present enterprise’s personnel management again, but the personnel management system that make use of knowledge in different fields and computer science and technology.Personnel management system is a typical management information system(MIS), including the establishment and maintenance of the background-database and front-end application development.To the former, the request for the data which is powerful in consistency and integrity, database which is good in security.For the latter, the request for the applications program which is integrity and easy to easy, Personnel management system can manage the staff and admit input, enquiries, modify, delete, and exit.Through such analysis, the system use Delphi 7.0 as the interface and functions of development tools and take SQL Sever 2000 database as background-database, the development of the interface and database which made use of its object-oriented tools, the software process is formed which is combine the advantage of rapid prototype models and incremental model, as follows: At first application prototype of system is built in a short time, Secondly, the initial prototype system needs to be revised and improved, Finally, it is feasible that the system is built.Key words: human resource management;DEPHI;ADO;SQL server 2000
前 言
背景
在竞争越来越激烈的社会里,企业人事管理就越显示出其不可缺性,成为企业一个非常重要的模块。企业人事管理系统主要是用于员工个人相关信息的管理。使用人事管理系统,便于公司领导掌握人员的动向和人员的综合素质,及时调整人才的分配,使用计算机对人事劳资信息进行管理,具有检索迅速、查找方便、可靠性高、存储量大、保密性好、成本低等优点,能够极大地提高人事资源管理的效率,也是企业科学化、正规化管理的重要条件。目标 设计一个企业人事信息管理系统,此系统要以人为中心,为企业提供全面的人事管理解决方案; a)为企业建立规范化、实时化人事管理机制;
b)提高企业人事管理的效率、节约相关的管理成本,增强人事管理的安全性; c)满足企业管理层,人事业务操作层和全体员工的不同层次和不同方面的需要; d)对企业将来的整体信息化建设提供必要的支持。需求分析
需求分析是系统开发必要环节,也是重中之重。作为该过程的结果,需求规格说明书是对系统的功能和行为完整的描述。系统设计将来自于需求分析的抽象规格说明转变为面向真实世界的设计。一旦构建完成,该系统就会投入使用,同时会不可避免地产生更多的新需求。同时,需求过程与分析活动之间有相当程度的重叠,分析建模对于设定工作的范围和其他一些事来说是必要的,所以我们利用分析模型来描述需求过程,随着开发工作的继续,分析活动在工作中占的比例将变得越来越大,直到所有需求都已知。[1]
1.1 系统需求
企业的人事管理职能主要分为人事档案信息管理、人事变动管理、员工培训管理、奖惩管理等内容。a)在人事系统开发时应考虑以下需求: b)满足人事管理职能的基本要求;
c)进行多层次数据汇总,为各层次管理者的决策分析提供数据; d)具有完整的系统接口,满足灵活的数据导入与导出; e)对操作人员的技能要求比较低,操作方便; f)能够实现方便的扩展,满足企业发展的需要;
g)能够保障人事管理数据的安全、准确。1.1 功能需求
基于系统需求分析,该系统需要实现以下基本功能:
a)用户管理:管理系统操作人员,设置操作人员口令和权限。在满足不同系统用户的操作需求的基础上,提高系统的安全性。
b)人事档案管理:完成企业对员工个人档案(包括员工的基本档案和在职信息)的管理及相关操作。操作员进行员工档案信息录入及更改,其中包括员工的基本信息、工作经历、家庭关系、奖惩记录和培训经历,要求对这些员工档案信息进行新增、修改、删除操作,同时可以进行查询和浏览操作。该模块是本系统的重点,用户可以通过该模块为单位建立一个比较完整的人事档案系统,同时可以对档案进行查看。
c)基础数据管理:维护人事管理相关的一些基础数据。主要包括以下功能:
(a)民族档案设置:维护职工中民族档案信息;
(b)职工类型设置:维护当前企业职工与企业的关系的类别信息;(c)文化程度设置:维护企业职工的文化程度类别信息;(d)政治面貌设置:维护企业职工的政治面貌类别信息;(e)部门类别设置:维护企业中设立的部门类别信息;(f)职务类别设置:维护企业中设立的职务类别信息;
(h)职称类别设置:维护企业职工的职称类别信息;
d)人事变动管理:对于人事上的变动调整进行管理,对人员档案的信息进行更新(如:员工职务、员工职称、员工性质等的变动)。
e)工作日志管理:记录部门或系统用户的一些备忘信息,包括日常的一些事件记录,以及工作日记的管理维护。f)数据库管理:对现有的数据库进行管理,包括数据备份和恢复,以方便用户对数据库的管理和维护工作,提高系统的数据安全性。1.3 可靠性要求
a)计算机稳定可靠,网络服务和数据库服务稳定可靠;
b)网络通畅、稳定;软件运行稳定;数据计算及数据传输无误;提供数据备份和数据恢复方案。1.4 性能需求 1)硬件环境
在最低配置的情况下,系统的性能往往不尽如人意,现在的硬件性能已经相当出色,且 价格也很便宜,因此通常给服务器端配置高性能硬件。推荐配置为:
·处理器:Intel 奔腾Ⅲ 或更高 ·内存:128MB ·硬盘空间:40GB ·显卡:Geforce系列显示适配器或更高。2)软件环境
·操作系统:windows 98/ME/2000/N ·数据库:Microsoft SQL server 2000 开发环境简介
2.1 Delphi简介
Delphi这个名字源于古希腊的城市名。它集中了第三代语言的优点。以Object Pascal为基础,扩充了面向对象的能力,并且完美地结合了可视化的开发手段。Delphi自1995年3月一推出就受到了人们的关注,并在当年一举夺得了多项大奖。
Delphi的出现打破了Visual系列可视化编程领域一统天下的局面。并且Delphi使用了本地编译器直接生成技术,使程序的执行性能远远高于其它产品生成的程序。它还是真正的面向对象的编程语言。PASCAL语言的严谨加上可视化的优势和强大的数据库功能使得它有充分的资本和微软的VB叫板。许多人当时都认为Pascal 是最有前途的程序设计语言,并预测Delphi将会成为可视化编程的主流环境。
Delphi在你编好程序后自动转换成。EXE文件它运行时速度比VB快,而且编译后不需要其他的支持库就能运行。它的数据库功能也挺强的,是开发中型数据库软件理想的编程工具。Delphi适用于应用软件、数据库系统、系统软件等类型的开发。而且它拥有和VB差不多一样的功能,而且一样能应用API函数,这在控制Windows很有用。
Delphi是全新的可视化编程环境,为我们提供了一种方便、快捷的Windows应用程序开发工具。它使用了Microsoft Windows图形用户界面的许多先进特性和设计思想,采用了弹性可重复利用的完整的面向对象程序语言(Object-Oriented Language)、当今世界上最快的编辑器、最为领先的数据库技术。对于广大的程序开发人员来讲,使用Delphi开发应用软件,无疑会大大地提高编程效率,而且随着应用的深入,您将会发现编程不再是枯燥无味的工作——Delphi的每一个设计细节,都将带给您一份欣喜。
Delphi实际上是Pascal语言的一种版本,但它与传统的Pascal语言有天壤之别。一个Delphi程序首先是应用程序框架,而这一框架正是应用程序的“骨架”。在骨架上即使没有附着任何东西,仍可以严格地按照设计运行。您的工作只是在“骨架”中加入您的程序。缺省的应用程序是一个空白的窗体(Form),您可以运行它,结果得到一个空白的窗口。这个窗口具有Windows窗口的全部性质:可以被放大缩小、移动、最大最小化等,但您却没有编写一行程序。因此,可以说应用程序框架通过提供所有应用程序共有的东西,为用户应用程序的开发打下了良好的基础。
Delphi已经为您做好了一切基础工作——程序框架就是一个已经完成的可运行应用程序,只是不处理任何事情。您所需要做的,只是在程序中加入完成您所需功能的代码而已。在空白窗口的背后,应用程序的框架正在等待用户的输入。由于您并未告诉它接收到用户输入后作何反应,窗口除了响应所有Windows的基本操作(移动、缩放等)外,它只是接受用户的输入,然后再忽略。Delphi把Windows编程的回调、句柄处理等繁复过程都放在一个不可见的Romulam覆盖物下面,这样您可以不为它们所困扰,轻松从容地对可视部件进行编程。
面向对象的程序设计(Object-Oriented Programming,简记为OOP)是Delphi诞生的基础。OOP立意于创建软件重用代码,具备更好地模拟现实世界环境的能力,这使它被公认为是自上而下编程的优胜者。它通过给程序中加入扩展语句,把函数“封装”进Windows编程所必需的“对象”中。面向对象的编程语言使得复杂的工作条理清晰、编写容易。
说它是一场革命,不是对对象本身而言,而是对它们处理工作的能力而言。对象并不与传统程序设计和编程方法兼
其中多媒体音频视频播放器是通过TMediaPlayer组件来实现的,支持的格式与系统已安装的解码器有关。总
结
6.1 程序设计风格
在设计的时候采用了增量模型的思想:把软件作为一系列的构件来设计,编码,集成和测试。用户管理,密码修改,用户登陆,万年历,这些模块都有高度的独立性,因此他们的可重用性比较高,基本上是一个单元完成一个功能,模块规模也比较小,模块的作用域在控制域之内,只使用了两个全局变量来存储用户名和用户权限。[1]
在人机界面设计方面,本系统做到了以下几点: a)保持一致性(界面,背景的致性);
b)提供有意义的反馈(用户验证和用户管理,提供了比较精确的反馈信息); c)在执行有较大破坏性的动作之前要求用户确认(数据备份与还原); d)允许大多数取消操作(大多数单元有取消操作功能);
e)允许犯错误(由于权限的限制,系统能保护自己不受严重错误的破坏); f)按功能对动作分类(在主窗口就是按动作类型组织菜单的); 6.2 有待加强项
a)帮助的制作 一个完整的应用程序必须具有完整的帮助系统;帮助系统可以在必要的时候给用户信息提示和一些系统相关服务。
b)声音制作 在这里主要是对声音的加载,我们可以加载一些一般的声音;主要来源有:音频CD盘;波形音频文件;MP3文件等等。其中波形音频文件以WAV作为文件的后缀,我们可以播放现成的,也可以播放自己录制的文件。
c)我们还可以使用各种组件和ActiveX控件等技术来完善系统。利用一些做好的activeX组件,会缩短开发周期。
由于在开发工程方面缺少经验,所以这个系统还存在着许多不足之处,在测试过程中总结如下: a)数据表的设计还不是很合理;
b)数据异常处理要更加人性化,错误信息的反馈要更加精确; 6.3 心得
经过一个月的设计和开发,人事管理系统基本开发完毕,其基本功能符合用户需求,能够完成基础数据录入,数据查询等基本功能,以及相关报表的打印。
在这次毕业设计中,我获益良多。首先我明白了需求分析对于一个系统的开发的重要性。其次我还学到了如何把一个软件作为一个工程来做,在真正的软件开发中,一个软件系统的开发不是一个人来做,而是很多人合作来完成的,另外还有软件的后期维护等等,这时就显现出了把软件作为一个工程来做的优越性,而这些都离不开数据流图和模块的分解。
Delphi是一个非常强大的开发工具,它具有运行速度快、易于学习和使用以及开发效率高的特点,使用起来真的是很顺手。学习好一门编程语言以后可以为今后的学习和工作带来很大的便利。
虽然本系统实现了基本的用户需求功能,但是还有待于完善和加强,总之通过这次设计和开发过程,我对软件开发有了进一步的了解。
参考文献
[1] 张海藩编著.软件工程导论[M].清华大学出版社出版,2003,1-173.
[2] 宋一兵,赵景波,李春艳著.Delphi 7.0基础教程[M].机械工业出版社,2003,2-30. [3] 刘瑶儒著.新概念SQL Server2000教程[M].北京科海集团公司出,2001,12-23. [4] 韩强编著.SQL SERVER 2000 程序员手册[M].机械工业出版社出版,2000,4-35. [5] 萨师煊著.数据库系统概论(第二版)[M].高等教育出版社,1991,8-40. [6] 施伯乐,丁宝康,汪卫著.数据库系统教程[M].高等教育出版社,2002,1-202.
[7] 肖健著.SQL Server2000实践与提高[M].中国电子出版社,2002,13-53. [8] 林金霖著.Delphi6 实务经典[M].中国铁道出版社,2002年5月,6-110.
[9] 黄超,王志伟著.Delphi企业经营管理系统开发实例导航[M].人民邮电出版社,2003,20-90. [10] 程文刚主编.Delphi数据库实用编程100例[M].中国铁道出版社,2004,8-63. [11] 王晟,万科著.Delphi数据库开发经典案例解析[M].清华大学出版社,2005,85-89. [12] 王惠刚,唐晨光 彭为著.delphi7/8程序设计[M].清华大学出版社, 2002,42-63.
[13] 潇湘工作室,邢增平著.Delphi 6.0最佳专辑[M].人民邮电出版社,2003,1-404. [14] 心铃.Delphi问答.软件报[N],2004-07-5.
[15] 高永惠.浅谈Delphi中的异常处理方法[J].湖南轻工业高等专科学校学报,2002-04,9-10.
[16] 徐萌飞.在Delphi中使用ADO技术对数据库操作[J].中国学术期刊(光盘版)电子杂志社,2001,12-13. [17] 陈建兵.Delphi中基于安全灵活的动态连接远程数据库SQL的实现[J].福建电脑,2005,12-13. [18] 孙育红.关于地方法院管理信息系统分析设计与实施[D].中国学术期刊电子杂志社,2001,8-9.
[19] 岳冰.南部引嫩工程信息管理系统开发[D].中国学术期刊电子杂志社,2003,20-21.
[20] 庞芳,王丽玫.南宁市自动气象站业务服务数据库系统[D].中国学术期刊电子杂志社,2004,21-23.
[21] 徐军.研究生院综合管理信息系统的研究与实现[D].中国学术期刊)电子杂志社,2004,32-33.
[22] 鲁媛媛.硕士生导师综合素质能力评价指标体系的研究[D].中国学术期刊电子杂志社,2005,18-19.
致谢
在这里我要我对给予我指导和帮助的曹步青老师以及在测试阶段提供机器和意见的同学表示我诚至的谢意。曹老师认真负责的工作态度,严谨的治学精神使我受益匪浅。无论在理论和实践中,都给了我很大的帮助,使我综合素质提高不少,这对于我以后的学习和工作都有一种很大的帮助。
暨毕业论文答辩之际,我要忠心感谢湖南科技大学和计算机科学与工程学院的各位老师大学四年来对我的辛勤培养和悉心教育,是科大提供了学习机会,是各位老师传授了我专业知识和做人的道理。
最后,再一次感谢我的恩师!感谢我的母校!祝各位老师身体健康,工作顺心!愿我校的教育事业蓬勃发展!
参考文献
[23] 张海藩编著.软件工程导论[M].清华大学出版社出版,2003,1-173.
[24] 宋一兵,赵景波,李春艳著.Delphi 7.0基础教程[M].机械工业出版社,2003,2-30. [25] 刘瑶儒著.新概念SQL Server2000教程[M].北京科海集团公司出,2001,12-23. [26] 韩强编著.SQL SERVER 2000 程序员手册[M].机械工业出版社出版,2000,4-35. [27] 萨师煊著.数据库系统概论(第二版)[M].高等教育出版社,1991,8-40. [28] 施伯乐,丁宝康,汪卫著.数据库系统教程[M].高等教育出版社,2002,1-202.
[29] 肖健著.SQL Server2000实践与提高[M].中国电子出版社,2002,13-53. [30] 林金霖著.Delphi6 实务经典[M].中国铁道出版社,2002年5月,6-110.
[31] 黄超,王志伟著.Delphi企业经营管理系统开发实例导航[M].人民邮电出版社,2003,20-90. [32] 程文刚主编.Delphi数据库实用编程100例[M].中国铁道出版社,2004,8-63. [33] 王晟,万科著.Delphi数据库开发经典案例解析[M].清华大学出版社,2005,85-89. [34] 王惠刚,唐晨光 彭为著.delphi7/8程序设计[M].清华大学出版社, 2002,42-63.
[35] 潇湘工作室,邢增平著.Delphi 6.0最佳专辑[M].人民邮电出版社,2003,1-404. [36] 心铃.Delphi问答.软件报[N],2004-07-5.
[37] 高永惠.浅谈Delphi中的异常处理方法[J].湖南轻工业高等专科学校学报,2002-04,9-10.
[38] 徐萌飞.在Delphi中使用ADO技术对数据库操作[J].中国学术期刊(光盘版)电子杂志社,2001,12-13. [39] 陈建兵.Delphi中基于安全灵活的动态连接远程数据库SQL的实现[J].福建电脑,2005,12-13. [40] 孙育红.关于地方法院管理信息系统分析设计与实施[D].中国学术期刊电子杂志社,2001,8-9. [41] 岳冰.南部引嫩工程信息管理系统开发[D].中国学术期刊电子杂志社,2003,20-21.
[42] 庞芳,王丽玫.南宁市自动气象站业务服务数据库系统[D].中国学术期刊电子杂志社,2004,21-23.
[43] 徐军.研究生院综合管理信息系统的研究与实现[D].中国学术期刊)电子杂志社,2004,32-33.
[44] 鲁媛媛.硕士生导师综合素质能力评价指标体系的研究[D].中国学术期刊电子杂志社,2005,18-19.
致谢
在这里我要我对给予我指导和帮助的曹步青老师以及在测试阶段提供机器和意见的同学表示我诚至的谢意。曹老师认真负责的工作态度,严谨的治学精神使我受益匪浅。无论在理论和实践中,都给了我很大的帮助,使我综合素质提高不少,这对于我以后的学习和工作都有一种很大的帮助。
暨毕业论文答辩之际,我要忠心感谢湖南科技大学和计算机科学与工程学院的各位老师大学四年来对我的辛勤培养和悉心教育,是科大提供了学习机会,是各位老师传授了我专业知识和做人的道理。
最后,再一次感谢我的恩师!感谢我的母校!祝各位老师身体健康,工作顺心!愿我校的教育事业蓬勃发展!
第四篇:企业人事管理系统
基于.NET的企业人事管理系统
摘要
随着计算机应用的普及,推动企业计算机管理现代化的时机已经到来,采取信息化管理是企业在新经济时代的必然趋势,也是企业管理者的迫切需求。企业人事管理系统作为信息管理系统(MIS)的一种,是人力资源管理的重要环节,也是企业管理的科学化、正规化的重要条件。人事管理系统是一个企业不可缺少的部分,它的内容对于企业的决策者和管理者来说都至关重要,所以人事管理系统应该能够为用户提供充足的信息和快捷的查询手段。人事管理系统的主要任务就是使用计算机,对所有公司成员的人事档案资料进行保存;在需要时进行查找、分类、统计或者增加、修改和删除等操作;可以针对不同的目的,对各种档案资料进行查询。本文介绍了人事系统的开发背景及开发过程,重点说明了系统的设计思想、关键技术和解决方案。此系统采用近年来发展最快的计算机语言-Visual C#和SQL Server 2005数据库作开发工具,同时使用B/S系统结构。【关键字】 人事管理系统 人事管理 信息管理系统
ABSTRACT With the popularization of computer application, it’s time to promote the modernization of the computer management for an enterprise and it’s inevitable especially in the new economic society, also, the business managers cry for it.As a kind of the MIS, the personnel management system is the important part of the effective Human resource management and it’s an essential condition for an enterprise management to be scientific and regular.The personnel management system is an indispensable part for modern enterprise, its contents are both vital for the executive and the manager, therefore ,it should provide sufficient information and quick inquiry methods.Its main tasks are using computer to save the personnel documents of the employees;If needed, you can do searching、classifying、counting、or adding、modifying and deleting information in this system;besides, you can do various queries of the document materials for different purposes.This treatise introduces the background of development for the problem and the process for development.It also explains the emphasis on system design, the design thought, the key technology and its solution.The system uses visual c# and SQL Server 2005 DataBase which is developing fast in recent years as its developing tool and the B/S system fabric.【key words】 personnel management system personnel management MIS
目录
第1章 引言……………………………………………………………………………………………………… 1 1.1 选题背景……………………………………………………………………………………………………..1 1.2 编写目的………………………………………………………………………………………………………1 1.2.1 人事管理的概念…………………………………………………………………………………………1 1.2.2 人事管理的要点…………………………………………………………………………………………2 1.2.3 管理信息系统功能特点……………………………………………………………………………….2 1.3 人事系统的目标 ………………………………………………………………………………………….2 1.4 术语说明 ………………………………………………………………………………………………..3 第2章 系统开发可行性分析………………………………………………………………………………..4 2.1 可行性 ……………………………………………………………………………………………………….4 2.1.1 技术可行性………………………………………………………………………………………………..4 2.1.2 经济可行性………………………………………………………………………………………………..4 2.1.3 管理可行性…………………………………………………………………………………………………4 2.1.4 开发环境可行性………………………………………………………………………………………….4 2.2 开发工具Visual Studio 2005介绍………………………………………………………………..5 2.3 SQL语言简介………………………………………………………………………………………………..8 2.4 系统安全性分析……………………………………………………………………………………………..9 2.4.1 ASP.NET的安全性结构 ………………………………………………………………………………9 2.4.2 ASP.NET身份验证 …………………………………………………………………………………..10 2.4.3 ASP.ENT的安全数据流 …………………………………………………………………………….11 第3章 系统功能分析………………………………………………………………………………………….13 3.1 功能需求………………………………………………………………………………………………………13 3.1.1 本系统功能模块示意图……………………………………………………………………………….13 3.1.2 系统流程图……………………………………………………………………………………………….14 3.2 系统设置管理模块…………………………………………………………………………………………15 3.3 员工档案管理模块…………………………………………………………………………………………15 3.4 员工考勤管理模块…………………………………………………………………………………………16 3.5 员工评价管理模块…………………………………………………………………………………………16 3.6 员工调动管理模块…………………………………………………………………………………………17 3.7 员工工资管理模块…………………………………………………………………………………………17 3.8 新闻模块(额外附加功能)……………………………………………………………………………….18 3.9 数据模型分析……………………………………………………………………………………………….18 3.10 数据库系统的模式结构分析………………………………………………………………………….19 3.11 数据库系统的体系结构分析………………………………………………………………………….20 3.12 数据库管理系统分析 …………………………………………………………………………………..20 3.13 数据表设计…………………………………………………………………………………………………21 3.14 数据表之间关系………………………………………………………………………………………….25 3.14.1 主要表之间的关系 如表3-11…………………………………………………………………..25 3.14.2 系统表之间的关系 如表3-12……………………………………………………………………26 第4章 系统详细设计………………………………………………………………………………………… 27 4.1 程序流程图(如图4-1)…………………………………………………………………………………..27 4.2 系统设计方法……………………………………………………………………………………………….28 4.2.1 设计方法………………………………………………………………………………………………….28 4.2.2 系统功能目录表…………………………………………………………………………………………29 4.3 系统设置管理模块…………………………………………………………………………………………30 4.3.1 系统登陆界面…………………………………………………………………………………………….30 4.3.2 添加管理人员…………………………………………………………………………………………….31 4.3.3 角色管理……………………………………………………………………………………………………33 4.3.4 权限管理……………………………………………………………………………………………………33 4.4 员工档案管理模块………………………………………………………………………………………… 34 4.5 员工考勤管理模块………………………………………………………………………………………… 37 4.5.1 添加考勤信息…………………………………………………………………………………………… 37 4.5.2 更新考勤信息…………………………………………………………………………………………….37 4.5.3 删除考勤信息…………………………………………………………………………………………….38 4.5.4 查询考勤信息…………………………………………………………………………………………….39 4.5.5 考勤信息报表…………………………………………………………………………………………….40 4.6 员工工资管理模块…………………………………………………………………………………………40 4.6.1 计发员工工资…………………………………………………………………………………………….40 4.6.2 修改员工工资…………………………………………………………………………………………….41 4.6.3 查询员工工资…………………………………………………………………………………………….42 4.6.4 员工工资报表…………………………………………………………………………………………….42 4.7 员工调动管理模块………………………………………………………………………………………… 43 4.8 员工评价管理模块…………………………………………………………………………………………45 4.9 公司新闻/公告管理模块…………………………………………………………………………………47 第5章 系统运行/测试说明………………………………………………………………………………….50 5.1 运行环境………………………………………………………………………………………………………50 5.2 系统使用说明……………………………………………………………………………………………….50 5.3 系统测试分析……………………………………………………………………………………………….52 5.3.1 单元测试…………………………………………………………………………………………………..52 5.3.2 组合测试…………………………………………………………………………………………………..52 5.3.3 确认测试…………………………………………………………………………………………………..53 5.3.4 系统测试…………………………………………………………………………………………………..53 5.3.5 用户验收测试…………………………………………………………………………………………….53 5.4 测试方法………………………………………………………………………………………………………53 结束语………………………………………………………………………………………………………………..55 参考文献……………………………………………………………………………………………………………..56 致谢……………………………………………………………………………………………………………………57 附录…………………………………………………………………………………………………………………..58 附录一:实现角色管理部分代码…………………………………………………………………………….58 附录二:实现权限管理部分代码………………………………………………………………………………62 外文资料原文……………………………………………………………………………………………………….65 翻译文稿……………………………………………………………………………………………………………..67
第1章引言
1.1 选题背景
在商业竞争日趋激烈的今天,企业人事管理是企业管理中的一个重要内容,随着时代的进步,企业也逐渐变得庞大起来。如何管理好企业内部员工的信息,成为企业管理中的一个大问题。在这种情况下,开发一个企业人事管理系统就显得非常必要。人力资源是企业所有资源中最活跃与最昂贵的资源,如何让更多的员工以积极主动的态度参与公司的运作,最大限度的发挥企业人力资源的效用是每一个管理者关心的问题。“企业人事管理信息系统”完全按照“以人为本”的设计要求,以综合利用信息资源,调动管理人员积极性、综合智慧和创造性为目的,将人事管理所涉及的各类业务按照其内在的联系组织成一个有机整体。透过信息化方式取代传统人工作业,帮助人事单位化繁为简,快速有效的处理奖惩考核、训练发展、任用迁调等各项人事作业,大幅提升人事单位的工作效率,使其作业控管事半功倍,使企业达到「事得其人,人尽其才」的目标,创造企业竞争力,让管理者轻松的体味人力资源管理的新观念。
1.2 编写目的
人事管理是公司企业内部很重要的一个管理事项,但目前大多内部劳资人事的管理,基本上是手工操作或是基于dos下的应用,这样对信息的管理者有诸多不便,有的虽然是用foxpro、visual foxpro开发,但由于开发工具本身的限制,对网络功能的支持程度不是很强,为以后软件升级到互联网带来了麻烦。因此有必要开发一个基于网络的劳资人事管理系统,能在网络环境下实现数据的录入、插入、删除、查询、统计、更新等功能
1.2.1 人事管理的概念
所谓人事管理,是指以从事社会劳动的人和有关的事的相互关系为对象,通过组织、协调、控制、监督等手段,谋求人与事以及共事人之间的相互适应,实现充分发挥人的潜能,把事情做得更好这一目标所进行的管理活动。
1.2.2 人事管理的要点 人事管理并不直接管理社会劳动过程,也不是简单地对人或事进行管理,而是对社会劳动过程中人与事之间的相互关系进行管理。人事管理的职能是谋求社会劳动过程中人与事相互适应,做到事得其人,人尽其才。
1.2.3 管理信息系统功能特点
1.用性好,信息标准化
人事信息系统标准将人员不同类别的信息分成人员基本信息和子集信息,使信息的存放规范,从而提高了系统的整体效率。人员的基本信息是描述人员情况的最基本的信息,这类信息对于每个人来说是唯一的,如出生日期、姓名、性别等。
2.灵活、快速的检索查询。
对人员、单位信息可以按多种条件组合查询,并且支持区间查询和模糊查询。用户可根据需要设置查询条件(可以根据一个或多个条件进行单一或复合查询,支持区间、模糊、二次查询),经过对登录用户的权限进行校验,将满足查询条件且在用户可查询范围内的人员信息输出。
3.图文并茂的用户界面。
日常的人员信息登记,包括人员的属性信息和照片信息等多种手段。在查询人员信息数据的同时,可以查看人员照片。在统计报表生成的同时,可以查看数据分析图,直观形象 4.方便的制作报表,采用微软的水晶报表模式来对数据进行显示和提供数据的查询,方便管理者对数据的管理和审核 5.强大的后台管理操作
采系统对超级管理员和管理员的设置方便易用,设置和取消其管理员的权限操作简单,可以随时查看和更改管理员的信息
1.3 人事系统的目标
企业人事信息系统的目标是:按照建立管理信息系统的原理和方法,采用成熟的计算机信息技术和手段,支持企业人事管理工作的全过程,加强企业职工的各种信息资源的管理和应用,提高企业人事管理的现代化水平,优化人、才、物和信息资源的结构,在为企业日常业务提供全面信息服务的基础上,提供管理决策支持功能。
人事管理信息系统的使用者只要求具备一定的计算机能力,所以要求系统具备良好的操作性,那么,采用模块化设计,使之能便捷的移除(增添),方便用户及客户使用。这是系统必须完成的任务。
1.4 术语说明
OA,办公自动化
Personnel Administ ration或Personnel Management,人事管理 MIS(Management Information System),管理信息系统 Transaction processing,事务处理
Data processing cycle,数据处理流程 Data acquisition,数据采集
Data processing,数据处理asata processing system security,数据处理系统安全性 EDP(Electronic Data Processing),电子数据处理
CIIS(Computer Integrated Information System),综合信息系统 DSS(Decision Support System),决策支持系统 Internet/Intranet,因特网
第2章系统开发可行性分析
2.1 可行性
2.1.1 技术可行性
随着国内软件开发的日益发展壮大,各种中小企事业单位已具备独立开发各种类型的软件的能力,能够满足不同行业的特别的需求。而这个系统尽管其在组织关系上存在着很大的复杂性,繁琐性,但是就整个系统的技术构成上来看,它还是属于一个数据库应用类的系统。其基本操作还是对存在数据库进行添加、删除、查找、编辑等。所以就单纯的数据库应用来看,暂不存在太大的技术问题。
2.1.2 经济可行性
对于整个系统而言,在系统未运行之前,初期投资比较大,花费相对而言比较多。各部门必须配置电脑、服务器、打印机、传真机及相关的网络设备,但是在整个系统投入运行之后,因为现在计算机已经普及了,相关的人员培训费可以减少很多。而同时又减少了数据的流通环节,不必要花费那么多的时间,也就是说最重要的是就是提高了效率,而又保证了各项数据的准确性,也避免了工作人员的流动造成的收据丢失等问题,适应了当前的发展形式。
2.1.3 管理可行性
随着时代的发展,人员素质己逐步提高,不论是对于电脑系统的基本操作还是对于系统的维护都有了一定的基础。同时还可以配置专业的电脑维护人员来维护电脑,不必担心电脑故障问题。
2.1.4 开发环境可行性
我们采用Visual Studio 2005开发工具。它首先是一个开放的协作式系统之外,可以和多种PC产品集成,并可以通过专用接口或ODBC接口连接许多比较常用的数据库。其次它具有可视化的开发环境,使代码的编写更为直观,并且在可视化环境下的调试和维护也相对容易。再次它随身携带的Sybase SQL Anywhere本身就是个功能强大的DBMS,对小型应用来说,直接使用这个数据库就是个质优价廉的选择。而为方便用户界面的开发,Visual Studio 2005提供了大量控件,这既丰富了应用程序的表达能力,也加快了项目的开发速度。同时,它拥有多平台的开发环境,如果要把一个平台上开发的代码移植到另外一个平台上,只要重新编译就可以了。
图1-1 程序流程示意图
1.1 系统测试分析
在企业人事管理系统开发过程中采用了多种措施保证软件质量,但是实际开发过程中还是不可避免地会产生差错,系统中通常可能隐藏着错误和缺陷,示经周密测试的系统投入运行,将会造成难以想像的后果,因此系统测试是企业人事管理系统开发过程中为保证软件质量必须进行的工作。大量统计资料表明,系统测试的工作量往往占系统开发总工作量的40%以上。所以,我们必须重视测试工作。
由于程序中隐藏的缺陷只在特定的环境下才有可靠显露,系统缺陷通常是由于对某些特定情况考虑不周造成的。因此测试不是为了表明程序正确;成功的测试也不是没有发现错误的测试。有意义的软件测试应该是从“破坏”软件系统的角度出发,精心设计最有可以暴露程序系统缺陷的测试方案。因此软件测试的目标应该是以尽可能少的代价和时间找出软件系统中潜在的错误和缺陷。
从产品角度看,测试计划中的测试项目包括软件结构中的分系统层、子系统层、功能模块层、程序模块层中的各类模块,从测试本身看,分为单元测试,组合测试,确认测试等。测试对象是随阶段而异的,最基本、最初的测试是单元测试,后面的组合测试、确认测试都是以被测过的模块作为测试对象的。1.1.1 单元测试
单元测试也称模块测试或程序测试,单元测试是对每个模块单独进行的,验证模块接口与设计说明书是否一致,对模块的所有主要处理路径进行测试且与预期的结构进行对照,还要对所有错误处理路径进行测试。对源码进行审查,对照设计说明书,表态地检查源程序是否符合功能的逻辑要求,是进行单元测试前的重要工作工。单元测试一般是由程序员完成,也称程序调试。1.1.2 组合测试
组合测试也称集成测试或子系统测试,通常采用自顶向下测试和自底向上测试两种测试方法。组合测试的对象是指已经通过单元测试的模块,不是对零散模块进行单个测试,而是用系统化的方法装配和测试软件系统,是一个严格的过程,必须认真地进行,其计划的产生和单元模块测试的完成日期要协调起来,这种测试应在系统目标机上进行,造成系统应用的环境条件,除了开发部分项目负责人参加以外,还应该有相应系统的用户参加,给评审员进行演示。1.1.3 确认测试 确认测试是对通过组合测试的软件进行的,这些软件已经存于系统目标设备的介质上,确认测试的目的是对表明软件是可以工作的,并且符合“软件需求说明书”中规定的全部功能和性能要求。确认测试是按照这些要求定出的“确认测试计划”进行的。测试工作是由一个独立的组织进行,而且测试要从用户的角度出发。
1.1.4 系统测试
系统测试是对整体性能的测试,主要解决各子系统之间的数据通信和数据共享问题以及检测系统不否达到用户的实际要求,系统测试的依据是系统分析报告。系统测试应在系统的整个范围内进行,这种测试不只对软件进行,而是对构成系统的硬、软件一起进行。系统测试与建构同时进行或略慢。系统测试需要确认从头到尾的功能正常才算完成,应当尽量避免系统测试延到项目末尾进行。1.1.5 用户验收测试
在系统测试完成后,进行用户的验收测试,它是用户在实际应用环境中所进行的真实数据测试。
在具体的测试中,一般应遵循以下原则:由程序设计者之外的人进行测试;测试用例应由两部分组成:输入数据和预期输出结果;应选用不合理的输入数据与非法输入测试;不仅要检验程序是否实现预期功能,还应检查程序是否做了不应该做的工作;集中测试容易出错的程序模块;对程序修改以后,必须重新进行测试。
1.2 测试方法
一般来说,对程序测试有两种测试方法:如果已经知道了软件系统应具有的功能,可通过测试来难每个功能是否都能正常使用;如果知道程序的内部工作过程,可以通过测试来检测程序内部是否按照规格说明书的规定正常进行。前一种方法称为黑盒测试,后一种方法称为白盒测试。黑盒测试又称为功能测试,白盒测试又称为结构测试。
结束语 经过了两个多月的学习和工作,我终于完成了《企业人事管理系统的设计与实现》的论文。从开始接到论文题目到系统的实现,再到论文文章的完成,每走一步对我来说都是新的尝试与挑战,这也是我在大学期间独立完成的最大的项目。在这段时间里,我学到了很多知识也有很多感受,从对企业管理一无所知,对ASP.NET,ADO.NET等相关技术很不了解的状态,我开始了独立的学习和试验,查看相关的资料和书籍,让自己头脑中模糊的概念逐渐清晰,使自己非常稚嫩作品一步步完善起来,每一次改进都是我学习的收获,每一次试验的成功都会让我兴奋好一段时间。从中我也充分认识到了企业人事管理系统给企业带来的莫大的便利,节省了不少的人力和物力.虽然我的论文作品不是很成熟,还有很多不足之处,但我可以自豪的说,这里面的每一段代码,都有我的劳动。当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最终都会化为甜美的甘泉。
这次做论文的经历也会使我终身受益,我感受到做论文是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破,那也就不叫论文了。希望这次的经历能让我在以后学习中激励我继续进步。
本论文是在指导老师李坤栩教授的指导下完成的。在论文编写研究的过程中,李坤栩老师给予了指导,并提供了很多与该研究相关的重要信息,培养了我们对科学研究的严谨态度和创新精神。这将非常有利于我们今后的学习和工作。在此表示衷心的感谢!
本次实验还得到了课题组的各位老师的大力协助,在此一并表示我的感谢!
参考文献
[1] C.J.Date , 《Database system implementation》,机械工业出版社, 2000 [2] Hector Garcial-Molina , Jeffrey D.Ullman, Jennifer Widom,《An introduction to Database Systems(Seventh Edition), 机械工业出版社,2001 [3] 《C#数据库编程》 北京,电子工业出版社 2003
[4] 《ASP.NET AJAX经典范例168》 北京:机械工业出版社 [5] 《ASP.ENT 2.0 +SQL Server 网络应用系统开发案例精解》北京:清华大学出版社
[6] 《ASP.NET数据库管理系统开发实例导航北京》人民邮电出版社, 2005 [7] 《数据库程序设计 SQL Server 2000 数据库程序设计》.北京:高等教育出版社微软公司
[8] 《C# 程序设计语言, 北京 高等教育出版社》 2006,123~67 [9] 张立科,《数据库开发技术与工程实践》,人民邮电出版社,2004 [10] 张红军, 王虹 等 《C#数据库编程》, 电子工业出版社, 2002
[11] 伍俊良 主编 等 《VB课程设计与系统开发案例》清华大学出版社, 2002 [12] 姚巍,《Visual Basic数据库开发及工程实例》,人民邮电出版社 [13] 孟小峰,王珊,《数据库系统导论》,机械工业出版社,2000
[14] Frank Buschmann, Regin Meunier, Hans Rohnert et al.Pattern-Oriented Software Architecture[M].New York: John Wiley & Sons Ltd, 1996.[15] 孙昌爱,金茂忠,刘超.《软件体系结构研究综述》.软件学报[J],2002 [16] Daniel F.Zucker | Zookware, LLC《What Does Ajax Mean for You?》
致谢
本文是在XXX教授精心指导和大力支持下完成的。XXX教授以其严谨求实的治学态度、高度的敬业精神、兢兢业业、孜孜以求的工作作风和大胆创新的进取精神对我产生重要影响。他渊博的知识、开阔的视野和敏锐的思维给了我深深的启迪。同时,在此次毕业设计过程中我也学到了许多了关于企业管理方面的知识,技术有了很大的提高。
另外,我还要特别感谢师姐对我实验以及论文写作的指导,她为我完成这篇论文提供了巨大的帮助。还要感谢,杨永光,胡开论,卢布和黄堰缨同学对我的无私帮助,使我得以顺利完成论文。
最后,再次对关心、帮助我的老师和同学表示衷心地感谢
第五篇:企业人事管理系统
摘 要
人事管理系统是一个企业单位不可缺少的部分,它的内容对于企业的决策者和管理者来说都至关重要,所以人事管理系统应该能够为用户提供充足的信息和快捷的查询手段。使其企业人事管理初步实行计算机化,让计算机在人事管理中得到初步应用。使人事管理者总是根据准确、及时的人事信息来进行决策,实现管理为有效改进现有的企业人事管理模式,提高企业对职工信息、考核、奖惩、调动等基本信息管理的效率,开发了该企业人事管理系统。该系统可通过运用两个用户进入登录,之后对表进行了设计,可对表内的信息进行插入、修改、删除等操作,而使用触发器就可明白对该表或视图进行了什么操作。可使用视图进行多表查询,使用表间联系,选择所需列可快速查询信息,方便了表的使用,还可使用存储过程输入参数查询,因此也提高了该系统应用的灵活性。
关键字:企业人事管理,SQL Server 2005,系统,开发
目 录 企业人事管理系统开发基础..........................................1 1.1 SQL Server 2005 的介绍........................................1 1.2 系统开发背景及现状............................................1 1.3 需求分析......................................................1 1.3.1 需求调查..................................................1 1.3.2 流程图....................................................2 2 数据库设计........................................................2 2.1E-R图.........................................................3 2.2 表的设计......................................................3 2.2.1 员工信息表................................................4 2.2.2 部门信息表................................................5 2.2.3 调动信息表................................................6 2.2.4 奖惩表....................................................7 2.2.5 考勤信息表................................................7 2.2.6 学历分布表................................................8 2.2.7 政治面貌代码表............................................9 2.2.8关系图....................................................9 2.3创建视图.....................................................10 2.3.1 本科人员表...............................................10 2.3.2 加班人员名单.............................................11 2.3.3 人员调动情况.............................................12 2.3.4 受奖人员.................................................13 2.3.5 硕士已婚人员.............................................14 2.3.6 销售部人员表.............................................15 2.3.7 员工表...................................................16 2.4 存储过程.....................................................17 2.4.1部门人员表...............................................18 2.4.2 婚姻学历表(加密).........................................20 2.4.3 加班次数.................................................22
2.4.4 奖惩类别表...............................................23 2.4.5 学历表...................................................24 2.5触发器及对信息的操作.........................................25 2.5.1 触发器“添加”及添加信息.................................25 2.5.2 触发器”修改”及修改信息.................................27 2.5.3 触发器”删除”及删除信息.................................28 2.6 权限.........................................................28 2.6.1 管理用户者权限...........................................29 2.6.2用户者权限...............................................31 3总结.............................................................34 4 致谢.............................................................34 5 参考文献.........................................................35
企业人事管理系统 企业人事管理系统开发基础
1.1 SQL Server 2005 的介绍
SQL Server 2005将引进一个专门的管理员连接,即使在一个服务器被锁住,或者因为其他原因不能使用的时候,管员可以通过这个连接,接通这个正在运行的服务器。这一功能将能让管理员,通过操作诊断功能、或Transact—SQL指令,找到并解决发现的问题。
SQL SERVER 2005将支持丰富的全文应用软件。服务器的编目功能将得到增强,对编目的对象提供更大的灵活性。查询性能和可升级性将大幅得到改进,同时新的管理工具将为有关全文功能的运行,提供更深入的了解。
1.2 系统开发背景及现状
在企业中,人事管理工作是非常重要的一项工作,它负责整个企业的日常人事安排,人员的人事管理等。以前都是人工进行操作。随着企业规模的扩大,人事管理的工作量也大大地加重。随着计算机应用的发展,人事工作者急切希望能够将大部分烦琐的工作交给计算机处理,以减轻人工的压力并提高工作效率。而计算机的普及加快人事管理系统的产生。
人事管理的主要任务是为实现企业的整体目标提供合适可用的人才,这就要求人事部门进一步加大人事制度改革的力度,建立好人才档案,为企业选拔贤能创造一个良好的工作环境,使员工用其所长、人尽其才;关心和改善员工的生活条件,使员工无后顾之忧,充分发挥自己的内在潜力。
企业人事管理的根本目的就是通过使用人才去达到最大利益。企业人事管理工作的好坏对企业的发展有较大的影响,企业对人事管理都较为重视。通过互联网查询的资料来看,国内目前类似的系统大多是针对企业员工管理,而对企业引进人才方面以及与员工交流平台方面所做的工作不多。
1.3 需求分析
1.3.1 需求调查
人事管理是企业管理的一个重要内容。随着时代的进步,企业也逐渐变的庞大起来。如何管理好企业内部员工的信息,成为企业管理中的一个重要问题。在企业人事管理系统
这种情况下,一个可以规范化,自动化的企业人事管理系统就显的非常重要。
最初的人事管理,都是靠人力来完成。当企业规模比较小的时候,人力可以完成。随着企业规模越来越大,企业员工的人数越来越多,依然维持着人力进行管理必然会造成工作效率底,工作错误增高等问题。
人事管理系统就是把分散的企业单位的职工信息实行统一,集中,规范的收集管理。建立分类编号管理,电脑存贮查询、增加、修改、删除等现代化,专业化的管理系统。为企事业单位和职工解除后顾之忧。1.3.2 流程图
图1-1 流程图 数据库设计
数据库设计是数据库应用系统开发的关键环节,保证数据完整性,企业人事管理系统面向的对象是企业内部的各部门,提高人事管理的效率,也是企业的科学化、正规化管理与世界接轨的重要条件。
企业人事管理系统
2.1E-R图
E-R图也叫实体-联系图(Entity Relationship Diagram),它可以提供能够表示出实体类型、属性和联系的方法,用来描述现实世界的概念模型。构成E-R的基本要素主要有:
(1)实体型:在E-R图中用矩形来表示实体型,在矩形框内写明实体的名称。比如员工李
四、学生张三都是实体。
(2)属性:在E-R图中用椭圆来表示属性,并用无向边将其与相应的实体连接起来。比如员工的姓名、工号、性别等都是属性。
(3)联系:在E-R图中用菱形来表示联系,在菱形框内写联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1 : 1,1 : n或m : n)。
图2-1-1 E-R图
2.2 表的设计
表是数据库的基本单位,它是一个二维表,表由行或列组成。在设计数据时,应在充分进行项目需求分析调查的前提下,分析该系统要有哪些表,每个表中要有那些列。设计表时应考虑:表有哪些列,列的名字,每一列的数据类型和长度,该列是否允许为空值;表中哪些列需要定义主键,哪个列需要定义外键、唯一键、标识列;表中哪些列的数据有效范围需要限定,需要对哪些列提高查询速度。
企业人事管理系统
图2-2-1 数据库内所建表
2.2.1 员工信息表
员工信息表内存储的数据是每个职工的基本信息,包括员工编号,姓名,性别,出生日期,政治面貌ID,学历编号,婚姻状况,部门编号,所任职位,现居地址,联系方式,入职时间,离职时间,在职状态等列。
图2-2-2 表所建列
(1)代码
USE [企业人事管理系统] GO CREATE TABLE [dbo].[员工信息表]([员工编号] [nvarchar](5)COLLATE Chinese_PRC_CI_AS NOT NULL, [姓名] [nvarchar](10)COLLATE Chinese_PRC_CI_AS NULL, [性别] [nvarchar](5)COLLATE Chinese_PRC_CI_AS NULL, [出生日期] [smalldatetime] NULL, [政治面貌ID] [nvarchar](5)COLLATE Chinese_PRC_CI_AS NOT NULL, [学历编号] [nvarchar](5)COLLATE Chinese_PRC_CI_AS NOT NULL, [婚姻状况] [nvarchar](4)COLLATE Chinese_PRC_CI_AS NULL, [部门编号] [nvarchar](5)COLLATE Chinese_PRC_CI_AS NOT NULL, [所任职位] [nvarchar](50)COLLATE Chinese_PRC_CI_AS NULL, [现居地址] [nvarchar](20)COLLATE Chinese_PRC_CI_AS NULL, [联系方式] [varchar](11)COLLATE Chinese_PRC_CI_AS NULL, [入职时间] [datetime] NULL, [离职时间] [datetime] NULL,企业人事管理系统
[在职状态] [nvarchar](4)COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT [PK_员工信息表] PRIMARY KEY CLUSTERED([员工编号] ASC, [政治面貌ID] ASC, [学历编号] ASC, [部门编号] ASC)WITH(IGNORE_DUP_KEY = OFF)ON [PRIMARY])ON [PRIMARY] GO
(2)查询员工的基本信息:可以根据员工的编号,姓名或是进入本公司的时间进行查询员工的基本信息,在此根据员工编号查询一条员工信息。
SELECT [员工编号] ,[姓名],[性别] ,[出生日期],[婚姻状况], [部门编号],[所任职位],[现居地址],[联系方式],[在职状态] FROM [企业人事管理系统].[dbo].[员工信息表] where 员工编号='00023'
图2-2-3 查询信息
2.2.2 部门信息表
图2-2-4(1)代码
USE [企业人事管理系统] GO CREATE TABLE [dbo].[部门信息表]([部门编号] [nvarchar](5)COLLATE Chinese_PRC_CI_AS NOT NULL, [部门名称] [nvarchar](50)COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT [PK_部门信息表] PRIMARY KEY CLUSTERED([部门编号] ASC
企业人事管理系统)WITH(IGNORE_DUP_KEY = OFF)ON [PRIMARY])ON [PRIMARY](2)查询某部门,使用部门编号=113 SELECT [部门编号] ,[部门名称] FROM [企业人事管理系统].[dbo].[部门信息表] where 部门编号=114
图 2-2-5 2.2.3 调动信息表
图 2-2-6(1)代码
USE [企业人事管理系统] GO CREATE TABLE [dbo].[调动信息表]([员工编号] [nvarchar](5)COLLATE Chinese_PRC_CI_AS NULL, [调动日期] [datetime] NULL, [调动原因] [nvarchar](50)COLLATE Chinese_PRC_CI_AS NULL, [调后部门编号] [nvarchar](5)COLLATE Chinese_PRC_CI_AS NULL, [调后职位] [nvarchar](50)COLLATE Chinese_PRC_CI_AS NULL)ON [PRIMARY](2)查询某员工调动情况,员工编号=00032 SELECT [员工编号] ,[调动日期],[调动原因],[调后部门编号],[调后职位] FROM [企业人事管理系统].[dbo].[调动信息表] where 员工编号=00032
企业人事管理系统
图 2-2-7 2.2.4 奖惩表
图 2-2-8 代码
USE [企业人事管理系统] GO CREATE TABLE [dbo].[奖惩表]([员工编号] [nvarchar](5)COLLATE Chinese_PRC_CI_AS NULL, [奖惩日期] [datetime] NULL, [奖惩类别] [nvarchar](5)COLLATE Chinese_PRC_CI_AS NULL, [奖惩原因] [nvarchar](50)COLLATE Chinese_PRC_CI_AS NULL, [奖惩分数] [int] NULL)ON [PRIMARY] Go 2.2.5 考勤信息表
图 2-2-9
企业人事管理系统
代码
USE [企业人事管理系统] GO CREATE TABLE [dbo].[考勤信息表]([考勤编号] [int] IDENTITY(1,1)NOT NULL, [考勤月份] [nvarchar](2)COLLATE Chinese_PRC_CI_AS NULL, [员工编号] [nvarchar](5)COLLATE Chinese_PRC_CI_AS NULL, [病假] [int] NULL, [事假] [int] NULL, [迟到] [int] NULL, [早退] [int] NULL, [出差] [int] NULL, [加班] [int] NULL, [备注] [nvarchar](100)COLLATE Chinese_PRC_CI_AS NULL, [记录时间] [datetime] NULL)ON [PRIMARY] Go 2.2.6 学历分布表
图 2-2-10 代码
USE [企业人事管理系统] GO CREATE TABLE [dbo].[学历分布表]([学历编号] [nvarchar](5)COLLATE Chinese_PRC_CI_AS NOT NULL, [学历] [nvarchar](6)COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT [PK_学历分布表] PRIMARY KEY CLUSTERED([学历编号] ASC)WITH(IGNORE_DUP_KEY = OFF)ON [PRIMARY])ON [PRIMARY]
企业人事管理系统
2.2.7 政治面貌代码表
图 2-2-11 代码
USE [企业人事管理系统] GO CREATE TABLE [dbo].[政治面貌代码表]([政治面貌ID] [nvarchar](1)COLLATE Chinese_PRC_CI_AS NOT NULL, [政治面貌名称] [nvarchar](4)COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT [PK_政治面貌代码表] PRIMARY KEY CLUSTERED([政治面貌ID] ASC)WITH(IGNORE_DUP_KEY = OFF)ON [PRIMARY])ON [PRIMARY] 2.2.8关系图
图2-2-12
企业人事管理系统
2.3创建视图
视图是一个虚拟表,它保存SELECT语句的定义,是用户查看数据库表中数据的一种方式。用户通过它能够以需要的方式浏览表中的部分或全部数据,而数据的物理存放位置仍然在数据库的表中,这些表称作视图的基表。
视图中的数据可以来自一个或多个基表,也可以来自视图。
视图可以使用户集中在他们感兴趣或关心的数据上,而可以考虑那些不必要的数据。这样,由于用户只能看到在视图中显示的数据,而看不到视图所引用的表的其他数据。在一定程度上保证了数据的安全性。
图2-3-1 数据库内视图
2.3.1 本科人员表
建立该视图,通过员工信息表与学历分布表间的联系,查询学历为本科的职员。操作如下:
图2-3-2 所用表及表间关系
企业人事管理系统
图2-3-3 列名及筛选条件
图2-3-4 查询结果
创建视图代码
USE [企业人事管理系统] GO CREATE VIEW [dbo].[本科人员表] AS SELECT dbo.员工信息表.员工编号, dbo.员工信息表.姓名, dbo.员工信息表.性别, dbo.学历分布表.学历
FROM dbo.员工信息表INNER JOIN dbo.学历分布表ON dbo.员工信息表.学历编号= dbo.学历分布表.学历编号 WHERE(dbo.学历分布表.学历= N'本科')GO 2.3.2 加班人员名单
使用员工信息表与部门信息表、员工信息表与考勤信息表间的联系,查询公司职员的加班情况,以及一些相关信息。
图2-3-5 所用表及表间关系
企业人事管理系统
图2-3-6 列名及筛选条件
图2-3-7 查询结果
USE [企业人事管理系统] GO CREATE VIEW [dbo].[加班人员名单] AS SELECT TOP(100)PERCENT dbo.员工信息表.员工编号, dbo.员工信息表.姓名, dbo.部门信息表.部门编号, dbo.员工信息表.所任职位, dbo.考勤信息表.考勤月份, dbo.考勤信息表.加班 FROM dbo.部门信息表INNER JOIN dbo.员工信息表ON dbo.部门信息表.部门编号= dbo.员工信息表.部门编号INNER JOIN dbo.考勤信息表ON dbo.员工信息表.员工编号= dbo.考勤信息表.员工编号 WHERE(dbo.考勤信息表.加班> 0)ORDER BY dbo.考勤信息表.考勤月份, dbo.部门信息表.部门编号 GO 2.3.3 人员调动情况
使用员工信息表与调动信息表和部门信息表两表间联系,查询员工调动情况,包括原部门名称及职位和调后部门编号及职位。
图2-3-8 所用表及表间关系
企业人事管理系统
图2-3-9 列名及筛选条件
图2-3-10 查询结果
USE [企业人事管理系统] GO CREATE VIEW [dbo].[人员调动情况] AS SELECT dbo.员工信息表.员工编号, dbo.员工信息表.姓名, dbo.部门信息表.部门名称AS 原部门名称, dbo.员工信息表.所任职位, dbo.调动信息表.调动日期, dbo.调动信息表.调后部门编号, dbo.调动信息表.调后职位 FROM dbo.员工信息表INNER JOIN dbo.调动信息表ON dbo.员工信息表.员工编号= dbo.调动信息表.员工编号INNER JOIN dbo.部门信息表ON dbo.员工信息表.部门编号= dbo.部门信息表.部门编号 GO 2.3.4 受奖人员
使用三表间联系,查询包括员工编号、姓名、部门编号、部门名称、奖惩类别及奖惩分数在内的受奖人员情况。
图2-3-11 所用表及表间关系
企业人事管理系统
图2-3-12 列名及筛选条件
图2-3-13 查询结果
USE [企业人事管理系统] GO CREATE VIEW [dbo].[受奖人员] AS SELECT dbo.员工信息表.员工编号, dbo.员工信息表.姓名, dbo.部门信息表.部门编号, dbo.部门信息表.部门名称, dbo.奖惩表.奖惩类别, dbo.奖惩表.奖惩分数 FROM dbo.奖惩表INNER JOIN dbo.员工信息表ON dbo.奖惩表.员工编号= dbo.员工信息表.员工编号INNER JOIN dbo.部门信息表ON dbo.员工信息表.部门编号= dbo.部门信息表.部门编号 WHERE(dbo.奖惩表.奖惩类别= N'奖')GO 2.3.5 硕士已婚人员
该视图使用员工信息表和学历分布表间的联系,查询学历及婚姻状况分布情况,在此筛选学历为硕士,婚姻状况为已婚的员工。
图2-3-14 所用表及表间关系
企业人事管理系统
图2-3-15 列名及筛选条件
图2-3-16 查询结果
USE [企业人事管理系统] GO CREATE VIEW [dbo].[硕士已婚人员] AS SELECT dbo.员工信息表.员工编号, dbo.员工信息表.姓名, dbo.员工信息表.性别, dbo.学历分布表.学历, dbo.员工信息表.婚姻状况 FROM dbo.员工信息表INNER JOIN dbo.学历分布表 ON dbo.员工信息表.学历编号= dbo.学历分布表.学历编号
WHERE(dbo.学历分布表.学历= N'硕士')AND(dbo.员工信息表.婚姻状况= N'已婚')GO 2.3.6 销售部人员表
查询一个部门有哪些员工,以及他们所任职位,就可以使用该视图查询部门人员,此处使用筛选器筛选了部门编号为111的部门。操作如下:
图2-3-17 所用表及表间关系
企业人事管理系统
图2-3-18 列名及筛选条件
图2-3-19 查询结果
USE [企业人事管理系统] GO CREATE VIEW [dbo].[销售部人员表] AS SELECT dbo.员工信息表.员工编号, dbo.员工信息表.姓名, dbo.员工信息表.部门编号, dbo.部门信息表.部门名称, dbo.员工信息表.所任职位 FROM dbo.部门信息表INNER JOIN dbo.员工信息表ON dbo.部门信息表.部门编号= dbo.员工信息表.部门编号 WHERE(dbo.员工信息表.部门编号= N'111')GO 2.3.7 员工表
通过三表间联系,只查询各个职员的编号、姓名、性别、所在的部门名称及政治面貌名称。
图2-3-20 所用表及表间关系
企业人事管理系统
图2-3-21 列名及筛选条件
代码
USE [企业人事管理系统] GO CREATE VIEW [dbo].[员工表] AS SELECT TOP(100)PERCENT dbo.员工信息表.员工编号, dbo.员工信息表.姓名, dbo.员工信息表.性别, dbo.部门信息表.部门名称, dbo.政治面貌代码表.政治面貌名称 FROM dbo.员工信息表INNER JOIN dbo.部门信息表ON dbo.员工信息表.部门编号= dbo.部门信息表.部门编号INNER JOIN dbo.政治面貌代码表ON dbo.员工信息表.政治面貌ID = dbo.政治面貌代码表.政治面貌ID GO
2.4 存储过程
存储过程是T-SQL语句和流控语句集合,存储过程能被编译和优化。当首次执行存储过程是,SQL Server为其产生查询计划并将其保留在内存中,以后在调用该存储过程时就不必在进行编译,在一定程度上改善了系统的功能。
图2-4-1 存储过程
企业人事管理系统
2.4.1部门人员表
前面在视图中已创建了一个“销售部人员表”,在这里使用存储过程创建了一个“部门人员表”的意图在于通过参数查询一个或多个部门的员工信息及所任职位。(1)创建代码
create procedure p_部门人员表 @部门名称nvarchar(50)as select 员工编号,姓名,部门名称,所任职位 from 员工信息表y,部门信息表b where y.部门编号=b.部门编号and 部门名称=@部门名称 order by 员工编号
图2-4-2 创建存储过程(部门人员表)
(2)按部门名称查询部门人员
图2-4-3 执行存储过程部门人员表
企业人事管理系统
图2-4-4 该存储过程执行界面
可在”值”一栏中输入任意部门名称,在此查询”销售部”和”采购部”
USE [企业人事管理系统] GO DECLARE @return_value int EXEC @return_value = [dbo].[p_部门人员表] @部门名称= N'销售部' SELECT 'Return Value' = @return_value GO
图2-4-5 查询销售部人员
USE [企业人事管理系统] GO DECLARE @return_value int EXEC @return_value = [dbo].[p_部门人员表] @部门名称= N'采购部' SELECT 'Return Value' = @return_value GO
图2-4-6 查询采购部人员
企业人事管理系统
2.4.2 婚姻学历表(加密)(1)代码
USE [企业人事管理系统] GO create procedure [dbo].[婚姻学历表] @婚姻状况nvarchar(4),@学历nvarchar(6)with encryption as select 员工编号,姓名,婚姻状况,学历 from 员工信息表y,学历分布表x where y.学历编号=x.学历编号and 婚姻状况=@婚姻状况and 学历=@学历 order by 员工编号 GO
(2)执行
因该存储过程被加密,因此无法修改此存储过程.图2-4-7 执行存储过程 婚姻学历表
图2-4-8 输入条件项
USE [企业人事管理系统] GO DECLARE EXEC @return_value int @return_value = [dbo].[婚姻学历表] @婚姻状况= N'未婚',企业人事管理系统
@学历= N'研究生' SELECT 'Return Value' = @return_value GO
图2-4-9 查询未婚研究生人员
因此,该企业没有同时符合婚姻状况为未婚,学历为研究生的人员
USE [企业人事管理系统] GO DECLARE EXEC @return_value int @return_value = [dbo].[婚姻学历表] @婚姻状况= N'未婚',@学历= N'大专' SELECT 'Return Value' = @return_value GO
图2-4-10 查询未婚大专人员
企业人事管理系统
2.4.3 加班次数(1)代码
USE [企业人事管理系统] GO create procedure [dbo].[加班次数] @加班int as select 姓名,性别,加班as '加班次数' from 员工信息表y,考勤信息表k where y.员工编号=k.员工编号and 加班=@加班
(2)执行
图2-4-11 USE [企业人事管理系统] GO DECLARE EXEC @return_value int @return_value = [dbo].[加班次数]
@加班= 1 SELECT 'Return Value' = @return_value GO
图2-4-12
企业人事管理系统
2.4.4 奖惩类别表(1)代码
USE [企业人事管理系统] GO create procedure [dbo].[奖惩类别表] @奖惩类别nvarchar(50)as select 姓名,奖惩类别,奖惩分数 from 员工信息表y,奖惩表j where y.员工编号=j.员工编号and 奖惩类别=@奖惩类别
(2)执行
图2-4-13 USE [企业人事管理系统] GO DECLARE EXEC @return_value int @return_value = [dbo].[奖惩类别表]
@奖惩类别= N'奖' SELECT 'Return Value' = @return_value GO
图2-4-14
企业人事管理系统
2.4.5 学历表
USE [企业人事管理系统] GO create procedure [dbo].[学历表] @学历nvarchar(6)as select 员工编号,姓名,性别,学历from 员工信息表y,学历分布表x where y.学历编号=x.学历编号and 学历=@学历
图2-4-15 USE [企业人事管理系统] GO DECLARE EXEC @return_value int @return_value = [dbo].[学历表]
@学历= N'研究生' SELECT 'Return Value' = @return_value GO
图2-4-16
企业人事管理系统
2.5触发器及对信息的操作
触发器主要通过事件触发而被执行,在指定的表进行Insert、Update或Delete操作时被触发。SQL Server将触发器和触发它的语句作为可在触发器内回滚的单个事物对待,如果检测到严重错误,则这个事务即自动回滚,恢复到原来的状态。下图是在员工信息表中所建的触发器。
图2-5-1 2.5.1 触发器“添加”及添加信息 添加一条员工信息,运用触发器显示。(1)触发器“添加”代码
USE [企业人事管理系统] GO create trigger [添加] on [dbo].[员工信息表] for insert as print '增加一条员工信息'(2)插入信息
图2-5-2
企业人事管理系统
INSERT INTO [企业人事管理系统].[dbo].[员工信息表]([员工编号],[姓名],[性别],[出生日期],[政治面貌ID],[学历编号], [婚姻状况],[部门编号],[所任职位],[现居地址],[联系方式],[入职时间], [离职时间],[在职状态])
VALUES('11111','新新','女','1990-12-5','2','004','未婚','113','职员','','','','','在')
图2-5-3
图2-5-4 查询结果1
企业人事管理系统
2.5.2 触发器”修改”及修改信息(1)触发器”修改”代码
USE [企业人事管理系统] GO create trigger [修改] on [dbo].[员工信息表] for update as print '修改员工信息'
(2)修改信息代码及执行结果
UPDATE [企业人事管理系统].[dbo].[员工信息表] SET [政治面貌ID] =001,[所任职位] ='经理' ,[现居地址] = '浙江' ,[联系方式] =*** ,[入职时间] = 2009-9-4 WHERE 员工编号='11111'
图2-5-5
图2-5-6
企业人事管理系统
2.5.3 触发器”删除”及删除信息(1)触发器”删除”代码
USE [企业人事管理系统] GO create trigger [删除] on [dbo].[员工信息表] for delete as print '删除一条员工信息'
(2)删除信息代码及执行结果
DELETE FROM [企业人事管理系统].[dbo].[员工信息表] WHERE 员工编号='11111'
图2-5-7
2.6 权限
权限管理是指安全帐号登录SQL Server之后,能够对数据库对象执行的操作。
SQL Server包括两类权限:对象权限、语句权限。对象权限是针对表、视图和存储过程而言的一些操作。语句权限主要指是否具有权限来执行某一语句。这些语句通常是一些具有管理系统能够的操作,如:创建数据库、表和存储过程。
企业人事管理系统
2.6.1 管理用户者权限
在此系统中,使用权限可以将管理者和用户拥有的权限不同,管理者可以对表进行Select、Update、Delete、Insert、reference等操作,对列进行Select、Update等操作,对视图进行Select、Update、Delete、Insert等操作,对存储过程进行Execute等操作。
关于管理者用户权限的操作在前面的触发器操作中已有展现,在此只说明管理者用户权限的创建及所授予权限。(1)代码及方法
CREATE LOGIN [owner] WITH PASSWORD=111, DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[简体中文], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF GO ALTER LOGIN [owner] DISABLE
图2-6-1
设置登录名为“owner“,选中SQL Server 身份验证,设置密码,取消”强制实施密码策略“复选框的选中状态。
图2-6-2
企业人事管理系统
单击左上角”用户映射“,在”映射到此登陆名的用户“下方的框中选择”企业人事管理系统“,之后在”数据库角色成员身份“下方的框中选择”db_owner“和“public”,这样owner就有了企业人事管理系统数据库的所有操作权限。
图2-6-3
图2-6-4(2)授予权限
use 企业人事管理系统 go grant select,insert,update,delete,execute to owner
图2-6-5
企业人事管理系统
2.6.2用户者权限
用户者权限在此系统中,只能进行一些查询操作。(1)代码及创建方法
CREATE LOGIN [users] WITH PASSWORD=000, DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[简体中文], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF GO ALTER LOGIN [users] DISABLE
图2-6-6
图2-6-7
图2-6-8
企业人事管理系统
(2)授予权限
use 企业人事管理系统 go grant select to users
图2-6-9(3)使用用户者权限对系统进行其他操作(在此做部分举例)用户者权限没有修改表列的权限
图2-6-10
图2-6-11
企业人事管理系统
图2-6-12 用户者没有修改表内列的信息的权限
图2-6-13 此语句是要修改员工编号为00011的职员的政治面貌ID,因该用户不具有Update权限,因此无法修改该条信息。
当系统使用用户者权限时,我们所创建的存储过程不会显示。
图2-6-14
企业人事管理系统
3总结
随着当今社会向信息化的发展,人事管理信息化管理来越为各企事业单位所重视,它能有效地收集、执行各种办公信息,极大地提高了办公效率,及时准确地实现信息的上传下达,而计算机技术、网络技术、各种软件工作平台不断的发展,又能够促进人事管理信息化管理加速实现。
本系统的不足在于没有用可视化功能强大的VB.NET作为开发工具,因此在操作上可能会使用户比较困难,但对于熟练SQL Server 2005起到一定作用。
在技术上由于对软件开发平台的不够熟悉,很多组件及其之间的联系掌握不够以至不能灵活运用,造成程序内容不丰富,使用不方便,其次在系统分析上在待加强训练,这次的设计规模较小,但我在软件的定义时期,特别是在需求分析时,一度让我无从下手,所耗时间比开发时期都长。
但收获还是梃大的,在这次论文设计中,使我综合运用所学知识和技能对实际问题的分析概括能力加强,通过检索文献资料、了解、学习、掌握本学科专业领域中新的知识和发展动态,并恰当地将其运用到论文中,同时让我深深体会到(软件)工程开发的艰辛与乐趣,开发者必须态度端正,认真制定设计方案和工作计划,严格按照软件工程的流程完成设计的各个环节。
毫无疑问,这次毕业论文设计是对我本学期所学知识的一次检测同时对我在今后的学习中进行程序设计是有很大的帮助作用的。致谢
从编写程序到拟定报告,历时十多天。在本设计完成之际,首先向我的指导老师以诚挚的谢意。在报告的书写过程中,老师给了我许多的帮助和关怀,指导老师治学严谨,待人平易近人,在指导老师的细心指导下,我学到了扎实的专业知识。
同时,衷心感谢我的同窗同学,在我的实训报告的写作中,与同学们的探讨交流使我收益颇多,同时,他们也给了我很多无私的帮助和支持,我深表谢意。
企业人事管理系统 参考文献
[1]刘健.企业人事管理系统的开发.黑龙江科技信息,2008,19(20)
[2]刘畅.配件进销存管理信息系统的设计与开发.天津大学学报,2006,10(9)[3]李俊民,精通SQL结构化查询语言详解(第二版).北京:人民邮电出版社,2008.35