ADO.NET數據集的工作原理
數據集并不直接和數據庫打交道,它和數據庫之間的相互作用是通過.NET數據提供程序中的數據適配器(DataAdapter)對象來完成的。那么數據集是如何工作的呢?
一、應用程序向服務器端發出請求,要求獲取數據。
二、服務器響應的數據發送到數據集,通過.NET數據集提供程序完成。
三、數據集將數據發送客戶端。
四、客戶端修改后存儲到數據集中。
五、數據集統一將修改后的數據保存到服務器中。
ADO.NET數據集DataSet的工作原理如圖所示:
首先,客戶端與數據庫服務器端建立連接。
然后,由客戶端應用程序向數據庫服務器發送數據請求。數據庫服務器接到數據請求后,經檢索選擇出符合條件的數據,發送給客戶端的數據集,這時連接可以斷開。
接下來,數據集以數據綁定控件或直接引用等形式將數據傳遞給客戶端應用程序。如果客戶端應用程序在運行過程中有數據發生變化,它會修改數據集里的數據。
當應用程序運行到某一階段時,比如應用程序需要保存數據,就可以再次建立客戶端到數據庫服務器端的連接,將數據集里的被修改數據提交給服務器,最后再次斷開連接。
把這種不需要實時連接數據庫的工作過程叫做面向非連接的數據訪問。在DataSet對象中處理數據時,客戶端應用程序僅僅是在本地機器上的內存中使用數據的副本。這緩解了數據庫服務器和網絡的壓力,因為只有在首次獲取數據和編輯完數據并將其回傳到數據庫時,才能連接到數據庫服務器。
雖然這種面向非連接的數據結構有優點,但還是存在問題。當處于斷開環境時,客戶端應用程序并不知道其他客戶端應用程序對數據庫中原數據所做的改動。很有可能得到的是過時的信息。
【編輯推薦】