DataReader游标倒带

如何将DataReader的光标倒回到开头?

使用一个DataReader结果我需要运行两个while循环,但那些必须从头开始。 它们是一个运行查询一次的结果集中的两次迭代。

例:

 dr = command.ExecuteReader(cmd); while (dr.Read()) { // do some... } // rewind cursor here while (dr.Read()) { // do another things... } 

我查看了DataReader文档并且我什么也没找到,所以如果使用DataReader无法实现,我可以更改适合此目的的类。

你不能(除非你再次执行命令):它是一个单向流。 如果你想多次查看数据,你必须自己在内存中缓冲它,例如在List (对于某些T ),或者(如此)作为DataTable