摘要:DataSet與DataAdapter,為何不需要開啟資料庫連線與關閉之?
我加上一行程式,您運作看看就懂了。
有一位讀者來信詢問書本(ASP.NET專題實務 / 文魁出版)裡面,
第十四章講述 DataSet的這一句話:
DataSet(資料集)可獨立於任何資料來源之外,而進行資料存取。
因為DataSet一旦連接到資料來源(如:資料庫)並透過DataAdapter取得資料後,就會立刻離線,並且把獲得的資料放在主機的記憶體裡面,等待日後應用。
因此DataSet是一種 "離線(Disconnect)"的資料存取,不需要長時間與資料來源保持連接的狀態。
==============================================================================
其實,只用文字來解釋,很難瞭解程式與裡面的道理。
就好像練武功,
一直背誦口訣,但從來不下場練習.......口訣也是白念。
觀念還是抽象、還是不懂
我在書本原有的範例,加上 2行程式碼(請看下面的第13 / 21行)
一執行,您就懂了!

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

--------------------------------------------------------------------------------------------------------------
在公布答案之前,給你猜一猜:
第一個 Conn.State的結果是?
第二個 Conn.State的結果是?
答案很特別,兩個 Conn.State都是「Close」的狀態。
哈哈哈哈~~~想不到吧??
您可以發現:
程式中的第8行,並沒有寫上 Conn.Open() 以開啟資料庫的連線。但程式一樣可以執行順暢,因為會自動開啟資料庫的連線。
第16行,DataAdapter執行 .Fill()方法之後,資料庫的連線就自動離線了。不信的話,我寫上第13 / 21行以資證明。
這幾行程式,就是上面的文字敘述 ---- 因為DataSet一旦連接到資料來源(如:資料庫)並透過DataAdapter(資料配接器)取得資料後,就會立刻離線
因此最後(第29~32行)也不需要自己寫程式去作 Conn.Close()
有沒有比較好瞭解呢?
用「程式」來印證書本上的觀念,
用「動手作」來輔助腦袋的理解
事情就很簡單囉。
ADO.NET的 DataReader與 DataSet是很基礎的資料存取觀念,
能實作它,就會懂得快。
相關文章:
[ADO.NET] DataReader的標準範例 for ASP.NET 2.0 / 3.5
使用 Using...End Using區塊來寫程式,要非常小心!
[DataSet]查詢結果 自訂分頁,使用DataAdapter的 .Fill()方法
.....................................................................................................................................................................
初探ADO.NET #2,DataReader 與 DataSet(資料集)
我將思想傳授他人, 他人之所得,亦無損於我之所有;
猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson
線上課程教學,遠距教學 (Web Form 約51hr) https://dotblogs.com.tw/mis2000lab/2016/02/01/aspnet_online_learning_distance_education_VS2015
線上課程教學,遠距教學 (ASP.NET MVC 約75~88hr) https://dotblogs.com.tw/mis2000lab/2018/08/14/ASPnet_MVC_Online_Learning_MIS2000Lab
ASP.NET MVC線上課程 第一天 免費看 (5.5小時)
寫信給我,不要私訊 -- mis2000lab (at) yahoo.com.台灣 或 school (at) mis2000lab.net
ASP.NET遠距教學、線上課程(Web Form + MVC)。 第一天課程, "完整" 試聽。
................ facebook社團 https://www.facebook.com/mis2000lab ......................
................ YouTube (ASP.NET) 線上教學影片 https://www.youtube.com/channel/UC6IPPf6tvsNG8zX3u1LddvA/
Blog文章 "附的範例" 無法下載,請看 這裡 ...... https://dotblogs.com.tw/mis2000lab/2016/03/14/2008_2015_mis2000lab_sample_download
請看我們的「售後服務」範圍(嚴格認定)。
......................................................................................................................................................
[遠距教學、教學影片] ASP.NET (Web Form) 課程 上線了!MIS2000Lab.主講
事先錄製好的影片,並非上課時側錄! 觀看影片時,有如我「一對一」跟您面對面講課。

ASP.NET MVC 5 => .NET Core MVC 線上教學
累積時數約 95小時...... 第一天(5.5小時)完整內容,"免費"讓您評估
