ADO.NET 结构整理

这些年来工作中的开发任务主要集中在用代码处理业务层面,对数据库的操作一直是用的原来项目沿用下来的数据访问层。这次由于要想在项目中使用Dapper.NET,所以系统学习了下ADO.NET,并对知识点做了相应的整理。本篇近限于 ADO.NET 中直接访问数据源的组件的方式,不包括后来的 LINQ 和 Entity Framework。

ADO.NET 的发展历程

ADO.NET 主要是随着 .NET Framework 发布,从 ADO.NET 2.0 开始算的话有以下四个过程:

  1. .NET Framework 2.0 形成了现有的ADO.NET中直接访问数据源的组件。
  2. .NET Framework 3.5 新增 SqlClient 对 SQL Server 2008 的支持、 LINQ to DataSet 、 LINQ to SQL 和 Entity Framework。
  3. .NET Framework 4 对Entity Framework增加了功能。
  4. .NET Framework 4.5 对SQL Server 的 .NET Framework 数据提供程序新增了功能,同时发布 Entity Framework 5.0。

ADO.NET 中直接访问数据源的组件

ADO.NET中直接访问数据源的组件包含两个部分:.NET Framework 提供的程序和 DataSet。

.NET Framework 提供的程序有4个核心对象:

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

DataSet 包含两大块:

  • DataTable
  • DataRelation

将这两部分连接在一起的是 DataAdapter,DataSet 和 DataTable 用 DataAdapter 的 Fill 方法来填充。

对数据源的操作方法

查询(SELECT)

  • 对于单个值,通过 Command 的 ExecuteScalar 方法。
  • 对于数据集,有两种方式,一种是通过 DataAdapter 的 Fill 方法来填充 DataSet 或 DataTable;另一种是 通过 Command 的 ExecuteReader 方法返回 DataReader 来检索只读数据流。

不返回任何行的操作(INSERT、UPDATE、DELETE)

  • 通过Command的 ExecuteNonQuery。该方法返回受影响行的行数。
  • 通过DataAdapter的 UpdateCommand、InsertCommand、DeleteCommand。

对数据库进行修改(CREATE TABLE、CREATE PROCEDURE、DROP TABLE等)

  • 通过 Command 的 ExecuteNonQuery 方法。

对操作添加参数

  • Command:Command.Parameters.Add 方法
  • DataAdapter:DataAdapter.Paramters.Add 方法
posted @ 2015-04-13 13:30  青石向晚  阅读(196)  评论(0)    收藏  举报