我的任務是創建一個客戶端可以用來從特定數據源獲取數據的類。例如,主要程序將我應該如何跟蹤打開的DataReader?
IDataReader GetDataReader(DbCommand command);
DataSet GetDataSet(DbCommand command);
我知道,數據訪問應用程序塊做到這一點,但我不能使用的應用程序塊的原因,我就不解釋了。無論如何,我打算借用一些邏輯。
但是,我的另一部分任務是跟蹤打開的DataReader。這只是爲了驗證每個人正確關閉他們的讀者。我的計劃是在這個新類中只有一個DataReader集合,每次調用GetDataReader例程時都會添加它。在應用程序執行結束時,代碼將通過此集合並將警告記錄到每個仍處於打開狀態的閱讀器的文件中。
所以,我有2個問題:
- 有什麼內在的錯誤這樣的設計?
- 是否有無論如何我可以從DataReader執行SQL命令?這將大大簡化搜索未關閉的閱讀器。或者,我是否必須存儲讀取器/命令對才能獲取這些信息?
Duplicate:http://stackoverflow.com/questions/941126/how-to-manage-sqldatareaders-in-a-data-access-layer – scottm 2009-06-10 18:29:49