ASP.NET 2.0 中的数据访问

下表显示组成 ADO.NET 数据提供程序的四个核心对象:

表 1. 一个 ADO.NET 数据提供程序的核心对象
对象 描述

Connection

建立到指定资源的连接

Command

对一个数据源执行命令。公开 Parameters,在 ConnectionTransaction 范围内执行。

DataReader

从一个数据源读取只进的只读数据流。

DataAdapter

填充一个 DataSet,解析数据源的更新

Command 对象提供了一些不同的 Execute 方法来启动存储过程,执行查询或者执行非查询语句,例如更新或插入:

1.

ExecuteReader 方法 — 将数据作为一个 DataReader 对象返回。用于任何返回数据的 SQL 查询。

2.

ExecuteScalar 方法 — 返回单独值,例如与特定查询相匹配的记录数,或者数据库功能调用的结果。

3.

ExecuteNonQuery 方法 — 执行不返回任何行的命令。典型的例子是存储过程、插入和更新。

当然,您需要依据初始化 Command 对象时创建的命令来选择正确的 Execute 方法。

ExecuteReader 方法将任何结果都返回到 DataReader 对象。DataReader 对象是查询数据库返回的一个关联的、只进的只读数据流。执行查询时,第一行返回到 DataReader 中。数据流保持到数据库的连接,然后返回下一条记录。DataReader 从数据库中读取行数据时,每行的列值都被读取和计算,但是不能被编辑。

DataAdapter 和 DataSet

虽然连接数据库的应用程序使用 DataReader 就已足够,但是,DataReader 不能很好地支持数据库访问的断开连接模型。而 DataAdapterDataSet 类则满足了这一需求。

DataSet 是 ADO.NET 断开连接体系结构中主要的数据存储工具。填充 DataSet 时,并非通过 Connection 对象将 DataSet 直接连接到数据库。您必须创建一个 DataAdapter 来填充 DataSetDataAdapter 连接数据库,执行查询并填充 DataSet。当 DataAdapter 调用 FillUpdate 方法时,在后台完成所有的数据传输。每个 .NET Framework 的数据提供程序都有一个 DataAdapter 对象。

一个 DataSet 代表一组完整的数据,包括表格、约束条件和表关系。DataSet 能够存储代码创建的本地数据,也能存储来自多个数据源的数据,并断开到数据库的连接。

DataAdapter 能控制与现有数据源的交互。DataAdapter 也能将对 DataSet 的变更传输回数据源中。下列代码说明使用 DataSet 典型情况。

 

 

//返回DataReader

 

public static SqlDataReader GetProducts()
    {
        SqlConnection con = new SqlConnection(conString);
        string selectString = "SELECT * FROM Products";
        SqlCommand cmd = new SqlCommand(selectString, con);
        con.Open();
        SqlDataReader dtr =
          cmd.ExecuteReader(CommandBehavior.CloseConnection);
        return dtr;
    }

posted @ 2008-08-07 09:17  自由无价  阅读(158)  评论(0编辑  收藏  举报