范文网 论文资料 人事管理系统毕业设计(全文)

人事管理系统毕业设计(全文)

人事管理系统毕业设计第一篇:人事管理系统毕业设计人事管理系统设计《网络数据库》 人事管理系统设计报告院系:物理与电子工程学院专业:通信工程班级:10届06班学号:10006520633姓名:代刚日期:2011-05-16人事管理系统设计1。

人事管理系统毕业设计

第一篇:人事管理系统毕业设计

人事管理系统设计

《网络数据库》 人事管理系统设计报告

院系:物理与电子工程学院

专业:通信工程

班级:10届06班

学号:10006520633

姓名:代刚

日期:2011-05-16

人事管理系统设计

1、数据库功能分析

即该数据库能够实现的主要功能。

2、数据库需求分析

3、数据库逻辑结构分析设计

即该数据库由哪些表组成,每一个表含有哪些字段及相应的属性设置。

4、创建数据库

即该数据库、表、视图、存储过程、触发器、用户自定义函数的T-SQl语句。

5、设计总结

描述自己的设计体会

字体:5号 宋体 单倍间隔

第二篇:企业人事管理系统毕业论文设计

前 言 ........................................................................................................................................ 错误!未定义书签。 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.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 开发环境简介

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 总

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.

致谢

在这里我要我对给予我指导和帮助的曹步青老师以及在测试阶段提供机器和意见的同学表示我诚至的谢意。曹老师认真负责的工作态度,严谨的治学精神使我受益匪浅。无论在理论和实践中,都给了我很大的帮助,使我综合素质提高不少,这对于我以后的学习和工作都有一种很大的帮助。

暨毕业论文答辩之际,我要忠心感谢湖南科技大学和计算机科学与工程学院的各位老师大学四年来对我的辛勤培养和悉心教育,是科大提供了学习机会,是各位老师传授了我专业知识和做人的道理。

最后,再一次感谢我的恩师!感谢我的母校!祝各位老师身体健康,工作顺心!愿我校的教育事业蓬勃发展!

第三篇:企业人事管理系统详细设计

1 企业人事管理系统概述

人事管理系统模块设计:用户登录模块:模块功能包括录入,修改,删除登录用户信息。用户权限管理模块:模块功能包括为每个系统功能设置一个权限代码,为每个用户设置其能够拥有的权限,从而保证用户根据自己权限访问系统,确保系统保密信息的安全性。人员基本信息管理模块:模块功能包括企业人员信息录入,修改,删除,部门设置,照片上传及工作岗位分配等,对人员基本信息进行详细描述,以便在以后的系统运行过程中进行调用查询。人员工作管理模块:模块功能包括工作分配查询、工作情况查询(又包括工作正常查询和额外查询)等查询工作。统计查询模块:模块功能包括根据部门、学历、专业职务、合同类型、政治面貌、毕业院校、工作岗位、户口所在地、婚姻状况、籍贯、家庭住址、参加工作时间、民族、入职时间、入党时间、专业等进行综合查询;同时可以对查询结果到出成Excel格式进行二次编辑打印。系统维护模块:模块功能包括部门管理,学历管理、专业职务管理、合同类型管理、政治面貌管理;系统字体进行管理;不同合同类型人员显示颜色设置;合同到期人员提前提醒设置;数据库备份,数据库联接维护等。

1.1 系统的任务

企业人事管理系统主要负责管理用户的人事活动信息和人事活动日志。一个完善的企业人事管理系统的任务主要包括以下几项:

(1)人事活动管理,主要提供快速的目录查询和人事活动提醒服务,并记录人事活动日志。

(2)联系人管理,负责管理群组信息和联系人信息,设置优先级,并提供目录查询和打印功能。

(3)统计分析,负责对联系人信息、人事活动提醒和人事活动日志进行统计。

(4)系统管理,主要负责管理用户信息、权限设置、用户登录以及系统初始化。

1.2 系统的目标

企业人事管理系统是通过计算机方式集中管理人事活动信息和人事活动服务的系统,有以下几个目标:

(1)更好地保存用户的联系方式,提供目录查询和打印服务。

(2)提供人事活动提醒服务,通知用户所需进行的人事活动。

(3)详细记录用户的人事活动日志,提供日志查询分析功能。

(4)根据用户权限来设置人事活动服务,提供信息的安全性。

1.3 系统开发方法

本系统开发采用的是结构化系统开发方法,结构化系统开发方法就是结构化开发方法,工程化的系统开发方法和生命周期方法的结合。其基本思想是:用系统工程的思想和工程化的方法,按用户至上的原则、结构化、模块化、自顶向下地对系统进行分析与设计,自底向上地进行实施。 结构化系统开发方法的特点:

