zoukankan      html  css  js  c++  java
  • 将DataReader转化为DataTables的一个简单实现

         许多将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
  • 相关阅读:
    poj2661Factstone Benchmark
    完整的微信接口类 (转)
    位运算(转载)
    PHP学习笔记之数组游标操作
    MYSQL数据库数据拆分之分库分表总结 (转)
    webservice使用
    MySQL索引类型总结和使用技巧以及注意事项 (转)
    PHP empty、isset、isnull的区别
    myisam和innodb的区别
    看看PHP迭代器的内部执行过程(转)
  • 原文地址:https://www.cnblogs.com/somesongs/p/1117272.html
Copyright © 2011-2022 走看看