5

DataSetをDataReaderに変換するにはどうすればよいですか?

4

6 に答える 6

13

次のコードを使用して、データセットを次のように変更できますDataReader

DataTableReader rd = ds.Tables[0].CreateDataReader();
于 2013-02-21T10:35:11.870 に答える
4

DataSetとDataTableはどちらも、DataTableReaderを作成するメソッドCreateDataReaderを公開しています。これらのリンクを確認してください-

http://msdn.microsoft.com/en-us/library/system.data.dataset.createdatareader.aspx

http://msdn.microsoft.com/en-us/library/system.data.datatable.createdatareader.aspx

于 2010-08-20T09:58:10.577 に答える
0

DataSetCreateDataReaderを作成するというメソッドがありDataTableReaderますが、を作成できるとは思いませんDataReader

DataSet.CreateDataReader

于 2010-08-20T09:51:32.550 に答える
0

DataSetは、切断されたメモリ内オブジェクトです。DataReaderは、接続された単方向オブジェクトです。

だからそれは不可能だと思います。

本当に必要ですか?

于 2010-08-20T09:52:18.633 に答える
0

DataSetを反復処理する場合は、DataReaderは必要ありません。DataSetは切断されたメモリ内オブジェクトであるため、for-eachを使用して反復処理します。

foreach(var row in ds.Tables["YourTable"])
{
     var value = row.Field<int>("ID"); // etc
}
于 2010-08-20T09:55:13.747 に答える
0

DataSetをDbDataReaderに変換することはできません。

ただし、DataSetでCreateDataReaderメソッドを呼び出すことにより、DataSetから結果を読み取るDbDataReaderを作成できます。

しかし、これは奇妙なことのように思えます。DataSetのTablesプロパティとDataTableのRowsプロパティを使用して、DataSetに含まれる結果を簡単に繰り返すことができます。DbDataReaderを使用すると、結果へのアクセスのみを転送するように制限されます。DbDataReaderを使用することで得られる唯一の利点は、パラメーターとして必要なAPI呼び出しを行う場合です。

DataSetがデータベースからのSELECTコマンドの結果である場合は、DbCommand.ExecuteReader()を呼び出すことでDbDataReaderを取得できるはずです。これにより、DataSetが完全に切り取られ、より効率的な結果が得られます。

于 2010-08-20T10:29:10.730 に答える