我需要通過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. rails每個迭代器迭代兩次
- 3. PHP - 迭代兩次泛型迭代
- 4. zip()替代迭代通過兩個迭代
- 5. VBA:通過一系列迭代,每次
- 6. 迭代通過文件多次
- 7. 通過迭代
- 8. 通過迭代
- 9. 避免兩個迭代通過列表
- 10. 通過兩個Berkeley DB迭代
- 11. 通過兩個稀疏矩陣迭代
- 12. 每次兩個迭代器?
- 13. 間歇性第一次迭代失敗,但第二次迭代通過
- 14. 通過#defines迭代
- 15. 迭代通過HashMap
- 16. 迭代通過c#
- 17. 迭代通過組
- 18. 通過迭代iterrows
- 19. 迭代通過JSP
- 20. 迭代通過CompositeCollection
- 21. 迭代通過tensorflow
- 22. 迭代通過MultiSelectList
- 23. 通過DynamicJsonObject迭代
- 24. 迭代通過類
- 25. 迭代通過IHtmlElementCollection
- 26. 迭代通過DS.hasMany
- 27. 通過JEditorPane迭代
- 28. 通過迭代豬
- 29. 迭代通過流
- 30. 迭代通過XML
你爲什麼試圖避免數據集?如果這是性能問題,您可以查看DataRow對象上的ItemArray。使用它而不是使用列索引器可以更快。 – 2010-07-08 20:42:19
這是幾十萬行。我會研究,謝謝! – Pascal 2010-07-09 15:10:48