zoukankan      html  css  js  c++  java
  • C# DataAdapter

    DataAdapter 用于从数据源检索数据并填充 DataSet 中的表。DataAdapter 还可将对 DataSet 所做的更改解析回数据源。

    1. 从 DataAdapter 填充数据集

      DataAdapter是 DataSet 数据源的桥梁。形象的来说,DataAdapter 是一个运输车,它把信息从数据库运到DataSet中,同样也可以把DataSet中的信息运送到数据库中。

      我们主要使用 DataAdapter 的 fill 方法来讲数据库的信息运送到 DataSet 中。DataSet 相当于在内存中模拟出一个数据库。所以,从数据库来的信息要同样在 DataSet 中有相应的表(我们一般用数据库中真实的表名来命名)来存储。也就是说,我们要告诉 fill 方法,内存中的目标数据库和目标数据表。需要注意的是,使用 DataAdapter 检索表的全部内容会花费些时间,尤其是在表中有很多行时。这是因为访问数据库,定位和处理数据,然后将数据传输到客户端是需要很长时间的。  

    示例:

    // Assumes that connection is a valid SqlConnection object.
    string queryString = "SELECT CustomerID, CompanyName FROM dbo.Customers";
    SqlDataAdapter adapter = new SqlDataAdapter(queryString, connection);
    DataSet customers = new DataSet();
    adapter.Fill(customers, "Customers");

      此示例中所示的代码不显式打开和关闭 Connection。如果 Fill 方法发现连接尚未打开,它将隐式地打开DataAdapter 正在使用的 Connection。如果 Fill 已打开连接,则它还将在 Fill 完成时关闭连接。当处理单一操作(如 Fill 或 Update)时,这可以简化您的代码。但是,执行多项需要打开连接的操作,则可以通过显式调用 Connection 的 Open 方法,对数据源执行操作,然后调用Connection 的 Close 方法。以提高应用程序的性能。应尝试使数据源的连接打开的时间尽可能短,以便释放资源供其他客户端应用程序使用。

      使用方法 fill 的时候,还有其他需要了解的特性。

      1. Fill 填充 DataTable 对象时,会根据 DataTable 是否已经存在来自动创建 DataTable 。具体说明可参考我的另一篇文章 C# DataTable。

      2. 以在同一个 DataTable 上多次使用 Fill 方法。如果主键存在,则传入行会与已有的匹配行合并。如果主键不存在,则传入行会追加到 DataTable 中。如果命令不返回任何行,则不向 DataSet 中添加表,并且不引发异常。

      3. 多次使用方法 fill 。当使用后面的 Fill 调用来刷新 DataSet 的内容时,必须满足以下两个条件:

    a. 该 SQL 语句应该与最初用来填充 DataSet 的语句匹配。

    b. 必须存在键列信息。

    2. DataAdapter 参数 (ADO.NET)

      DbDataAdapter 具有四个用于从数据源检索数据和更新数据源中数据的属性:SelectCommand 属性返回数据源中的数据;InsertCommandUpdateCommand 和 DeleteCommand 属性用于管理数据源中的更改。调用 DataAdapter 的Fill 方法之前必须设置 SelectCommand 属性。在调用 DataAdapter 的 Update 方法之前必须设置InsertCommandUpdateCommand 或 DeleteCommand 属性,具体取决于对 DataTable 中的数据做了哪些更改。例如,如果已添加行,在调用 Update 之前必须设置 InsertCommand。当 Update 正在处理已插入、已更新或已删除的行时,DataAdapter 将使用相应的 Command 属性来处理该操作。有关已修改行的当前信息将通过 Parameters 集合传递到 Command 对象。

    具体示例参考我的另一篇博客 C# SqlDataAdapter

     

    3. DataAdapter DataTable 和 DataColumn 映射 (ADO.NET)

     略

    4. 查询结果分页 (ADO.NET)

     略

     

     

     参考文献:http://msdn.microsoft.com/zh-cn/library/ms254931(v=vs.90)

  • 相关阅读:
    ASP.Net无法连接Oracle的一个案例
    给Oracle添加split和splitstr函数
    笨猪大改造
    设计模式(一)策略模式
    jQuery select 操作全集
    现在的心情
    jquery 自动实现autocomplete+ajax
    c# 配置连接 mysql
    jquery.ajax和Ajax 获取数据
    C# 加密可逆
  • 原文地址:https://www.cnblogs.com/fengkuangshubiaodian/p/2610116.html
Copyright © 2011-2022 走看看