知识大全 ADO.Net与ADO在数据内存中的差异讨论

Posted 数据库

篇首语:笛里谁知壮士心,沙头空照征人骨。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ADO.Net与ADO在数据内存中的差异讨论相关的知识,希望对你有一定的参考价值。

ADO.Net与ADO在数据内存中的差异讨论  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  数据的内存中表示形式

  在 ADO 中 数据的内存中表示形式为记录集 在 ADO NET 中 它为数据集 它们之间有重要的差异

  表的个数

  记录集看起来像单个表 如果记录集将包含来自多个数据库表的数据 则它必须使用 JOIN 查询 将来自各个数据库表的数据组合到单个结果表中

  相反 数据集是一个或多个表的集合 数据集内的表称为数据表 明确地说 它们是 DataTable 对象 如果数据集包含来自多个数据库表的数据 它通常将包含多个 DataTable 对象 即 每个 DataTable 对象通常对应于单个数据库表或视图 这样 数据集可以模仿基础数据库的结构

  数据集通常还包含关系 数据集内的关系类似于数据库中的外键关系 即它使多个表中的行彼此关联 例如 如果数据集包含一个有关投资者的表和另一个有关每个投资者的股票购买情况的表 则数据集可能还包含一个关系来连接投资者表的各个行和购买表的对应行

  由于数据集可以保存多个独立的表并维护有关表之间关系的信息 因此它可以保存比记录集丰富得多的数据结构 包括自关联的表和具有多对多关系的表

  数据导航和游标

  在 ADO 中 您使用 ADO MoveNext 方法顺序扫描记录集的行 在 ADO NET 中 行表示为集合 因此您可以像依次通过任何集合那样依次通过表 或通过序号索引或主键索引访问特定行 DataRelation 对象维护有关主记录和详细资料记录的信息 并提供方法使您可以获取与正在操作的记录相关的记录 例如 从 Investor 表的 Nate Sun 的行开始 可以定位到 Purchase 表中描述其购买情况的那组行

   游标 是数据库元素 它控制记录导航 更新数据的能力和其他用户对数据库所做更改的可见性 ADO NET 不具有固有的游标对象 而是包含提供传统游标功能的数据类 例如 在 ADO NET DataReader 对象中提供只进 只读游标的功能 有关游标功能的更多信息 请参见数据访问技术

  将打开连接的时间降至最低

  在 ADO NET 中 打开连接的时间仅足够执行数据库操作 例如 选择 (Select) 或 更新 (Update) 您可以将行读入数据集中 然后在不保持与数据源的连接的情况下使用它们 在 ADO 中 记录集可以提供不连接的访问 但 ADO 主要是为连接的访问设计的

  ADO 和 ADO NET 中的不连接处理之间存在一个显著差异 在 ADO 中 通过调用 OLE DB 提供程序来与数据库通信 但在 ADO NET 中 您通过数据适配器(OleDbDataAdapter SqlDataAdapter OdbcDataAdapter 或 OracleDataAdapter 对象)与数据库通信 这将调用 OLE DB 提供程序或基础数据源提供的 API ADO 和 ADO NET 之间的主要区别在于 在 ADO NET 中 数据适配器允许您控制将对数据集所做的更改传输到数据库的方式 方法是实现性能优化 执行数据验证检查或添加其他任何额外处理

  注意 数据适配器 数据连接 数据命令和数据读取器是组成 NET Framework 数据提供程序的组件 Microsoft 和第三方供应商可能会提供其它提供程序 这些提供程序也可集成到 Visual Studio 中 有关不同 NET 数据提供程序的信息 请参见 NET 数据提供程序

  在应用程序间共享数据

  在应用程序间传输 ADO NET 数据集比传输 ADO 不连接的记录集要容易得多 若要将 ADO 不连接的记录集从一个组件传输到另一个组件 请使用 封送 若要在 ADO NET 中传输数据 请使用数据集 它可以传输 XML 流

  相对于 封送 XML 文件的传输提供以下便利之处

  更丰富的数据类型

   封送提供一组有限的数据类型(由 标准定义的那些类型) 由于 ADO NET 中的数据集传输基于 XML 格式 所以对数据类型没有限制 因此 共享数据集的组件可以使用这些组件一般会使用的任何丰富的数据类型集

  性能

  传输大型 ADO 记录集或大型 ADO NET 数据集会使用网络资源 随着数据量的增长 施加于网络的压力也在增加 ADO 和 ADO NET 都使您可以最大限度地降低所传输的数据 但 ADO NET 还提供另一个性能优势 ADO NET 不需要数据类型转换 而需要 封送来在组件间传输记录集的 ADO 则需要将 ADO 数据类型转换为 数据类型

  穿透防火墙

  防火墙可以影响试图传输不连接的 ADO 记录集的两个组件 请记住 防火墙通常配置为允许 HTML 文本通过 但防止系统级请求(如 封送)通过

cha138/Article/program/net/201311/13083

相关参考

知识大全 ADO.NET Entity Framework存取数据库中的图片

ADO.NETEntityFramework存取数据库中的图片  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来

知识大全 数据访问与ADO.NET

数据访问与ADO.NET  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!ADONET的设计目标  A

知识大全 ADO.NET的并行控制与数据存取冲突侦测

ADO.NET的并行控制与数据存取冲突侦测  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 在 ADO 和 ADO.NET 中管理离线数据

在ADO和ADO.NET中管理离线数据  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  您可以使用

知识大全 用ADO.NET处理层次数据

用ADO.NET处理层次数据  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ADONET为数据在

知识大全 ado.net 如何读取 excel

   经常需要在数据库与Execl之间互导数据net时代ADONET可以使用使用MicrosoftJetOleDb访问访问Excel网上已经有很多类似的资源最典型也是最简

知识大全 ADO.net中数据库连接方式

ADO.net中数据库连接方式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在MSDN中net

知识大全 ADO.NET操纵数据库

ADO.NET操纵数据库  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ADONET提供了Con

知识大全 迈向Data 2.0——在客户端操作ADO.NET数据服务

迈向Data2.0——在客户端操作ADO.NET数据服务  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下

知识大全 绑定到ADO.NET数据源

.net开发实例:绑定到ADO.NET数据源  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本示