选择ADO.NET结构时,你应该首先选择本地的.NET提供者来为你的数据源进行自定义。如果找不到本地的提供者,你可以使用OLD DB提供者,只要具备为了访问数据源的OLD DB驱动。OLE DB技术在很多年前就已经成为ADO的一部分了,
ADO和ADO.NET的一个关键区别是怎样面对不同数据源的挑战。在ADO中,程序员通常使一个通用的对象集,ADO.NET结构而不需要下层的数据源是什么。例如,如果你想从Oracle数据库中获取一条记录,你使用与在SQL Server中完成相同任务的同样的Connection类。这种情况在ADO.NET中不会发生,因为后者使用了数据提供者(data provider)模型。
ADO.NET数据提供者
数据提供者(data provider)是一个ADO.NET类集,它允许你访问特定的数据库,执行SQL命令,获取数据。ADO.NET结构本质上,数据提供者是应用和数据源的桥梁。这些类包装数据提供者包含如下内容:Connection: 你使用这个对象去建立到数据源的连接。
Command: 你使用这个对象执行SQL命令和存储过程。DataReader: 这个对象提供从查询中快速地、前向地(forward-only)、只读地(read-only)访问数据。DataAdapter: 这个对象执行两项任务。第一项,你可以使用它来将从数据源获取的特定信息填充DataSet(DataSet是一个非连接的表和关系的集合)。第二项,你可以使用它将修改后的内容应用到数据源。#T#
ADO.NET并没有包含通用的的数据提供对象。相反,它为不同类型的数据源提供了不同的数据提供者。每个数据提供者都有为优化特定的关系数据库管理系统(RDBMS)的Connection, Command, DataReader和DataAdapter类的特定的实现。例如,ADO.NET结构如果你想创建到SQL Server数据库的连接,你需要使用SqlConnection连接类。
ADO.NET提供者模型的一个基本的思想是可扩展性。换句说话,程序员能够为私有的数据源创建自己的提供者。事实上,可以找到大量的概念示例来帮助你了解如何简便地创建自定义的ADO.NET提供者,ADO.NET结构以便于包装非关系的数据存储,如文件系统或者目录服务。一些第三方开发者有自定义的.NET提供者出售。