DataRow
わかりました、 aを aから抽出したいと思いDataReader
ます。私はかなり長い間見回してきましたが、これを行う簡単な方法があるようには見えません。
行のコレクションであると理解していDataReader
ますが、一度に1行しか読み取れません。
だから私の質問: aDataRow
の現在の行から aを抽出する方法はありDataReader
ますか?
DataRow
わかりました、 aを aから抽出したいと思いDataReader
ます。私はかなり長い間見回してきましたが、これを行う簡単な方法があるようには見えません。
行のコレクションであると理解していDataReader
ますが、一度に1行しか読み取れません。
だから私の質問: aDataRow
の現在の行から aを抽出する方法はありDataReader
ますか?
DataReader
次のようなコードがあるため、おそらく質問しています。
static void ViaDataReader(IDataReader rdr)
{
while (rdr.Read())
Console.WriteLine("{0,-27} {1,-46} {2,-25} {3}", rdr[0], rdr[1], rdr[2], rdr[3]);
}
/// ...
ViaDataReader(DbProviderFactories.GetFactoryClasses().CreateDataReader());
ただし、Tim が指摘したように、各反復で が必要になることが事前にわかっている場合は、代わりに使用し、そのプロパティを反復処理する必要があります (次の出力は上記と同じです)。DataRow
DataTable
Rows
static void ViaDataTable(IDataReader rdr)
{
var table = new DataTable();
table.Load(rdr);
foreach (DataRow row in table.Rows)
Console.WriteLine("{0,-27} {1,-46} {2,-25} {3}", row[0], row[1], row[2], row[3]);
}
/// ...
ViaDataTable(DbProviderFactories.GetFactoryClasses().CreateDataReader());
何らかの理由で絶対に を使い続ける必要がある場合は、最初の例にループ インデックス整数を追加し、各反復でDataReader
(完全にプリロードされた) から各行を取得できると思います。DataTable
しかし、は全体的により豊かであるため、 を実行した後DataTable
に を放棄しない理由はまったくありません。DataReader
DataTable.Load()