随笔- 10  文章- 1  评论- 31 
     许多将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 on 2008-03-22 02:29 somesongs 阅读(69) 评论(0)  编辑 收藏 网摘 所属分类: Utils Collection

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索


相关链接: