给定一个OracleDataReader,我如何返回整个结果集

本文关键字:何返回 返回 结果 一个 OracleDataReader | 更新日期: 2023-09-27 18:14:58

下面的代码当前返回一个业务对象列表。虽然它可以工作,但我想减少我们周围的重复代码的数量。由于下面的代码是特定于类型的——每个BO都有自己的ConnecToDbAndGetItems()方法——因此每个BO都会重复使用整个方法。

con.Open();
OracleDataReader dr = cmd.ExecuteReader();
BuildListOfItems(dr, ref itemsToReturn);
con.Close();
dr.Close();

我更喜欢这样的东西,一个易于管理的小增量更改:

con.Open();
OracleDataReader dr = cmd.ExecuteReader();
// Gimme all the data here and
// return that to another method for building BOs
con.Close();
dr.Close();

最终结果是一个通用的数据检索机制,所有GetXXX()方法都可以调用,结果(数组,列表,??)被传递给一个构建器对象进行进一步处理。

我怎样才能从阅读器中得到所有的记录?

给定一个OracleDataReader,我如何返回整个结果集

你可以这样使用DataTable:

DataTable result = new DataTable();
result.Load(dr);

我们在项目中同时使用了DataAdapter和DataReader。我可以说,DataReader提供了更好的性能。您应该设置FetchSize属性以获得更好的性能。