ADO_NET数据访问模型研究
- 格式:pdf
- 大小:263.78 KB
- 文档页数:3
图 1 .NET 框架类库命名空间 与 前 任 ADO 和 OLE DB 不 同 ,ADO.NET 从 一 开 始 就 是 为
张牧笛: 在读硕士研究生
图 2 ADO.NET 对象模型的类关系 与以前 ADO 有所不同的是, 构成 ADO.NET 对象 模 型 中断 开部分的对象是不与连接的对象直接通信, 也不与数据库直接 通信,它 通 过一 个 DataAdapter 对 象的 Fill 方 法 把数 据 从 数 据 库 中转入 DataSet。同样,要把存储在 DataSet 中的更改提交给数据 库,可以将 DataSet 传递给 DataAdapter 对象的 Update 方法。 2.1 连接的对象 Connection 对象,表示与数据源之间的连接。它起到渠道的 作用, 其 他对 象 如 Command 和 DataAdapter 对 象 通 过它 同 数 据 库通信,以提交查询并获取查询结果。
DataTable 对象间的关系。 ADO.NET 这 一 发 展 版 本 同 以 前 的 数 据 结 构 之 间 的 重 要 区
别 就 是 DataSet 对象 的 存 在, 该 对 象 独立 于 任 何数 据 存 储区,作 为 一个 独 立 的存 储 区 运行 。将 数 据集(DataSet)设 想 为始 终 断 开 的记录集, 它对其所包含的数据的源或目标一无所 知 。DataSet 的 里 面 很 像 数 据 库 ,有 表 、列 、关 系 、约 束 、视 图 等 。
术 Key wor ds:ADO.NET,Object Model,DataSet,Facing Str eam,Facing Collection
创
1 引言
新
ADO.NET 是一 组 包 括 在 Microsoft .NET 框 架 中 的 库, 用 于
在.NET 应 用程 序 的 各种 数 据 存储 之 间 通信 。ADO.NET 库 中 包
技 facing stream and facing collection. There are two kinds of objects about database accessing. One is the object for connection, and another is the object for disconnection. It is discussed in detail how to deal with offline data and how to find a method to improve the application performance.
象模型,一种是直接连接到数据库的对象,另一种是断开连接的对象,阐述了面向流和面向集的数据访问方式的区别及其各
自 的 优 点 ,并 重 点 讨 论 了 面 向 集 的 数 据 访 问 方 式 ,即 用 DataSet(数 据 集 )如 何 处 理 脱 机 数 据 ,提 高 应 用 程 序 性 能 。
关 键 词 : ADO .NE T ; 对 象 模 型 ; Da t a Set ; 面 向 流 ; 面 向 集
ADO.NET 适 合 于 建 立 在 Internet 和 Intranet 上 使 用 的 高 效 多层数据库应用程序,如图 2 所示。虚线左边的对象是“连接的” 模型,这些模型直接与数据库通信,以管理连接和事务,并可以从 数 据 库 检 索 数 据 和 向 数 据 库 提 交 所 做 的 更 改 。虚 线 右 边 的 对 象 是 “断 开 连 接 的 ”对 象 ,允 许 脱 机 处 理 数 据 。
能,填补了传统数据访问和 XML 开发之间的空白 。大 多数 基 于
Web 的 应 用 程 序 都 需 要 访 问 数 据 库, 而 ADO.NET 是 专 门 针 对
Web 设 计的,并 且 考 虑 了 伸 缩 性 和 无 状 态 性 。 本 文 通 过 深 入 分
析 ADO.NET 的 各 种 数 据 访 问 对 象,来 阐 释 ADO.NET 数 据 访 问
软件时空 文章编号:1008- 0570(2008)02- 3- 0202- 03
中 文 核 心 期 刊 《 微 计 算 机 信 息 》( 管 控 一 体 化 )2008 年 第 24 卷 第 2-3 期
ADO.NET 数据访问模型研究
Mo d e l Re s e a rch o f Da ta b a s e Acce s s in g o n ADO.NET
2.2 断开连接的对象 ADO.NET 对象 模 型包 括 了 充当 脱 机 数据 缓 存 的类,当 把 查 询 结 果 导 入 到 DataTable 后,就 可 以 关 闭 与 数 据 源 的 连 接 ,并 继 续 使 用 数 据 。因 为 这 些 对 象 不 需 要 与 数 据 源 进 行 活 动 连 接 ,我 们 称其为断开连接的对象。 DataTable 对 象 , 可 以 通 过 行 和 列 的 集 合 查 看 数 据 , 用 DataAdapter 对 象 的 Fill 方 法,可 以 把 查 询 的 数 据 填 充 到 DataT- able 中。 DataSet 对象,它是一种面向集的访问模型,而不是面向流的 访问。DataSet 对象作为一个性能优异的 DataTable 对象的容器, 可以 根 据需 要, 把 数据 库 中 的数 据 都 装入 到 DataSet 对 象中,在 应用程序与数据库之间建立了一个数据缓存, 避免了重复调用 的过程。当对 DataSet 对象中存储的数据进行更改后,所做的更 改 会 简 单 的 缓 存 在 DataRow 中 , 可 以 使 用 GetChange 方 法 ,从 DataSet 中 选 取 所修 改 的 行,通 过 这 种方 式 可 使同 服 务 器之 间 的 数据量变小。 DataRow 对象,要想访问 DataTable 对象中的数据,可 以 使 用 Rows 集 合 ,该 集 合 包 含 了 一 组 DataRow 对 象,可 以 同 过 其 Item 属 性 来读 取 某 一行 某 一 列的 数 据 值。同 以 前 ADO 版 本 不 同 的 是,DataTable 通 过 DataRows 的 集 合 使 得 所 有 数 据 行 都 可 访 问 , 而不是只为当前数据行返回数据。 DataRelation 对象,表 明 DataSet 中 不 同 的 DataTable 对 象 之 间的 关 系 。在数 据 库 里,通 过 定 义外 键 来 联系 两 个 相关 的 表,DataSet 相当于缓存在内存里的数据库, 如何在里面不同的表格之间建 立 联 系 ? DataRelation 对 象 就 是 为 解 决 这 个 问 题 而 产 生 的 。 DataSet 类定义了一个 Relations 属性, 该属性是 DataRelation 对 象 的 集 合 。 可 以 使 用 DataRelation 对 象 表 明 DataSet 中 不 同
- 202 - 360元 / 年 邮局订阅号: 82-946
《现场总线技术应用 200 例》
您的论文得到两院院士关注
软件时空
Command对象,表示对数据库的 查 询 、存储 过 程 的调 用 或 返 回 特 定 表内 容 的 直接 请 求 。 使 用 Command 对 象 查 询 数 据 库 相 当 直 接, 先 设 置 连接 数 据 库的 Connection 对 象 的 Connection 属 性 ,再 指 定 CommandText 文 本 ,并 可 通 过 CommandType 属 性 设 置要执行查询的类型。
DataReader 对象,用 以快 速 检 索查 询 所 返 回 的 行,DataRead- er 对象 是 只 读的 向 前 的,一 次 查 询一 行,移 动到 下 一 行的 同 时 前 一 行 就 会被 放 弃 。 由 于 DataReader 对 象 支 持 最 小 特 性 集,所 以 速度非常快。
含 了 可 与数 据 源 连接 、提 交 查 询 并 处 理 结 果 的 类,还 可 以 将 A-
DO.NET 作为一种强壮、层 次化 的 、断 开连 接 的 数据 缓 存 来使
用 ,以 脱 机 处 理 数 据 。 其 中 最 主 要 的 断 开 连 接 对 象 (数 据 集)可 执
行对 数 据排 序 、搜 索、筛 选 、更 改等 操 作 。数据 集 还 包含 许 多 功
3 面向集的数据访问
ADO.NET 支 持 面 向 流 的 数 据 访 问 (如 DataReader 对 象)和 基 于集 的 数 据 访 问(如 DataSet 对 象),下 面 将 重 点 介 绍 面 向 集 的 数据访问。
使用 DataSet 的最重要的优点是提高性能。由于 DataSet 与 基础数据库断开连接,代码无需经常调用数据库,因而显著地提 升 了性 能 。可 以将 许 多 新行 添 加 到一 个 DataSet 中 的 多 个 数 据 表 中, 并 在 创 建 DataSet 时 检 查 每 一 行 的 有 效 性 和 引 用 的 完 整 性 。 如 果 要 提 交 对 数 据 集 里 的 表 的 更 新 ,DataAdapter 对 象 将 DataSet 连 接到 基 础 数据 库,然 后就 可 以 用一 条 命 令来 更 新 基 础 数据, 如图 3 所示。每个表中的所有新行都是通过该命令添加 的,这确保了添加到数据库中的所有行的有效性。
(1.中国矿业大学;2.江苏省电信公司)张 牧 笛 2 罗 驱 波 1 白 静 宜 1
ZHANG MUDI LUO QUBO BAI J INGYI
摘要:开 发 数 据 库 应 用 程 序 的 时 候 ,如 何 选 择 数 据 库 访 问 方 式 以 及 提 高 其 性 能 至 关 重 要 。通 过 分 析 ADO.NET 访 问 数 据 库 的 对
中 图 分 类 号 : T P 311.13