VB 2010 (51)ADO.NET组件

    为了更好地支持断开连接的模型,ADO.NET组件将数据访问与数据处理分离。这一操作是通过两个主要的组件来完成的:DataSet和.NET Framework数据提供程序。下图说明了数据访问与数据处理分离的概念。

      DataSet是ADO.N ET断开连接的体系结构的核心组件,用于数据访问,但与具体数据源无关。因此它可以用于多种不同的数据源和ML数据,甚至用于管理应用程序的本地数据,例如内存中缓存的数据。DataSet包含一个集合,集合中有一个或多个由行和列数据组成的DataTable对象,以及主键码、外键码、约束和DataTable对象中数据的关系信息。DataSet本质上是一个内存中的数据库,它不需要关心数据的来源。数据可以来自数据库、XML.文件。甚至同时来自这两者或是其他什么地方。无论数据源位于什么地方,都可以先对DataSet执行插入、更新和删除操作,再把变动保存到数据源中口本章后面将深入讨论DataSet对象家族。
      ADO.N ET体系结构的另—个核心元素是.NET数据提供程序(Data Provider),它的组件用于进行数据处理(和DataSet的数据访问功能相对应)。

下表概述了组成 .NET Framework 数据提供程序的四个核心对象。

 
对象 描述
Connection 建立与特定数据源的连接。 所有 Connection 对象的基类均为 DbConnection 类。
Command 对数据源执行命令。 公开 Parameters ,并可在 Transaction 范围内从 Connection执行。 所有 Command 对象的基类均为 DbCommand 类。
DataReader 从数据源中读取只进且只读的数据流。 所有 DataReader 对象的基类均为 DbDataReader 类。
DataAdapter 使用数据源填充 DataSet 并解决更新。 所有 DataAdapter 对象的基类均为 DbDataAdapter 类。

        DataAdapter使用Command对象在数据源上执行SQL命令,给DataSet加载数据,并把DataSet中已调整的数据返回到数据源中。

.NET Framework 中包含的数据提供程序。

 
.NET Framework data provider — .NET Framework 数据提供程序 描述
用于 SQL Server 的 .NET Framework 数据提供程序 提供 Microsoft SQL Server 的数据访问。 使用 System.Data.SqlClient 命名空间。
用于 OLE DB 的 .NET Framework 数据提供程序 提供对使用 OLE DB 公开的数据源中数据的访问。 使用 System.Data.OleDb 命名空间。
用于 ODBC 的 .NET Framework 数据访问接口 提供对使用 ODBC 公开的数据源中数据的访问。 使用 System.Data.Odbc 命名空间。
用于 Oracle 的 .NET Framework 数据访问接口 适用于 Oracle 数据源。 用于 Oracle 的 .NET Framework 数据提供程序支持 Oracle 客户端软件版本8.1.7 和更高版本,并使用 System.Data.OracleClient 命名空间。
EntityClient 提供程序 提供对实体数据模型 (EDM) 应用程序的数据访问。 使用 System.Data.EntityClient 命名空间。
.NET Framework SQL Server Compact 4.0 的数据提供程序。 提供 Microsoft SQL Server Compact 4.0 的数据访问。 使用 System.Data.SqlServerCe 命名空间。

        选择数据提供程序时要遵循以下原则:首先选择关系数据库管理系统(RDBMS),如果存在对应的数据提供程序,就使用它;如果不存在,就使用.NET OLE DB数据提供程序。大多数RDBMS厂商现在都创建自己的.NET数据提供程序,以鼓励.NET开发人员使用它们的数据库。最后,如果没有OLE DB数据提供程序,就使用.NET ODBC数据提供程序进行ODBC访问。
    因此,如果应用程序使用的是SQL Server,则选择SQL Server .NET数据提供程序。.NET OLE DB数据提供程序用于访问通过OLE DB提供的数据源b后面将详细讨论这些内容。
 

发布了146 篇原创文章 · 获赞 0 · 访问量 2735

猜你喜欢

转载自blog.csdn.net/ngbshzhn/article/details/105600318