(1)系统观点。

(2)严格区分工作阶段,每个阶段都有明确的任务和应得的成果。

(3)自顶向下的分析与设计和自底向上的系统实施。

(4)工作成果文档化,文档资料规范化、标准化。

此系统之所以采用这种开发方法是因为结构系统开发方法的整体思路清楚,能够从全局出发步步为营,减少返工,有利于开发质量;设计工作中阶段性强,每一阶段均有工作成果出现;每一阶段的工作成果是下一级工作的依据,工作进度比较容易把握,有利于系统开发的总体管理和控制。另外,由于该方法强调从整体来分析和设计整个系统,因此在系统分析时,可以诊断出原系统中存在的问题和结构上的缺陷,这一点是其他方法难以做到的。

1.4 可行性分析

可行性是指组织内外当前的具体条件下,进行某项目的必要性和可能性。若系统开发是必要的,则进一步从技术、经济、管理上分析其可行性。

1)经济可行性

利用计算机对企业人员进行合理优化地管理,可以提高员工的工作热情,同时还可以为领导们做出正确的决策提供参考,这些都有利于公司的业务发展和效益的提高。

2)技术可行性

在技术难度方面,Visual Basic 开发工具与SQL Server 2000 适合开发一些中小型的系统,在指导教师的帮助和参考网上一些相关资料,使得开发这样一套企业人事管理系统软件成为一种切实可行的方案。

3)组织管理的可行性

开发企业人事管理系统受到企业内部领导层的高度重视,同时广大员工也反响强烈,有利于促进公司的业务发展和合理的人事管理。

2 系统需求分析

2.1 需求分析的重要性 需求分析工作是系统生命周期重要的一步,也是决定性的一步。忽略需求分析往往会付出沉重的代价。大量实践表明,信息系统产生的许多错误都是由于需求定义不准确或错误导致的,而且,如果在需求定义阶段发生错误,则修改这些错误的代价是非常高的,并随着开发周期的进展,改正错误或在改正错误时引入的附加错误的代价是按指数增长的。因此,系统开发中的需求定义是系统成功的关键一步,必须引起足够的重视。企业人事管理系统中一项重要的工作就是录入和校对员工的基本信息和人事活动提醒,由于人数多,细节多,人工处理很容易丢失资料或出现不准确的情况,因此采用计算机进行企业人事管理,根据具体情况进行需求分析。

2.2 企业人事管理系统的功能结构

从业务角度来看,管理信息系统应该支持整个组织在不同层次上的各种功能。各种功能之间又有各种信息联系,构成一个有机的整体及系统的业务功能结构。根据以上对人事管理系统的任务和目标的分析可以看出,一个标准的人事管理系统应该包含如图1所示的一些功能。每个功能模块又都包含一系列的子模块。

图1 “企业人事管理系统”功能模块图

1)人事活动管理

“人事活动管理”模块主要用于提供快速的目录查询和人事活动提醒服务,并记录人事活动日志。

(1)“分类查询”模块:“分类查询”模块负责为用户提供目录查询功能。用户可以进行精确查询,也可以进行模糊查询,从而快速查找所需要的人事活动信息。不同群组权限的用户可以查询不同群组的联系人。

(2)“人事活动提醒”模块:“人事活动提醒”模块负责用户提供人事活动提醒功能。提醒信息主要包括提醒ID、提醒主题、提醒时间、提醒对象、联系人、联系方式、提醒内容、录入人员和是否完成等。提醒对象是指那些需要被提醒进行人事活动的公司员工,录入人员是登录的用户,联系方式主要有地址、办公电话、手机号码、邮箱、MSN和QQ号码等。

一般用户只能看到和自己相关的提醒信息,管理人员可以看到所有的提醒信息。当用户已经完成人事活动事,需要将提醒信息的“是否完成”属性标志为“完成”。

(3)“人事活动日志”模块:“人事活动日志”模块负责记录用户的人事活动日志。一般用户和管理人员只能看到和自己相关的日志信息。人事活动日志主要包括日志ID、人事活动主题、人事活动时间、人事活动人员、联系人、联系方式、人事活动内容和录入人员等。人事活动人员是那些进行人事活动活动的公司员工,录入人员是登录的用户,联系方式主要有地址、办公电话、手机号码、邮箱、MSN和QQ号码等。

2)联系人管理

“联系人管理”模块负责管理群组信息和联系人信息,设置优先级,并提供目录查询和打印功能。

