文档库 最新最全的文档下载
当前位置:文档库 › 毕业设计_公司员工管理系统

毕业设计_公司员工管理系统

毕业设计_公司员工管理系统
毕业设计_公司员工管理系统

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

安徽工业大学

毕业设计(论文)任务书

课题名称公司员工管理系统

学院计算机学院

专业班级软件工程0941班

姓名韩煜

学号091842112

毕业设计(论文)的主要内容及要求:

1.调研企业单位员工管理的管理流程和业务要求。

2.以C#为开发语言,VS2010为开发工具,SQL Server作为后台数据库,完成公司员工管理系统的设计与开发,主要功能模块包括:客户管理模块,上级

批示模块,工作日报模块,日报抽查模块,下排任务模块,聊天通讯模块等。

3.完成毕业设计说明书(毕业论文)一份,论文报告篇幅为1.5万字左右。中外文摘要约300字,关键词3-5个。

4.查阅文献资料不少8篇,其中外文资料不少于2篇。

5.提交带有注释的源程序清单和源程序软盘或光盘。

6.完成5000字的英文文献的翻译。

指导教师签字:

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

摘要

公司员工管理管理工作是一种繁琐的,务求准确迅速的信息检索工作。随着计算机信息技术的飞速发展,人类进入信息时代,社会的竞争越来越激烈,一个企业有一个完善的公司员工管理机制越来越必不可少,并且成为企业一个非常重要的模块。公司员工管理系统主要是用于上级对下级工作的监督,下派任务,实时通讯等。使用公司员工管理系统便于企业上级领导更全面的了解下级工作情况,即使派发任务等。

另外企业管理人员需要一个交流平台,便于他们在工作当中交流。而现在的许多聊天软件都还存在安全问题,我们需要一个企业本身自己能使用的通讯工具,它可以记录交流的信息,可以及时的让员工交流信息。

本系统以C#为开发语言,VS2010为开发工具,SQL Server作为后台数据库,程序架构为C/S模式,主要功能模块包括:客户管理模块,上级批示模块,工作日报模块,日报抽查模块,下排任务模块,聊天通讯模块等。本系统还设置了用户权限体制,打印功能,以及员工之间的通讯功能,提高了系统的安全性以及可用性。

关键词:公司员工管理; https://www.wendangku.net/doc/ef7344679.html,; C/S框架;聊天通讯;

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

Abstract

Company staff management work is a tedious,to prompt and accurate information retrieval work.With the rapid development of computer information technology,mankind has entered the information age,social competition is becoming increasingly fierce,an enterprise has become the staff management mechanism in a perfect company more essential,and become a very important module of enterprise.Staff management system is mainly used for supervision, the work of subordinates assigned tasks,real-time communication.Staff management system for enterprise use of company leaders understand the subordinates work more fully,even if the distribution of tasks.

Another enterprise managers need a communication platform,so they communicate at work.While many chat software are now also have security problems,we need an enterprise itself can use communication tool,it can record the exchange of information,can in time for employees to exchange information.

This system uses C#as the development language,VS2010 as a development tool,SQL Server as the background database,the program structure of C/S model,the main function modules include:customer management module, the command module,report module,daily check module,the lower the task module,chat communication module.The system also set up a user permissions system,print function,and the communication function between employees, improve system security and availability.

Keywords:management staff;https://www.wendangku.net/doc/ef7344679.html,;C/S framework;communication;

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊、

目录

1. 员工管理概述 (1)

1.1 员工管理系统开发背景 (1)

1.2 员工管理系统开发目的 (1)

2. 可行性研究 (2)

2.1 社会可行性分析 (2)

2.2 技术可行性分析 (2)

2.3 经济可行性分析 (2)

2.4 管理可行性分析 (2)

3. 开发环境Visual https://www.wendangku.net/doc/ef7344679.html,介绍 (3)

3.1 Visual Studio 2010简介发展历程 (3)

3.1.1 发展溯源:设想阶段 (3)

3.1.2重大突破:实质性研发 (4)

3.1.3 系统成型 (6)

4. SQL Server 2008主要特点 (7)

4.1 C#与https://www.wendangku.net/doc/ef7344679.html, (7)

4.1.1 C#中的数据库访问 (7)

4.1.2 数据绑定 (13)

5. 系统需求分析 (14)

5.1 功能需求 (14)

5.2功能细节说明 (14)

6. 系统设计于说明 (17)

6.1 系统流程 (17)

6.1.1 人事档案管理子模块 (18)

