1

我正在寻找存储 OleDBDataReader 读取的最佳实践。本质上,我希望它保留与 reader [“Column”] 相同的字典。我正在编写一个返回由“行”组成的数据结构的 API。我觉得必须有比创建字典的 ArrayList 更好的解决方案,但我似乎无法为此找到“最佳实践”。

下面的代码取自我当前的项目

using (var commandToQueryDB = new OleDbCommand(query))
{
     commandToQueryDB.Connection = Connection;
     Connection.Open();
     var reader = commandToQueryDB.ExecuteReader(); 
     while (reader.Read())
     {
          //Insert reader's read in some sort of data structure
     }
}

我希望能够遍历查询,然后将每个查询作为字典访问(例如,如果我有一个以 DistrictName 作为列的表,则为 query["DistrictName"])

4

1 回答 1

1

阅读器是“管道”,而不是“桶”——阅读器 API 不适合断开连接的数据。为此,这取决于您是否知道数据的架构。

如果您在编译时确实知道架构,那么填充一个类型化的类模型- 只需 aList<Foo>就可以了。有一些工具可以让这变得更简单,为您处理会员数量等;“小巧玲珑”跃入脑海(尽管我有偏见)。

如果您事先知道架构,那么DataTable可能是合适的。我通常不推荐它,但它在这里完成了工作。只是:

table.Load(reader);

足以填充DataTable包含模式(列)和值(行/单元格)。

于 2013-06-27T17:13:15.183 回答