(1)“群组设置”模块:“群组设置”模块负责管理联系人的群组信息。用户可以通过建立群组来管理联系人信息。群组信息主要包括群组ID、群组名称、优先级、建立日期、群组简介和录入人员等。 (2)“联系人设置”模块:“联系人设置”模块负责设置联系人信息,并对其进行添加、修改、删除和查询等操作。联系人信息主要包括如下几项。

①基本信息:联系人ID、姓名、群组ID、优先级、性别、身份证号、出生日期、籍贯、民族;

②工作信息:工作单位、职务、职称、工作描述;

③教育背景:毕业院校、学历、专业;

④联系方式:地址、办公电话、住宅电话、手机号码、传真、邮箱、MSN、QQ;

⑤其他信息:个人爱好、特长。

(3)“优先级设置模块”:“优先级设置”模块负责设置群组和联系人的优先级。

(4)“查询打印”模块:“查询打印”模块负责提供目录查询和打印功能。

3) 统计分析

“统计分析”模块主要负责对联系人的信息、人事活动提醒和人事活动日志进行统计分析。

(1)“联系人统计”模块:“联系人统计”模块负责对联系人进行统计分析,通过它,用户可以更加方便地了解目前各群组拥有的联系人数目。

(2)“提醒统计”模块:“提醒统计”模块负责对人事活动信息进行统计。可以按照人事活动提醒信息中的联系人,提醒时间和提醒对象分别进行统计分析。

(3)“日志分析”模块:“日志分析”模块负责分析人事活动日志。可以按照人事活动日志中的人事活动时间、人事活动人员和联系人分别进行统计分析。

4)系统管理

“系统管理”模块主要负责用户权限管理,包括用户管理、密码维护、重新登录和初始化。

(1)“用户管理”模块:“用户管理”模块负责管理用户信息。用户信息包括用户ID、用户名称、用户类别(普通员工、管理人员)、密码、模块权限、电话和邮箱等。权限主要包括对一级模块和二级模块的使用权限、以及对各群组内联系人的查询权限。管理人员具有所有模块和群组的使用权限,普通员工仅具有“人事活动管理”模块的使用权限。可以对群组查询权限进行配置。

(2)“密码维护”模块:“密码维护”模块负责维护用户密码信息,为用户提供更改密码的功能。

(3)“重新登录”模块:“重新登录”模块主要用于给用户提供重新登录功能。

(4)“初始化”模块:“初始化”模块主要负责提供初始化数据的功能。可以有选择地对数据表进行清空操作。

3 数据库分析设计

表1 数据表及其用途 根据系统需求分析,系统需要建立5个表,其用途说明如表1所示。

3.1 数据字典

表2到表6给出了5个数据表(提醒信息表、人事活动日志表、群组信息表、联系人信息表、用户信息表)的具体描述,包括字段名称、数据类型、可否为空和说明。 1)提醒信息表

表2 提醒信息表

2)人事活动日志表

表3 人事活动日志表

3)群组信息表

表4 群组信息表

4)联系人信息表

表5 联系人信息表

5)用户信息表

表6 用户信息表

3.2 创建数据库 在创建数据库之前,用户需要安装MS SQL Server 系列的数据库服务器。直接手工建立数据库。打开SQL Server企业管理器,新建一个数据库,数据库名为“企业人事管理”,然后按照数据字典建立表和表的关联。

4 系统设计与实现

通过数据库分析设计,已经完成了所有的后台工作,现在需要通过Visual Basic来编写数据库系统应用程序。

4.1 创建工程项目

启动Visual Basic6.0后,单击【文件】→【新建工程】命令,在弹出的对话框中选择【标准EXE】选项,然后单击【确定】按钮。在项目的【属性】面板.中将项目的“Name”属性值改为“企业人事管理”。

4.2 创建系统主窗体4.3 创建公用模块

为了能够对数据库访问进行集中处理,需要创建一个专门访问数据库的公用模块。在项目资源管理器中为项目添加一个模块,并将其保存为OPeratDataBase.bas。

1)OPeratDataBase.bas OPeratDataBase.bas公用模块主要对数据库进行操作,包括以下5个函数:

① GetConnStr()As String 函数,返回链接字符串,用来设置数据库连接字符串;

②OpenConn(ByRefConn As ADODB.Connection)As Boolean函数,返回布尔值,用来打开数据库连接;

③ ExecuteSQL(ByVal SQL As String,ByRef msg As String)函数,用来执行SQL语句;

④ SelectSQL(ByVal SQL As String,ByRef msg As String)As ADODB.Recordset函数,返回Recordset,用来执行查询语句;

⑤ BatchSelectSQL(ByVal SQL As String,ByRef msg As String)As ADODB.Recordset函数,返回Recordset,用来执行批处理。

2)PubilicVar.bas 为了实现全局变量,另外创建一个全局变量模块PublicVar.bas,主要有3个全局变量,如下所示:

