我有下面的代码,目前返回业务对象列表。虽然它有效,但我希望减少我们所处的重复代码量。由于下面的代码是特定于类型的 - 每个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()方法都可以调用,并将结果(数组,列表,???)传递给构建器对象以供进一步处理。
如何从读者那里获取所有记录?
答案 0 :(得分:1)
您可以像这样使用DataTable:
DataTable result = new DataTable();
result.Load(dr);
我们在项目中使用了DataAdapter和DataReader。我可以说,DataReader提供了更好的性能。您应该设置FetchSize属性以获得更好的性能。