给定一个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()方法都可以调用,结果(数组,列表,??)被传递给一个构建器对象进行进一步处理。
我怎样才能从阅读器中得到所有的记录?
你可以这样使用DataTable:
DataTable result = new DataTable();
result.Load(dr);
我们在项目中同时使用了DataAdapter和DataReader。我可以说,DataReader提供了更好的性能。您应该设置FetchSize属性以获得更好的性能。