1

OleDBDataReader の読み取りを保存する際のベスト プラクティスを探しています。基本的に、reader["Column"] のような同じ辞書を保持する必要があります。「行」で構成されるデータ構造を返す API を作成しています。辞書の ArrayList を作成するよりも良い解決策が必要だと思いますが、これに対する「ベストプラクティス」を見つけることができないようです。

以下のコードは、現在のプロジェクトから取得したものです

using (var commandToQueryDB = new OleDbCommand(query))
{
     commandToQueryDB.Connection = Connection;
     Connection.Open();
     var reader = commandToQueryDB.ExecuteReader(); 
     while (reader.Read())
     {
          //Insert reader's read in some sort of data structure
     }
}

クエリを反復処理してから、各クエリに辞書としてアクセスできるようにしたいと思います (たとえば、DistrictName を列とするテーブルがある場合は query["DistrictName"])。

4

1 に答える 1

1

リーダーは「バケット」ではなく「パイプ」です。リーダー API は、切断されたデータには適していません。そのためには、データのスキーマを知っているかどうかに依存します。

コンパイル時にスキーマがわかっている場合は、型付きクラス モデルを作成しますList<Foo>。これをさらに簡単にするツールがあり、メンバーの人口を処理します。「ダッパー」が頭に浮かびます(私は偏見がありますが)。

事前にスキーマがわからない場合は、DataTable適切な場合があります。通常はお勧めしませんが、ここでは機能します。ただ:

table.Load(reader);

DataTableスキーマ (列) と値 (行/セル)を入力するには十分です。

于 2013-06-27T17:13:15.183 に答える