6.1.2 通讯模块说明 (19)

6.2 数据库设计 (20)

6.2.1 系统信息管理功能建表 (21)

6.2.2 通讯录功能建表 (23)

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊7. 系统技术详解 (25)

7.1 B\S 框架技术 (25)

7.1.1B\S作用 (25)

7.1.2 B\S架构软件 (25)

7.2GridView控件 (26)

7.2.1GridView概述 (26)

7.2.2GridView 事件 (26)

7.2.3GridView控件的列字段 (26)

7.2.4GridView控件实际运用 (27)

7.3 Repeater数据控件 (28)

7.3.1Repeater控件概述 (28)

7.3.2 Repeater控件用法 (28)

7.4数据库绑定 ................................................................................................ 错误!未定义书签。

7.4.1DataSet ............................................................................................. 错误!未定义书签。

7.4.2DataReader ....................................................................................... 错误!未定义书签。8系统功能介绍 (29)

8.1修改密码功能 (29)

8.2 新增客户信息功能 (30)

8.3打印功能 (31)

8.4 Repeater空间中弹窗功能 (32)

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

1. 员工管理概述

员工管理系统,属于ERP的一个部分。它单指汇集成功企业先进的人力资源管理理念、人力资源管理实践、人力资源信息化系统建设的经验,以信息技术实现对企业人力资源信息的高度集成化管理,为中国企业使用的人力资源管理解决方案。核心价值在于将人力资源工作者从繁重的日常琐碎事务中解放出来,将更多地精力用于企业的人力资源职能管理和管理决策,保持企业的持续高效运营。集中记录、监测和分析所有劳动力的技能和资格,提供决策分析。提高企业整体的科技含量与管理效率,加快企业的信息化建设。

1.1 员工管理系统开发背景

人力资源管理系统主导21世纪,无论是发达国家还是发展中国家,对人力资源的战略性意义都有了深刻的认识,并开始付诸行动。世界公认,21世纪将是人力资源的世纪;人力资源问题将主导整个21世纪甚至更为遥远,这种状况的变化起因于竞争压力。目前,世界经济趋向全球化。世界经济的全球化过程和国家的开放过程,要求组织的管理部门降低管理成本以减少竞争压力和增强竞争能力。对于不同的组织,人力资源成本在总成本中的比例是不一样的。

1.2 员工管理系统开发目的

人的管理是一切管理工作的核心。员工代表一个企业的形象,因而人事管理机制设计的好坏,直接影响一个企业的成败。

员工的档案管理是企业人事管理的基础,在企业员工普遍流失的今天,一个准确而及时的人事管理系统,有利于人事部门对员工流动进行分析、编制,为企业所需人员提供了保障。

人力资源部那些重复的,事务性的工作交给HRP(Human Resource Planning,人力资源管理系统)来解决,可以省去用户以往人力资源管理工作的繁琐、枯燥;用领先的人力资源管理理念,把人力资源管理的作业流程控制和战略规划设计巧妙地集合于一体;系统重点涉及到人力资源管理工作中的薪资、考勤、绩效、调动、基本信息、用户管理以及用户切换等方面,并有综合的系统安全设置、报表综合管理模块。可以很好地为用户的人力资源管理部门在对员工的成本管理、知识管理、绩效管理等综合管理给予帮助为了及时的计算发放工资往往要提前一个星期花费大量时间,加班加点才能及时完成,而这样做无论从工作效率还是准确度方面,都不允许,而且还浪费大量的人力财力。如果改用HRP管理做到高效、高精度,还可以减少管理时带来的一些繁琐的工作,节约管理带来的开支。

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

2. 可行性研究

2.1 社会可行性分析

随着计算机的发展与普及,以及互联网技术的扩展,日常劳资人事管理必将实现无纸化办公,并且加入到公司内部的Intranet或者是Internet上去,实现数据的共享,这样有利于劳资人事信息在单位内部的查询,提高了数据资源的利用,并且能及时的得到更新,不需要象过去那样浪费大量的人力物力去进行抄写,提高了工作的效率。

2.2 技术可行性分析

