對於Web開發到底是否應該使用DataReader(探討)
來源:互聯網
上載者:User
對於Web開發到底是否應該使用DataReader? 今天我的那位非常忠實的DataReader哥們又給我說,為什麼不擴充一個DataReader的資料操作類.我沒有回答他的這個問題,只說了句一般Web開發不推薦使用這個東西.(因為以前給他說過這個問題).
那麼到底在Web開發中是否要使用DataReader呢?
首先我們來看下DataReader的概念.(MSDN上的內容)
DataReader是專門為資料處理以及快速地只進、唯讀訪問資料而設計的組件。Connection 對象提供與資料來源的串連。Command 對象使您能夠訪問用於返回資料、修改資料、運行預存程序以及發送或檢索參數資訊的資料庫命令。DataReader 從資料來源中提供高效能的資料流。
大家看Msdn解釋的後半句:
最後,DataAdapter 提供串連 DataSet 對象和資料來源的橋樑。DataAdapter 使用 Command 對象在資料來源中執行 SQL 命令,以便將資料載入到 DataSet 中,並使對 DataSet 中資料的更改與資料來源保持一致。
個人理解,實際上DataSet操作資料庫實際上是用到了DataReader.
那麼DataSet是什麼呢?
DataSetADO.NET DataSet專門為獨立於任何資料來源的資料訪問而設計。因此,它可以用於多種不同的資料來源,用於 XML 資料,或用於管理應用程式本地的資料。DataSet 包含一個或多個 DataTable 對象的集合,這些對象由資料行和資料列以及有關 DataTable 對象中資料的主鍵、外鍵、約束和關係資訊組成。
也就是說DataSet是一個儲存資料到本地化的一個容器.(個人認為)
那麼我為什麼要討論這個問題呢?
就在於DataReader是一直連結資料庫的.DataReader對資料的操作是使用了一個資料庫連結的.而不能想DataSet一樣可以直接將資料庫連結關閉後,在對資料進行操作的.一切都是要在開啟連結的情況下進行操作的.直到操作完關閉掉才釋放資料庫的連結資源.當業務量龐大的時候資料庫連結會一直開啟,耗費資源.
那麼如果我希望返回一個欄位的一個值呢?這個問題非常的難解.因為使用任何一個操作都可以進行.考慮到效率就使用DataReader,不考慮可以使用DataAdapter存放在DataSet中返回.
個人認為不推薦Web開發使用DataReader.
以上都是小弟的一些看法,肯定會有不對的地方.請高手們指點,謝謝了.給我們一個明確的在Web開發中如何靈活使用DataReader和DataSet的方法.