第 11 期
陈 旭等: 基于 ASP. NET 技术的 Web 人事管理信息系统的设计与实现
·712·
基 于 ASP . NET 技 术 的 W eb 人 事 管 理 信 息
系 统 的 设 计 与 实 现
陈 旭, 张学杰
( 云南 大学 信 息学 院, 云 南 昆明 650091)
摘 要: 微 软推 出的 基于 ASP. NET 的 Web 应用 或动 态网 站开 发 技 术, 使 得 Web 应 用的 开 发 更 加 简 单和 快 捷 。
论述 了一 个基 于 ASP. NET, ADO. NET 和 SQL Server 2000 相 结合 的 Web 人 事管 理系 统 的设 计原 理 、总 体 结构 及
功能 实现, 已 有效 解决了 人事 管理 信息 系统 的 Web 动 态发 布等 问题 , 并设 计 了 DataGrid 控 件 的数 据 添 加方 法 来
增加 数据 处理 的灵活 性。
关键 词: ASP. NET; ADO. NET; SQL; MIS
中图 法分 类号 : TP317
文献 标识码 : A
文章 编号 : 1001- 3695( 2004) 11- 0217- 03
A Human Resource Management Information System
Designed and Realized by ASP. NET Techniques
CHEN Xu, ZHANG Xue- jie
( School of Information, Yunnan University, Kunming Yunnan 650091, China)
Abstract: ASP. NET- based Web application and active Website technology, which are developed by Microsoft company, make
the process of Web application more simple and faster. With combination of ASP. NET, ADO. NET and SQL Server 2000 tech-
nology, the human resource management information system was developed, which can reduce the limitation of information pub-
lished on dynamic Website. Describes the principle of design, structure, function and realization of the system. A new way ma-
king the process of data handling more flexible is also discussed.
Key words: ASP. NET; ADO. NET; SQL; MIS
B/ S 结构相对于传统的 C/ S 结构, 其优势之一是不用开发
和过多考虑客户端的问题, 一切 都交由 浏览器 来处理, 只需 考
虑服务器端的应用和功能, 这样, 大大 简化了 网络应 用的开 发
难度。微软 ASP. NET 技术的推出, 使得 Web 应用 的开发变 得
与 Windows 应用的开发一样方便和快捷, 这极大地推动了 Web
应用的发展。众 所 周知, Web 应 用或 动 态网 站 开发 技术 到 目
前为止经历了四代: ①使用 C, Perl, VB 开发动态网站的 CGI 时
代; ②采用 NSAPI 和 ISAPI 的 SAPI 时代, 这种开发方式对开发
者来说并没有带来方便; ③ 基于 ASP, PHP, JSP 等 的脚 本语 言
时代, 这大 大简化 了动 态网 站的 开发 难度; ④ 组件 技术 时代,
ASP. NET 和 J2EE 是 这 个 时 代 的 代 表。 ASP. NET 是 由 ASP
( Active Server Pages) 发展而来, 它是 完全基 于对象 的, 每个 对
象都有自己的属性、方法 和事件, 开发 人员只 要选用 相应的 控
件并调整其属性, 就 可以建 立业务 解决方 案 [ 1] 。这种 结构 为
Web 应用的开发提供 了一 种面 向对象 的方 法, 这使 得 Web 应
用的开发更为简单、方便和灵活。
利用 ASP. NET 开发与 Windows 桌面应用程序的开发十分
相似, 开发人员无须关心 浏览器 和服务 器的区 别, 也 无需手 动
处理客户端发送到服务器端的数据, 只需专注实现网站的显示
内容和功能。ASP. NET 主 要由 服务 器端 控 件、服务 器端 事 件
处理、多种语言支持、Web 服 务、会话状 态管理、高速 缓存机 制
收稿日期: 2003- 08- 14; 修返日期: 2003- 12- 01
等几部分组成。由于它的服务 器端组 件屏蔽 了一切 与网络 有
关的概念细节, 使得 开发 Web 应用 和开 发普 通单 机应 用一 样
方便。另外, ASP. NET 页面实际上仅仅是一个 文本文 件, 它 以
扩展标记 语言 XML 作 为 其 数 据 格 式, 以 简 单 对 象 访 问 协 议
SOAP 作为其协 议, 当 用 户 用 浏 览 器访 问 这 个 页 面 时, NGWS
( Next Generation Windows Server) 将分析编译这个文件, 生成一
个 NGWS 类的二进制文件( 中间代码) 。实际对 用户请求的 处
理都是由 NGWS 类的二 进制 文件 来 完成, 这 就 实现 了一 次 编
码, 多处运行的目的。
1 基于数据驱动的We b 应 用与 AS P . NET 结 合的 桥
梁———ADO . NET
ADO. NET 是由 ADO( ActiveX Data Objects, ActiveX 数 据
对象) 发展而来 [ 6, 7] , 它是一种无连 接、基于消息的数据 访问模
型。数据源上的数据可以 作为 XML 文 档进行 传输 和存 储, 这
样, 只要应用能够解析 XML, 就能够实现数据访问。
ADO. NET 的 结构如 图 1 所 示, 其核心 在于 DataSet 对象。
DataSet 可以包含任意多个 DataTable( 数据表 ) , 每个 DataTable
都是一张数据库表或视图在 内存中 的映射, 即 数据读 出之后,
DataSet 无需和数据 库 保持 连接, 这节 约了 网 络资 源。DataSet
的有关方法与关 系数 据 模型 完全 一 致, 这使 得 数据 操纵 更 简
洁、直 观, 即 一 个 DataSet 由 任 意 多 个 DataTable 组 成, 每 个
DataTable 又由一个 DataRow( 数据 行) 集、一个 DataColumn( 数
·812·
计算机应用研究
2004 年
据列) 集和与其他 DataTable 的关 系 DataRelation 组 成。另外,
它还提供了主键约束和外键约束。
.NET 数据提供程序
Connection
Command
DataReader
DataAdapter
事务 SelectCommand
InsertCommand
UpdateCommand
DeleteCommand
事务
数据库
DataSet
DataTableConnection
DataTable
DataRowCollection
DataColumnCollection
ConstraintCollection
DataRelationCollection
XML
图 1 ADO. NET 框架 结构
文献[ 3] 对. NET 框架中的三种数 据访问技术 及其效率 进
行了比较, 其结论是 使用 SQL Server 7. 0 及 其后 的版 本 时, 无
论是数据库连接、数据读取还是数据更新方面, ADO. NET 都是
最快速的。所以我们采用 ASP. NET 和 ADO. NET 的 结合来 开
发提出的人事管理信息系统( 图 2) 。
可以通过 SqlConnection. Open 打 开 数 据库 连 接, SqlCommand.
ExecuteNonQuery 来执行 SQL 命令, 再用 SqlConnection. Close 关
闭数据库连接来完成数据库的操作, 而不经过 DataSet, 视应 用
的方便而定。
2 系统设计与实现
我们采用 ASP. NET, ADO. NET 和 SQL Server 2000 技术 相
结合的方式来开 发 Web 人 事管 理信 息 系统。用 ASP. NET 开
发前台的 Web 页面, SQL Server 2000 作 为后 台 数据 库保 存 数
据, 用 ADO. NET 作为两者之间 联系的 桥梁。系 统结 构如 图 4
所示, 数据表关系如图 5 所示。
人事管理系统
系统维护
人事管理
打印
用户及
权限
系统
设置
安全
设置
添加 删除 更新 查询 统计
图 4 系统 设计结 构
行选
打印
列选
打印
打印
预览
表示层
Web表单
数据集
ADO.NET
SQL 受管理
OLEDB 受管
理提供者
提供者
数据库层
编号
1颐n
附属情况
主键:编号+序号
基本情况
主键:编号
编号 1颐1
主键:姓名
爱人情况
编号
1颐n
子女情况
主键:编号+序号
图 2 ASP. NET, ADO. NET 结合框 架
由图 2 中可见, 受管理提供者( Managed Provider) 是 ADO.
NET 在应用和数 据 源间 的桥 梁。ADO. NET 中 提 供了 两 个 数
据访 问 受 管 理 提 供 者: SQL 和 OLE DB。 SQL 主 要 用 于 SQL
Server 7 及其后的版 本, 而 OLE DB 则用 于其 他数 据源。受 管
理提供者包括四 部分: 连接 ( Connection) 、命 令( Command) 、数
据读取 器 ( DataReader) 、数据 适配 器 ( DataAdapter) 。对 数 据
的访问要经历建立并打开连接、执行 SQL 命令、读取 结果数 据
等几个步骤, 也可以通过 DataAdapter 来自动完成。
在数据库中 执行命 令, 有四 种执 行方 法: ExecuteNonQuery
( 执行一个 SQL 语句, 不 返回任 何记录 ) ; ExecuteReader ( 返 回
一个 DataReader 对 象) ; ExecuteScalar ( 执行 SQL 语 句并 返 回
第一 行 的 第 一 列 ) ; ExecuteXmlReader( 执 行 SQL 语 句, 并 以
XML 流的形式返回结果, 仅用于 SQL 受管理提供者) 。
Web表单
DataGrid
数据集
DataSet
DataTable
数据表
DataAdapter
SQL
图 3 ASP. NET, ADO. NET 结合的 具体 实现
DataAdapter 是 DataSet 和数据库之 间的桥 梁, 它建 立在 一
个无连 接、基于 消息 的模 型上, 对信 息进 行循 环处 理和 发送。
其主要功能是从数据库 中查询 数据, 并将 结果放 入 DataSet 的
DataTable 中。DataAdapter. Fill 方法 将 完 成这 个 工 作, 它 可 以
指定在 DataSet 中 形成 的 表的 名字, 也可 以默 认 为 Table( 0) 。
Fill 方法就像一个开关, 调用之 前, DataAdapter 处于空 闲状态;
调用之后, 它将建 立与 数据 库的 连接, 并 执 行 SQL 语 句, 再 将
结果放入 DataSet, 然 后 ASP. NET 的 Web 控件再 从 DataSet 中
取出数据来实现各种功能, 如图 3 所示。Web 表单中的数据可
以放入 DataTable, 再 由 DataAdapter. Update 来更 新 数 据库; 也
图 5 数据表 关系
在大 多数的 Web 应用中, 一 般都只 是采用 了一种 连接 技
术来处理数据交换, 这极 大地限 制了应 用的方 便性和 灵活性。
我们同时运用了两种数 据处理 方式: 在前 台显 示中 运用 Data-
Set, 充 分发 挥了 DataSet 和 DataGrid 控 件的 强大 功能, 使 得 数
据显示快 捷、丰 富、多 样; 在后 台的更新、存储和 删除则使用 了
SQL 命令的形式来完成, 充分发 挥了 SQL 语言 的功能, 使得 对
数据的处理方便而灵活。这样, 用户无论是在表格的方式下还
是在文本框的方式下都能够对数据进行存取和更新, 避免了在
各种页面之间的来回切换, 极大地 方便了 用户的 使用, 而且 对
数 据的操 作也更 加快捷。另外, 我 们在 Web 页面中 用到的 最
主要的显示控件是 DataGrid, 它是 ASP. NET 中 最复杂、最强 大
的 Web 控件 之 一, 可 以 绑 定 到 各 种 数 据 源 上。 特 别 是 对 于
DataTable, DataGrid 可 以自 定义 数据 表的 显示 格式, 也 可以 自
动地按照数据表本身的格式来显示 数据。但是, DataGrid 控 件
只提供了对数据的选择、编辑、排序和翻页的功能, 并没有提供
添加项的功能。由于在很多应 用中都 可能会 用到添 加项的 功
能, 我们通过其数据源结构的添加和 DataGrid 的编辑功能的巧
妙结合, 实现了这一功能。具体的 C#代码如下:
SqlDataAdapter myDataAdapter = new SqlDataAdapter ( ( " select *
from" + Selected_str + " where 编号 = " + num. Text ) , " server = localhost;
database = AdultEdu; uid = sa ; pwd = sa" ) ; / / 数据 库连接
Dat aSet myDataSet = new DataSet( ) ; / / 建立 数据集
myDataAdapt er. Fill ( myDataSet, Selected_str) ;
/ / 将 SQL 语句 结果填 入数 据集的 一个 表中
/ / 在 myDataSet. Tables[ Selected_str] 表 中添 加一个 空行
Dat aTable myDataTable = myDataSet . Tables[ Selected_str] ;
Dat aR ow myR ow = myDataTable . NewR ow( ) ;
/ / 表格第 一列 为序号 , 选 取最 小的序 号添 入
int i; bool flag = fal se;
for( i = 1; i < myDataTable. Rows. Count + 1; i + + )
{
flag = Test_Item _Exist ( i . ToString( ) , Selected_str, num. Text) ;
/ / 条目 i 是 否存在
if( !
{ / / 不 存在
flag)
第 11 期
陈 旭等: 基于 ASP. NET 技术的 Web 人事管理信息系统的设计与实现
·912·
myRow[ 0] = i; / / 中 间有 空序号
break;
} }
if( i > = myDataTable. Rows. Count + 1) myRow[ 0 ] = myDataTable.
Rows. Count + 1; / / 尾部 加入
myRow[ 1] = num. Text; / / 第 二列为 编号
myDataTable. Rows. Add( myRow) ; / / 将 行添 加进表 中
/ * 另 一种添 加方法
object[ ] rowVals = new object[ 3 ] ;
rowVals[ 0 ] = myDataTable. Rows. Count + 1;
rowVals[ 1 ] = num. Text;
rowVals[ 2 ] = " " ;
myDataTable. Rows. Add( rowVals) ;
* /
myDataGrid. DataSource = myDataTable;
/ / 获取 DataGrid 的数 据源 , 添 加新行 后的 表
/ / 获取新 行的 索引值 赋给 myDataGrid. EditItemIndex
myDataGrid. EditItemIndex = myDataTable. Rows. Count - 1;
/ / 使添加 行处 于编辑 模式
myDataGrid. DataBind( ) ; / / 重新 绑定数 据
我们所设计和实现的人事管理系统具有数据的存储和显示
方便快捷、表现形式丰富多样的特点。由于人员基本情 况条目
较多, 如图 6 所示。我们用 DataGrid 控件显示其最常用的选项,
其所有条目如图 7 所示, 我们用 TextBox 控件 组来显示、修改和
添加, 同时还提供了对所有条目的查询、统计和打印功能。
WebForm 1
表单选择:在职人员基本情况 添加新记录
统计方式:人数统计
统计文本输入:
打印列名:姓名,性别,出生日期 查询条件输入:文化程度=大学本科 查询/统计
在职人员基本情况表:查询/统计结果为:5
1976
19660313
文化程度
大学本科
大学本科
云南省昆明市
云南省昆明市
家庭
进入
进入
详细
进入
进入
附属
进入
进入
党员
党员
编号
姓名
性别
出生日期
aaa
002
政治面貌
籍贯
民族
汉
回
001
002
nv男
1 2 3
图 6 DataGrid 控件显 示
在职人员基本情况
Key: 编号
Value0:002
编号
姓名
籍贯
出生日期
政治面貌
参加工作时间
所学专业
现行政职务
专业技术职称
身份证号码
联系电话
特长
详细家庭住址
在职人员个人基本情况
云南省昆明市
002
002
19660313
1988
党员
查看 添加附属情况
性别
民族
文化文化程度
婚姻状况
参加工作地点
来成教院工作时间
任职时间
职称评定时间
身份
手机
岗位
男
回
大学本科
未婚
1988
教师
我们在设计、开发过程中还发现了 DataGrid 的一些缺陷或
不便之处, 有待将 来进一 步改进。如 DataGrid 控件 中, 链接 列
在链接时, 只能传递 DataGrid 绑定数 据源中 的内容 作为 参数,
无法在链接后提 供别 的参 数。另外, DataGrid 在 行编 辑时, 提
供 了 TextBox 控件 作为 输入, 但 其宽 度是固 定、不可 调的。 如
果要调整, 只有使用模板列来对各列进行调整, 这样, 如果是不
同的表格, 就要各自为其设定, 十分不方便。
3 总结
微软 ASP. NET 的推出, 使得 Web 应用的开发变得与 Win-
dows 应用的开发一样方便和快捷, 利 用 ASP. NET 开发和 Win-
dows 桌面应用程序的 开发 十分 相似, 开 发人 员 无须 关心 浏 览
器和服务器的区别, 也无须手动处理客户端发送到服务器端的
数据, 只要把精力放到实现网站的显示效果和网站的功能上即
可。我们描述了 一个 基于 ASP. NET, ADO. NET 和 SQL Server
2000 相结合的 Web 人事管理 系统的 设计原 理、总 体结 构及 功
能实现, 已有效解决 了人 事管理 信息 系统 的 Web 动态 发布 等
问题, 并精心设计了 DataGrid 控件的数据添加方法来增加数据
处 理的灵活性。诸如网页的安全问题、错误处理中提供像 Win-
dows 的消息提示对话框等问题, 有待今后的工作进一步解决。
参考文献:
[ 1]
onny Mack, Doug Seven. ASP . NET 数 据 驱 动 Web 开 发 [ M] . 林
琪, 张伶 , 朱 涛江. 北京 : 中国电 力出版 社, 2003.
[ 2]
mit Kal ani, John Schenken, et al . ASP . NET 命 名 空 间 参 考 手
册———C#编程 篇[ M] . 王小 娜. 北京 : 清 华大学 出版 社, 2003.
[ 3] 金灿, 陈 绪 君 , 等. NET 框 架 中 三 种 数 据 访 问 技 术 及 效 率 比 较
[ J] . 计 算机 应用研 究, 2003, 20( 4) : 155- 157.
aul Dickinson, et al. ADO. NET 高 级 编程 [ M] . 张 晓 明, 等 . 北京 :
[ 4]
中国电 力出 版社, 2003.
[ 5]
ouresh Ardestani, Kevin Hoffman, et al . 高 效掌 握 ADO. NET———C
#编 程篇 [ M] . 张哲峰 . 北京: 清华 大学 出版社 , 2003 . 66- 79.
[ 6] 周治平 . ADO 数据存 取技 术[ J] . 计算 机应用 , 1999 , ( 7) : 93- 95 .
[ 7] 叶德谦 , 马勤勇 . 使 用 ADO. NET 对 关 系 数 据库 的 访 问 [ J] . 微 型
电脑应 用, 2001, ( 8) : 39- 42.
ttp: / / Dot NetJunkies. com [ EB / OL] .
ttp: / / www. wrox. com [ EB / OL] .
ttp: / / www. a5d. com[ EB / OL] .
ttp: / / www. csdn. net[ EB / OL] .
[ 8]
[ 9]
[ 10]
[ 11]
删除
更新
[ 12]
ttp: / / chs. gotdotnet. com / quickstart / aspplus / doc / whatisaspx. aspx
图 7 TextBox 控件显 示
而对于附属情况, 如图 8 所示, 其条目较少, 我们采用了上
述代码和 DataGrid 控 件 所 提 供的 功 能 相 结 合 的 方 式 直 接 在
DataGrid 控件中对其条 目进 行删 除、添 加和 修改, 避 免了 在 页
面间的来回切换。
编号:002
工作单位 职务
添加新记录
在职人员附属情况
附属项目选择:主要工作经历
条目
编号
1
2
编辑
编辑
更新
取消
删
除
删
除
删
除
3
002
002
002
图 8 有 添加 功能的 DataGrid 控 件显示
[ EB / OL] .
[ 13 ]
ttp: / / www. 9seek. com / news / list . aspx? ClassID = 2&NclassID = 4
[ EB / OL] .
[ 14]
ttp: / / www. chinamvp. com / forums / [ EB / OL] .
[ 15]
ttp: / / www. ccw. com. cn / htm / center / prog/ 02 _6 _25 _4 . asp[ EB /
OL] .
[ 16]
[ 17]
[ 18]
ttp: / / www. tech521. com / techData / data / [ EB / OL] .
ttp: / / www. aspx. cn / club / index. asp[ EB / OL] .
tt p: / / www. weiw. com / arti cle / [ EB / OL] .
[ 19]
ttp: / / www. citytea. com / article / sort . asp? classid = 2[ EB / OL] .
作者简介:
陈 旭( 1973- ) , 男 , 硕 士研 究生, 主要 研究 方 向为 计 算 机网 络 安 全、入 侵
检 测; 张学 杰( 1965- ) , 男, 教 授 , 主 要 研 究 方 向 为 高 性 能 计算 、可 重 配
置 计算 技术、嵌入 式系 统、数据 融合、信息 安全 与计算 机网络 。