Visual https://www.wendangku.net/doc/ef7344679.html,提供了一个统一的、紧密集成的可视化编程环境,简化了开发应用程序的过程,缩短了实用方法的时间。利用Visual https://www.wendangku.net/doc/ef7344679.html,,可以非常轻松地创建具有自动伸缩能力的可靠的应用程序和组件。而且微软的优秀成果c#语言保持了c/c++所特有的强大功能和控制能力。与c++十分相似的模型和语法,具有与COM+服务完全的交互性和完全支持能力,能够轻松地迁移现有的代码。数据库方面SQL2005已经可以满足中小型企业的数据要求,甚至有些大型企业都可以达到要求。如今进算计普及程度日益推广,计算机配置日新月异,能承载此系统的机器就如办公的机器都可以达到要求。所以说本系统具有技术可行性。

2.3 经济可行性分析

采用传统的手工输入方法,不仅工作繁琐而且需要人力输入多,记录容易出错,那样产生了成本高,效果差的弊病,对于一个企业的资料库建立是十分困难和麻烦的。而采用这种系统所发费的成本,精力都远远低于手工,并且实用十分方便,更新也简易,每个部门只需一个人统一管理,对企业实现办公无纸化能起到很大的作用。所以此系统经济可行性也具备了。

2.4 管理可行性分析

本系统采用了系统数据备份、恢复的功能,而且界面层次分明,一目了然,加上设计方面加入了人性化元素。管理此系统并不难,易学易会。

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

3. 开发环境Visual https://www.wendangku.net/doc/ef7344679.html,介绍

3.1 Visual Studio 2010简介发展历程

Visual Studio是微软公司推出的开发环境。是目前最流行windows平台和应用程序开发环境。Visual Studio 2010版本于2010年4月12日上市,其集成开发环境(IDE)的界面被重新设计和组织,变得更加简单明了。Visual Studio 2010同时带来

了NET Framework

4.0、Microsoft Visual Studio 2010 CTP( Community Technology Preview--CTP),并且支持开发面向Windows 7的应用程序。除了Microsoft SQL Server,它还支持IBM DB2和Oracle数据库。

持者渐少,不成气候,就是转投他人怀抱,中道衰落,让人难免生出几分遗憾。但是反过来,我们又对Visual Studio这位“江湖最后的大佬”增添了几分敬仰之情。据说这位大佬又要出新的版本了,这些江湖八卦者,哪有错过的道理。要想深入的了解一个人,需要从他的童年开始。想了解Visual Studio,故事也就要从它的1.0开始。

Visual Studio 可以用来创建Windows平台下的Windows 应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和Office插件。

1992年4月,微软发布了革命性的操作系统Windows 3.1,把个人计算机引进了真正的视窗时代。微软在原有C++开发工具Microsoft C/C++ 7.0的基础上,开创性地引进了MFC(Microsoft Foundation Classes)库,完善了源代码,成为Microsoft C/C++ 8.0,也就是Visual C++ 1.0,并于1992年发布。Visual C++ 1.0是真正意义上的Windows IDE,这也是Visual Studio的最初原型。虽然以现在的眼光来看,这个界面非常简陋和粗糙,但是它脱离了DOS界面,让用户可以在图形化的界面下进行开发,把软件开发带入了可视化(Visual)开发的时代。从此,大佬的时代开始了。

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊3.1.2重大突破:实质性研发

1998 年,微软公司发布了Visual Studio 6.0。所有开发语言的

开发环境版本均升至6.0。这也是Visual Basic 最后一次发布,从下一个版本(7.0) 开始,Microsoft Basic 进化成了一种新的面向对象的语言:Microsoft Basic. NET。由于微软公司对于Sun 公司Java 语言扩充导致与Java 虚拟机不兼容而被Sun 告上法庭,微软在后续的Visual Studio 中不再包括面向Java 虚拟机的开发环境。

2002 年,随着 .NET 口号的提出与Windows XP / Office XP 的发布,微软发布了Visual Studio .NET(内部版本号为7.0)。在这个版本的Visual Studio 中,微软剥离了Visual FoxPro 作为一个单独的开发环境以Visual FoxPro 7.0 单独销售,同时取消了Visual InterDev。与此同时,微软引入了建立在 .NET 框架上(版本1.0)的托管代码机制以及一门新的语言C# (读作 C Sharp,意为C++++)。C# 是一门建立在C++ 和Java 基础上的现代语言,是编写 .NET 框架的语言。

.NET 的通用语言框架机制(Common Language Runtime, CLR),其目的是在同一个项目中支持不同的语言所开发的组件。所有CLR 支持的代码都会被解释成为CLR 可执行的机器代码然后运行。

Visual Basic、Visual C++ 都被扩展为支持托管代码机制的开发环境,且Visual Basic .NET更是从Visual Basic 脱胎换骨,彻底支持面向对象的编程机制。而Visual J++也变为Visual J#。后者仅语法同Java 相同,但是面向的不是Java 虚拟机,而是 .NET Framework。

