0

私は現在、それぞれ DataReader と DataRow を含む 2 つのラッパー クラスを持っています。ラッパー クラスは、同じインターフェイス IIndexer を実装します。値を取得するために列にインデックスを付けるだけのメソッドがたくさんあるため、それらが使用されます。

次に例 を示します。同じコードを使用して DataRow または DataReader から読み取るにはどうすればよいですか?

ここで、Insert ステートメントの 3 番目のオプションが必要です。現在、DataRow を取得するための DataTables はなく、Db から読み取る必要もありません。

これは、IndexerWrapper (または DictionaryWrapper) を使用することで実現できます。

public class IndexerWrapper : IIndexer
{
    private readonly Dictionary<string, object> _indexer;

    public DataReaderWrapper(Dictionary<string, object> indexer)
    {
        _indexer = indexer;
    }

    public object this[string index]
    {
        get { return _indexer[index]; }
    }
}

データベーステーブルの列情報が既にあるので、列をループして列名をキーとして追加します。

それを行うより良い方法はありますか?初期化する必要があるので、これはあまり便利ではありません。パフォーマンスはどうですか?これは将来、大きな質量に使用される可能性があり、現在は項目ごとに列名が保存されています。DataRows のコレクションと比較して、実際にオーバーヘッドはありますか?

ありがとう - マティ

4

0 に答える 0