我有一個返回SqlDataReader的方法(「GetDataReader」,讓我們來調用它)。它位於一個Singleton DataFactory類中,該類維護與數據庫的持久連接。如何從SqlConnection對象中「分離」SqlDataReader?
問題是,返回後,DataReader仍然「連接」到我的DataFactory中的Connection對象。所以,我必須確保調用GetDataReader然後調用Close()上回來DataReader的代碼,否則,「鎖定」的銜接這樣的:
已經有與此相關聯的打開的DataReader必須先關閉的命令。
如何在將數據讀取器從GetDataReader發回之前「分離」DataReader?要麼,要麼克隆它併發回克隆?我不想讓調用代碼總是明確地關閉它。
這裏必須有一個最佳實踐。
更新:
謝謝大家對您的輸入。底線是我需要失去使用DataReader並切換到DataTable的習慣。他們更易於管理。
此外,感謝關於連接池的說明。我知道這件事,但只是沒有把兩個和兩個放在一起,並意識到我正在重新發明輪子。
我已經得到了* *停止使用的DataReader ... – Deane 2010-01-18 16:01:56