2003 年,微软对Visual Studio 2002 进行了部分修订,以Visual Studio 2003 的名义发布(内部版本号为7.1)。Visio 作为使用统一建模语言(UML)架构应用程序框架的程序被引入,同时被引入的还包括移动设备支持和企业模版。.NET 框架也升级到了1.1。

2005 年,微软发布了Visual Studio 2005。.NET 字眼从各种语言的名字中被

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊抹去,但是这个版本的Visual Studio 仍然还是面向 .NET 框架的(版本2.0)。它同时也能开发跨平台的应用程序,如开发使用微软操作系统的手机的程序等。总体来说是一个非常庞大的软件,甚至包含代码测试功能。

这个版本的Visual Studio 包含有众多版本,分别面向不同的开发角色。同时还永久提供免费的Visual Studio Express 版本。

使用Visual Studio 2005, 专业开发人员能够:创建满足关键性要求的多层次的智能客户端、Web、移动或基于Microsoft Office的应用程序。

使用改进后的可视化设计工具、编程语言和代码编辑器,享受高效率的开发环境

在统一的开发环境中,开发并调试多层次的服务器应用程序

使用集成的可视化数据库设计和报告工具,创建SQL Server 2005解决方案

使用Visual Studio SDK创建可以扩展Visual Studio IDE的工具

Microsoft为单独工作或在小型团队中的专业开发人员提供了两种选择,Visual Studio 2005 Professional Edition和用于Microsoft Office系统的Visual Studio 2005工具。每种版本都在标准版的特性上进行了扩展,包括用于远程服务程序开发和调试、SQL Server2005开发的工具,以及完整的、没有限制的开发环境。每种产品都可以单独购买或打包定购。

专业开发人员喜欢自由的使用.NET Framework 2.0,它是一种稳健的、功能齐备的开发环境,支持创建扩展Visual Studio集成开发环境的工具。

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊3.1.3 系统成型

随着即将发布的Windows Vista (内部名称:Longhorn) 和Office 2007,Visual Studio 9携手Windows Server 2008 也渐渐浮出水面。Visual Studio 9 目前可以确定的是支持建立于DHTML 基础上的AJax 技术,这种微软在Visual InterDev 时代提出的基于异步的客户端动态网页技术在当年并没有像微软预期中的那么流行起来,反而随着GMail 等应用的流行而东山再起,渐渐成为主流网络应用开发技术之一。同时Visual Studio 9 会强化对于数据库的支持以及微软新的基于工作流(Workflow)的编程模型。预计为了保持与Office 系列的统一,Visual Studio 9 的名称为Visual Studio 2008。 3.1.4 完整的安全性与错误处理

语言的安全性与错误处理能力,是衡量一种语言是否优秀的重要依据。任何人都会犯错误,即使是最熟练的程序员也不例外:忘记变量的初始化,对不属于自己管理范围的内存空间进行修改,这些错误常常产生难以预见的后果。一旦这样的软件被投入使用,寻找与改正这些简单错误的代价将会是让人无法承受的。C#的先进设计思想可以消除软件开发中的许多常见错误,并提供了包括类型安全在内的完整的安全性能。为了减少开发中的错误,C#会帮助开发者通过更少的代码完成相同的功能,这不但减轻了编程人员的工作量,同时更有效地避免了错误的发生。

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

4. SQL Server 2008主要特点

4.1 C#与https://www.wendangku.net/doc/ef7344679.html,

4.1.1 C#中的数据库访问

