圖示介紹ADO.NET數(shù)據(jù)集相關(guān)使用
微軟對于ADO.NET進(jìn)行長期的研究發(fā)展,不管是用戶還是技術(shù)人員都已經(jīng)了解ADO.NET了,這里就說一下自己的看法,和大家討論討論。ADO.NET數(shù)據(jù)集工作原理請參見下面的圖示說明:
所示的流程就是數(shù)據(jù)集DataSet的工作原理。首先,客戶端與數(shù)據(jù)庫服務(wù)器端建立連接。然后,由客戶端運(yùn)用 程序向數(shù)據(jù)庫服務(wù)器發(fā)送數(shù)據(jù)請求。數(shù)據(jù)庫服務(wù)器接到數(shù)據(jù)請求后,經(jīng)檢索選擇出符合條件的數(shù)據(jù),發(fā)送給客戶端的數(shù)據(jù)集,這時(shí)連接可以斷開。
接下來,ADO.NET數(shù)據(jù)集以數(shù)據(jù)綁定控件或直接引用等形式將數(shù)據(jù)傳遞給客戶端運(yùn)用 程序。如果客戶端運(yùn)用 程序在運(yùn)行流程中有數(shù)據(jù)發(fā)生變化,它會修改數(shù)據(jù)集里的數(shù)據(jù)。當(dāng)運(yùn)用 程序運(yùn)行到某一階段時(shí),比如運(yùn)用 程序須要保存數(shù)據(jù),就可以再次建立客戶端到數(shù)據(jù)庫服務(wù)器端的連接,將數(shù)據(jù)集里的被修改數(shù)據(jù)提交給服務(wù)器,***再次斷開連接。#t#
把這種不須要實(shí)時(shí)連接數(shù)據(jù)庫的工作流程叫做面向非連接的數(shù)據(jù)訪問。在DataSet對象中處理數(shù)據(jù)時(shí),客戶端運(yùn)用 程序僅僅是在本地機(jī)器上的內(nèi)存中運(yùn)用數(shù)據(jù)的副本。這緩解了數(shù)據(jù)庫服務(wù)器和網(wǎng)絡(luò)的壓力,因?yàn)橹挥性?**獲取數(shù)據(jù)和編輯完數(shù)據(jù)并將其回傳到數(shù)據(jù)庫時(shí),才能連接到數(shù)據(jù)庫服務(wù)器。
雖然這種面向非連接的數(shù)據(jù)結(jié)構(gòu)有優(yōu)點(diǎn),但還是存在疑問。當(dāng)處于斷開環(huán)境時(shí),ADO.NET數(shù)據(jù)集運(yùn)用程序并不知道其他客戶端運(yùn)用 程序?qū)?shù)據(jù)庫中原數(shù)據(jù)所做的改動。很有可能得到的是過時(shí)的信息。