• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
somesongs - day day up
别着急,慢慢来吧。
博客园    首页    新随笔    联系   管理    订阅  订阅

将DataReader转化为DataTables的一个简单实现

许多将DataReader转化为DataTables或DataSet的实现,通常是通过循环遍历的办法。现在有一个更为简单的办法,利用 DbDataAdapter类,所有provider的DataAdapters都继承自它。它包含一个Fill方法,需要传入一个 IDataReader参数。我们可以建立一个继承自它的类来调用这个方法。非常轻松的将一个DataReader转换成一个DataTable。不过同时还须覆盖其他一些抽象方法。
     许多将DataReader转化为DataTables或DataSet的实现,通常是通过循环遍历的办法。现在有一个更为简单的办法,利用 DbDataAdapter类,所有provider的DataAdapters都继承自它。它包含一个Fill方法,需要传入一个 IDataReader参数。我们可以建立一个继承自它的类来调用这个方法。非常轻松的将一个DataReader转换成一个DataTable。不过同时还须覆盖其他一些抽象方法。见如下代码:

1using System;
2using System.Data;
3using System.Data.Common;
4
5namespace Midapex.SmartOrm
6{
7 class DataReaderAdapter: DbDataAdapter
8 {
9 public int FillFromReader(DataTable dataTable, IDataReader dataReader)
10 {
11 return this.Fill(dataTable, dataReader);
12 }
13
14 //需要覆盖下面一些方法
15 protected override RowUpdatedEventArgs CreateRowUpdatedEvent(
16 DataRow dataRow,
17 IDbCommand command,
18 StatementType statementType,
19 DataTableMapping tableMapping
20 ) { return null; }
21
22 protected override RowUpdatingEventArgs CreateRowUpdatingEvent(
23 DataRow dataRow,
24 IDbCommand command,
25 StatementType statementType,
26 DataTableMapping tableMapping
27 ) { return null; }
28
29 protected override void OnRowUpdated(
30 RowUpdatedEventArgs value
31 ) { }
32 protected override void OnRowUpdating(
33 RowUpdatingEventArgs value
34 ) { }
35 }
36}

具体使用中可以实例化这个类,调用这个方法进行转化,非常简单。

主要参考翻译自:http://www.eggheadcafe.com/PrintSearchContent.asp?LINKID=628
posted @ 2008-03-22 02:29  somesongs  阅读(590)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3