用.NET框架编写的(当然也包括用C#编写的应用程序)应用程序需要访问数据库时,将使用https://www.wendangku.net/doc/ef7344679.html,来实现数据库访问。数据绑定是一种非常有用的访问数据库的方法,能够减少需要编写的代码量。很多简单任务可以通过纯粹声明式代码来完成。

<1> https://www.wendangku.net/doc/ef7344679.html,

https://www.wendangku.net/doc/ef7344679.html,是微软的数据访问框架的最新产物,它是.NET框架的一部分。在https://www.wendangku.net/doc/ef7344679.html, 之前,程序员在ASP(Active Server Pages)或Visual Basic中使用ADO(AtiveX Data Objects),这是一组COM(Component Object Model,组件对象模型)组件,它通过一个易于使用的封装类提供对底层数据访问代码的访问。虽然ADO大大简化了数据库访问,但更高级的程序员(特别是C++程序员)通常更喜欢使用更直接、更快的代码,如OLE DB(Object Linking and Embedding for Databases)代码库。

https://www.wendangku.net/doc/ef7344679.html,比ADO的功能更强大。它是在.NET代码中访问数据库的最好工具。

.NET框架中的https://www.wendangku.net/doc/ef7344679.html,类型(在System.Data命名空间及其子空间下的所有类型)包括那些为访问SQL Server、OLE DB、ODBC和Oracle数据库而优化的类型。它们都是基于通用类的,因此使用https://www.wendangku.net/doc/ef7344679.html,访问不同的DBMS是相似的。

https://www.wendangku.net/doc/ef7344679.html,类型实现两个主要的功能。

●数据访问:用于访问数据库中数据和操作数据库的类型;

●数据表示:用于包含数据库数据(如数据表)的类型。

这两种类型之间联系密切,在数据库开发中两种类型都会用到。严格地说,可以只用一种数据库访问类型。然而,如果使用数据访问类型来填充数据表示类型将节省大量工作。

https://www.wendangku.net/doc/ef7344679.html,包含7个重要的基类,其中4个是数据访问类:

● DbConnection;

● DbCommand;

● DbDataReader;

● DbDataAdapter。

其他3个类是数据表示类:

● DataTable;

● DataRelation;

● DataSet。

DataTable类使用了其他一些重要的类:DataColum、Constraint和DataRow,

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

本节也将介绍它们。

1.DbConnection

DbConnection类提供与数据库的连接。创建DbConnection对象时,应提供与DBMS 通信所需的所有信息,如数据库的位置、用于认证的用户名和密码以及要访问的DBMS 中的数据库。

所有其他https://www.wendangku.net/doc/ef7344679.html,数据访问类都依靠DbConnection与数据库进行通信。

在从DbConnection派生而来的类中,到数据库的连接都是由连接字符串定义的,该字符串存储在属性DbConnection.ConnectionString中。

数据库连接应只在传输数据时才打开,因此创建DbConnection实例时并不自动连接到数据库。DbConnection类定义了Open()方法和Close()方法,用于控制连接何时可用。很多其他的https://www.wendangku.net/doc/ef7344679.html,类也能控制连接状态,例如,有些类在完成操作后关闭它们使用的连接。

DbConnection对象还能参与事务。可用DbConnection.BeginTransaction()方法开始事务,或使用DbConnection.EnlistTransaction()作为已有事务的一部分执行操作。

访问SQL Server或SQL Server速成版中的数据时,使用SqlConnection,该类是DbConnection的子类。一般来说,DbConnection和SqlConnection及其他子类都称为连接类。

2.DbCommand

DbCommand类提供与数据库交互的主要方法。可以用DbCommand对象来执行SQL 语句、运行存储过程等。DbCommand及其派生类称为命令类。

大部分时候并不直接使用DbCommand,而是用封装了DbCommand的其他对象。但有时候需要对数据库通信进行更多的控制,这时就可以使用DbCommand对象。

DbCommand中最重要的属性是https://www.wendangku.net/doc/ef7344679.html,mandText。要执行SQL语句,就要将语句文本放在这个属性中。可以用https://www.wendangku.net/doc/ef7344679.html,mandType来指定要执行的语句类型,使用DbCommand.Connection和DbCommand.Tranction来访问底层的连接或事务。

要注意,DbCommand对象可能有参数化的命令字符串,命令中的参数来自类型为DbCommand. Parameters集合的属性。这与直接在命令字符串中输入参数相比有很多优点,在本书后面部分将会看到。

要使用DbCommand对象执行命令,有三种选择,这取决于要执行的命令是什么。有些命令不返回结果,这种情况下可以用DbCommand.ExecuteNonQuery()方法;有些命令返回一个结果,这时可用DbCommand.ExecuteScalar()方法;最后,有很多命令返回多行数据,这时可用DbCommand. ExecuteReader()方法,它将返回一个DbDataReader对象(下一小节将解释)。

SQL Server的DbCommand版本名为SqlCommand。它有自己的一些特殊方法,如SqlCommand. ExecuteXmlReader()方法,它直接以XML格式返回结果。

共 55 页第 8 页

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

3.DbDataReader

使用DbDataReader类可以从结果集中读取数据,如从执行存储在命令对象中的命令生成的结果集中读取数据。该类经过高度优化,可以很快地访问数据库中的数据。然而,这种优化也有些副作用,例如,只能以串行方式一次读取一行数据。不能读完两行后再返回去读取第一行。通常,可以用DbDataReader对象(更确切地说,是数据阅读器的子类对象)来提取要使用的行数据,并将其存储在其他对象中。例如,可以读取一个结果集中的每行,将其存储到在自定义集合或泛型列表对象中的自定义类中。

与命令对象一样,很多时候数据阅读器对象是由https://www.wendangku.net/doc/ef7344679.html,命名空间下的其他类使用的,用户不必直接使用它们。

要使用数据阅读器对象,首先必须调用DbDataReader.Read()方法选择结果集中的第一行。可不断调用该方法来移动数据阅读器,使数据阅读器像结果集中的游标一样总是指向一行。获取一行时,Read()方法返回true;否则返回false—如当所有行都已经读完时。也可以用DbDataReader. HasRows属性来判断结果集中是否还有其他行。

很多属性和方法可用于检查当前选中的行。DbDataReader.FieldCount查看当前行包含多少列,并用DbDataReader的重载索引器访问各列。如果知道要访问的列名,可用基于字符串的索引器来获得列值,也可以使用基于整数的索引器通过位置获得列。在这两种情况下,这种方法都将返回object值,可将其转化为其他类型的数据。

也可以使用DbDataReader提供的多个方法直接获得类型化数据,如GetString()和GetInt32()分别将指定列以string和int值返回,列通过其索引选择。要使用这些方法获得值类型,必须首先使用DbDataReader.IsDBNull检查空值;否则,空值将引发异常。检查空值是必须的,因为不管什么数据库类型都可以为空。这与.NET中的值类型不同,可为空的值类型(如int)在这种上下文环境中是不受支持的。

DbDataReader也能够获得关于它包含的数据的元信息—使用DbDataReader.GetSchema Table()方法,这样就可以知道列的名称、数据类型和其他信息,如列是否包含空值。

与前面的其他类一样,也有专门用于SQL Server的数据阅读器类,这就是SqlDataReader,本书将使用该类。该类继承DbDataReader,提供将数据读取为本地SQL类型的方法,这样就能够避免空类型的问题。这些类型包含在System.Data.Sqltypes命名空间中,是可为空的;如SqlDouble和SqlInt32。虽然这些类型也可以像标准的值类型那样进行操作,但它们实际上是引用类型。

4.DbDataAdapter

在https://www.wendangku.net/doc/ef7344679.html,的核心数据访问类中,最后一个是DbDataAdapter类。它比前面介绍过的类型要复杂得多,设计该类的目的只有一个:减少存储在数据集对象中的数据与数据库进行数据交换时的干扰。与前面的类一样,DbDataAdapter类也有很多派生类,

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊它们统称为数据适配器类。

稍后将详细解释什么是数据集对象,简单地说,它们是能够以.NET对象的形来表示数据库中数据的对象。数据集对象可以包含整个表或多个表的数据。数据适配器既可以将数据库中的数据传输给包含在数据集中的表,也可以将数据集中的数据传输到数据库中。

这个功能由命令对象和数据阅读器对象执行,因此大部分时候用户不必考虑它。然而,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是https://www.wendangku.net/doc/ef7344679.html,提供的第一个数据表示类。与数据访问类不同,数据表示类没有专门用于特定数据库管理系统(如SQL Server)的子类,它们独立于平台。实际上,如果需要的话,数据表示类完全可以独立于数据库使用,它们只是存储数据的一种方便的方法。

DataTable类用于存储(读者可能对此感到不解)数据表。在继续讨论这个类之前需要澄清一件事情:以DataTable对象存储的表不一定要映射到数据库中的表。DataTable可能包含表中数据的一个子集,该子集可能只包含数据库表的部分行、部分列,可能是由数据库中多个表组合而成的数据,还可能是所有这些的组合,这取决于用于获得数据的查询语句。通常,DataTable与数据库中的表匹配,但仍然要知道上面提到的事实。

要获得完全填充的DataTable,可使用数据适配器。有包含数据的DataTable后,就可以访问行、列、约束和它包含的其他信息。这些信息可以通过命名恰切的属性来访问,包括Rows、Columns和Contraints等。

上面提到的3个属性都返回一个集合类(DataRowCollection、DataColumnCollection和ConstaintCollection)对象。与其他集合类一样,这些类可用于在它们包含的对象集合中导航,添加或删除项等。稍后将介绍这些集合包含的

相关文档