我需要通过DataReader迭代两次。有没有办法做到这一点,而不使用数据集,并没有运行两次查询?顺便说一句,我正在使用C#。
谢谢通过DataReader迭代两次
1
A
回答
2
0
IDataReader
规范不允许列表重置,但检查具体实现还实现IEnumerator
或具有GetEnumerator()
函数有一个复位命令作为该接口的一部分。
+0
如果Reset方法在该类上工作,并且不会抛出'NotImplementedException',它很可能会重新查询数据库。 – 2010-07-08 20:36:49
2
这是可能的,但并不那么简单,因为数据读取器在每次Read()调用时都会发生变化。所以你需要将以前的值存储在某个地方以便下次访问它。在这里使用数据集并不是什么坏主意。
3
它是一个只读的阅读器,你不能回头。你最好的选择是,不要迭代两次数据读取器,而是在一次迭代中执行你想要做的两个操作。
你可以自己缓存结果,但这就像摧毁DataReader的目的,所以如果你需要多次使用数据,你必须选择另一种方式来访问它。
相关问题
- 1. 无法让RhinoMock迭代通过DataReader
- 2. PHP - 迭代两次泛型迭代
- 3. VBA:通过一系列迭代,每次
- 4. 迭代通过文件多次
- 5. 通过迭代
- 6. 通过两个Berkeley DB迭代
- 7. 避免两个迭代通过列表
- 8. 每次两个迭代器?
- 9. 间歇性第一次迭代失败,但第二次迭代通过
- 10. 迭代通过c#
- 11. 通过NSArray迭代
- 12. 迭代通过tensorflow
- 13. 迭代通过流
- 14. 迭代通过组
- 15. 通过迭代iterrows
- 16. 迭代通过PHP
- 17. 通过迭代猪
- 18. 迭代通过类
- 19. 通过StringProperty迭代
- 20. 迭代通过JSP
- 21. 通过DynamicJsonObject迭代
- 22. 通过#defines迭代
- 23. 迭代通过CompositeCollection
- 24. 的情况下循环计算第二次迭代两次,跳过第三次迭代
- 25. 如何在数组内迭代两次
- 26. Python - 重复迭代器两次
- 27. Java Bubble排序迭代只有两次
- 28. 迭代通过IPersistentCollection项目
- 29. 通过迭代的NSSet
- 30. 迭代通过的10K
你为什么试图避免数据集?如果这是性能问题,您可以查看DataRow对象上的ItemArray。使用它而不是使用列索引器可以更快。 – 2010-07-08 20:42:19
这是几十万行。我会研究,谢谢! – Pascal 2010-07-09 15:10:48