ADO.NET入门:功能、架构与数据提供程序详解
立即解锁
发布时间: 2025-08-20 01:14:33 阅读量: 1 订阅数: 3 


C# 5.0与SQL Server 2012数据库开发实战
### ADO.NET 入门:功能、架构与数据提供程序详解
#### 1. ADO.NET 概述
在多层数据访问模型和 ADO 的连接特性下,容易耗尽服务器资源并造成性能瓶颈。虽然 ADO 在其时代表现出色,但 ADO.NET 具备许多强大特性,使其成为更卓越的数据访问技术。
##### 1.1 ADO.NET 并非 ADO 的新版本
ADO.NET 是全新的数据访问技术,拥有全新的设计。它并非指 ActiveX Data Objects .NET,主要原因有两点:
- ADO.NET 是 .NET 的组成部分,而非外部实体。
- ADO.NET 不是 ActiveX 组件的集合。
微软将其命名为 ADO.NET,是希望开发者能轻松上手,避免感觉需要重新学习。在 .NET 设计过程中,微软意识到 ADO 无法适应 .NET 架构,因此开发了 ADO.NET。
##### 1.2 ADO.NET 的特性
- **连接与断开模式支持**:ADO.NET 支持连接和断开两种数据访问模式。在断开模式下,数据从服务器发送到客户端本地缓存,更新数据库时再将更改后的数据发送回服务器,有效节省服务器资源。
- **XML 标准支持**:ADO.NET 对 XML 标准的支持远超 ADO。不仅可使用 XML 在应用程序间传输数据,还能将应用程序中的数据导出为 XML 文件并本地存储,方便后续使用。
- **性能优化**:与 ADO 不同,ADO.NET 不透明包装 OLE DB 提供程序,而是针对每种数据源使用专门设计的托管数据提供程序,提高了应用程序的速度和性能。
#### 2. ADO.NET 与 .NET 基类库
##### 2.1 数据集与 XML 支持
数据集(DataSet 对象)可在内存缓存中以表(DataTable 对象)、关系(DataRelation 对象)和约束(Constraint 对象)的形式存储大量数据,并可导出到外部文件或其他数据集。由于 ADO.NET 集成了 XML 支持,可生成 XML 架构,通过 XML 文档传输和共享数据。
##### 2.2 ADO.NET 命名空间
ADO.NET 组件按命名空间分组,各命名空间功能如下表所示:
| 命名空间 | 描述 |
| --- | --- |
| System.Data | 定义并部分实现 ADO.NET 架构的类、接口、委托和枚举 |
| System.Data.Common | .NET 框架数据提供程序共享的类 |
| System.Data.Design | 可用于生成自定义类型数据集的类 |
| System.Data.Odbc | .NET 框架的 ODBC 数据提供程序 |
| System.Data.OleDb | .NET 框架的 OLE DB 数据提供程序 |
| System.Data.Sql | 支持 SQL Server 特定功能的类 |
| System.Data.OracleClient | .NET 框架的 Oracle 数据提供程序 |
| System.Data.SqlClient | .NET 框架的 SQL Server 数据提供程序 |
| System.Data.SqlServerCe | .NET 紧凑型框架的 SQL Server Mobile 数据提供程序 |
| System.Data.SqlTypes | 原生 SQL Server 数据类型的类 |
| Microsoft.SqlServer.Server | 用于集成 SQL Server 和 CLR 的组件 |
由于 ADO.NET 紧密集成了 XML 支持,System.Data 命名空间中的一些组件依赖于 System.Xml 命名空间的组件。在创建新应用程序项目时,通常会自动创建对相关程序集的引用。若未自动创建,可按以下步骤添加引用:
1. 在解决方案资源管理器中右键单击“引用”项,然后选择“添加引用”。
2. 在显示的可用引用列表对话框中,依次选择 System.Data、System.Xml 和 System(若尚未存在),可按住 Ctrl 键进行多项选择,然后点击“选择”按钮。
3. 点击“确定”,引用将添加到项目中。
若使用命令行 C# 编译器,可使用以下编译器选项包含所需程序集的引用:`/r:System.dll /r:System.Data.dll /r:System.Xml.dll`。
#### 3. ADO.NET 架构理解
ADO.NET 提供两种架构组件来构建以数据为中心的应用程序:连接和断开架构。所有相关类和函数都位于 System.Data 命名空间中,因此无论选择哪种架构,都需在应用程序中添加对 System.Data 的引用。
##### 3.1 连接数据对象
连接架构依赖于稳定的数据库连接来访问数据并执行操作,涉及的对象如下:
- **Connection**:数据库应用程序的核心对象,用于建立与数据源的连接,每个 .NET 提供程序都有自己的 Connection 对象。
- **Command**:用于处理执行数据操作的语句,如读取、插入或修改数据,SQL 语句通过 Command 对象执行。
- **DataReader**:通过创建 Command 对象实例并调用其 ExecuteReader 方法创建,用于以只读方式从数据源检索数据,具有快速的前向读取特性。
- **Parameter**:在向 Command 传递值时非常重要,可作为存储过程的参数或 SQL 查询的参数。
- **DataAdapter**:用于连接和断开架构之间的桥梁,使应用程序能够建立连接并同步数据源和数据集之间的数据。
##### 3.2 断开数据对象
在复杂的分布式应用环境中,断开架构更具优势。它允许数据检索后以 DataSet 对象的形式本地存储,用户可在本地设备上修改数据,完成后将更改同步到中央数据源。涉
0
0
复制全文
相关推荐










