圖文演示ADO.NET數據集工作原理
我想程序員都知道數據集的概念,但是你知道ADO.NET數據集的工作原理機制嗎?我在網上收集了許多資料,自己也從工作中總結了一點經驗。下面我們就一起來看看吧!ADO.NET數據集數據集DataSet的工作原理請參見圖所示:

圖所示的過程就是ADO.NET數據集DataSet的工作原理。首先,客戶端與數據庫服務器端建立連接。然后,由客戶端應用程序向數據庫服務器發(fā)送數據請求。數據庫服務器接到數據請求后,經檢索選擇出符合條件的數據,發(fā)送給客戶端的數據集,這時連接可以斷開。接下來,數據集以數據綁定控件或直接引用等形式將數據傳遞給客戶端應用程序。如果客戶端應用程序在運行過程中有數據發(fā)生變化,它會修改數據集里的數據。當應用程序運行到某一階段時,比如應用程序需要保存數據,就可以再次建立客戶端到數據庫服務器端的連接,將數據集里的被修改數據提交給服務器,最后再次斷開連接。
把這種不需要實時連接數據庫的工作過程叫做面向非連接的數據訪問。在DataSet對象中處理數據時,客戶端應用程序僅僅是在本地機器上的內存中使用數據的副本。這緩解了數據庫服務器和網絡的壓力,因為只有在首次獲取數據和編輯完數據并將其回傳到數據庫時,才能連接到數據庫服務器。
雖然這種面向非連接的數據結構有優(yōu)點,但還是存在問題。當處于斷開環(huán)境時,客戶端應用程序并不知道其他客戶端應用程序對數據庫中原數據所做的改動。很有可能得到的是過時的信息。
案例學習:通過編碼創(chuàng)建DataSet對象
新建窗體命名為Form5.cs,雙擊Form5的窗體界面,進入后臺編碼區(qū)域,在其窗體加載初始化事件中鍵入如下代碼:
- private void Form5_Load(object sender, EventArgs e)
- {
- //建立SQL Server數據庫連接
- string connstring = "Data Source=(local);Initial Catalog=school;User ID=sa";
- SqlConnection connection = new SqlConnection(connstring);
- connection.Open();
- string sqlstring = "select * from student";
- SqlCommand mycom = new SqlCommand(sqlstring, connection);
- SqlDataAdapter adapter = new SqlDataAdapter();
- adapter.SelectCommand = mycom;
- //創(chuàng)建DataSet對象
- DataSet SQLds = new DataSet();
- adapter.Fill(SQLds);//通過SqlDataAdapter對象填充DataSet對象
- //釋放數據庫連接資源。要養(yǎng)成了好的編程習慣,操作完數據后記住打掃垃圾!
- connection.Dispose();
- connection.Close();
- connection = null;
- }
【編輯推薦】