现在的位置: 首页 > 综合 > 正文

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

2012年02月16日 ⁄ 综合 ⁄ 共 1066字 ⁄ 字号 评论关闭
     许多将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

抱歉!评论已关闭.