①LonginSucceeded全局变量,用来保存用户登录是否成功的标志;

②UserID全局变量,用来保存用户ID;

③ConnectionString全局变量,用来保存数据库链接字符串。

4.4 创建其它模块

创建“人事活动管理”模块、“联系人管理”模块、“统计分析”模块和“系统管理”模块

5 系统扩展

企业人事管理系统提供了人事活动管理、联系人管理、统计分析和系统管理4大功能,但是作为一个完善的企业人事管理系统,还有不足之处。系统还应该具有多级群组设置和联系人转移群组的功能。企业人事管理系统也需要结合企业的具体业务进行分析设计,以更好地满足用户的要求。

第四篇:企业人事管理系统毕业论文设计[推荐]

江苏广播电视大学楚州学院

毕业设计(论文)

企业人事管理系统的设计与实现

学 院 楚州学院 专 业 计算机信息管理 年级班别 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页

第五篇:人事管理系统设计与实现—管理

人事管理系统 一实验题目:人事管理系统

二实验目的:通过这次课程设计,要掌握UML(统一建模语言),并能运用UML在Rational Rose中建模。 三实验要求:

(1) 员工各种信息的输入,包括员工的基本信息、学历信息、婚姻状况信息、职称等。 (2) 员工各种信息的修改;

(3) 对于转出、辞职、辞退、退休员工信息的删除;

(4) 按照一定的条件,查询、统计符合条件的员工信息;至少应该包括每个员工详细信息的查询、按婚姻状况查询、按学历查询、按工作岗位查询等,至少应该包括按学历、婚姻状况、岗位、参加工作时间等统计各自的员工信息;

(5) 对查询、统计的结果打印输出。 (6) 熟悉UML,主要了解UML中的9大图:Use case diagram(用例图)、Class diagram(类图)、Object diagram(对象图,Rose中没有)、Sequence diagram(序列图)、Collaboration diagram(协作图)、Statechart diagram(状态图)、Activity diagram(活动图)、Component diagram(组件图)、Deployment diagram(配置图)、datamodel diagram(数据模型图) (7) 完成对系统的建模。

四实验内容:

根据要求画出相应的图形

人事管理用例图

登录管理基本信息管理管理员普通职员查询管理信息输出管理

基本信息管理子用例图

总经理批复信息输入管理员信息修改总经理信息删除

查询管理活动图

经理登录按员工信息查询按员工婚姻状况查询按员工学历查询按员工工作岗位查询统计结果 人事管理活动图

用户登录员工基本信息查询高级权限高级权限删除输入修改员工基本信息输入员工基本信息修改员工基本休息删除统计结果打印输出总经理批复取消编辑批复未通过批复已通过载入文档

登录管理活动图

显示登录界面输入用户名和密码信息检验设置进入权限进入主界面

基本信息管理状态图

员工基本信息录入待编辑管理员输入`修改`删除信息已编辑总经理批复批复已通过总经理批复总经理审批批复未通过未编辑

人事管理状态图

基本信息输入基本信息删除基本信息修改基本信息查询

人事管理实体类图

人事管理系统边界类图

登录人事管理系统主界面员工信息管理员工信息查询管理员工基本信息输入员工基本信息删除员工基本信息修改编辑信息批复员工基本休息修改

人事系统序列图

用户 : 管理员 : 登录验证用户和...打开登录正确打开 : 员工信息查询管理 : 人事管理系统主界面 : 员工信息管理员工基本信息查询基本...编辑员工基本...显示员工基本...显示员工基本...

人事管理协作图

4: 正确2: 打开3: 登录1: 验证用户和密码用户 : 管理员 : 登录8: 显示员工基本信息5: 打开6: 7: 查询基本信息员工基本信息 : 员工信息管理9: 编辑员工基本信息 : 人事管理系统主界面10: 11: 显示员工基本信息 : 员工信息查询管理

人事管理组件图

登录主页面身份验证登录系统主页服务器运算编辑主页并提交服务器管理员编辑主页服务器运算出等待经理批复经理批复主页服务器运算批复存入数据库并返回主页面

人事管理数据模型图

人事管理部署图

主机数据库服务器打印机

心得体会:以前在做软件工程实验的时候大多是用viso做的图。所以在这次实验开始的时候对很多图不很熟悉,通过书本和问同学解决了很多细节方面的问题,对软件工程更加的知识有了更进一不的加强,但在做序列图和协作图的时候还是没有很好的掌握,对系统在很多模块的序列图没做出。总的来说通过这次实验提高了自己的动手能力和软件工程的认识。

上一篇
下一篇
返回顶部