DataReader cursor rewind

ぃ、小莉子 提交于 2019-12-04 04:10:10

问题


How do I can rewind a cursor of a DataReader to the beginning?

With one DataReader result I need to run two while loop, but those have to be from beginning. They are two iterations in one result set running a query once.

Example:

dr = command.ExecuteReader(cmd);

while (dr.Read()) { 
    // do some...
}

// rewind cursor here

while (dr.Read()) {
    // do another things...
}

I've looked into the DataReader docs and I've found nothing, so if it can't be possible with DataReader, I may change the class for one that fits this purpose.


回答1:


You cannot (unless you execute the command again): it is a one-way stream. If you want to see the data more than once you'll have to buffer it in memory yourself, for example in a List<T> (for some T), or (yeuch) as a DataTable.



来源:https://stackoverflow.com/questions/14522541/datareader-cursor-rewind

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!