閱讀150 返回首頁    go 阿裏雲 go 技術社區[雲棲]


SqlDataAdapter與DataSet

       DataSet是ADO.NET的中心概念。可以把DataSet當成內存中的數據庫,DataSet是不依賴於數據庫的獨立數據集合。所謂獨立,就是說,即使斷開數據鏈路,或者關閉數據庫,DataSet依然是可用的,DataSet在內部是用XML來描述數據的,由於XML是一種與平台無關、與語言無關的數據描述語言,而且可以描述複雜關係的數據,比如父子關係的數據,所以DataSet實際上可以容納具有複雜關係的數據,而且不再依賴於數據庫鏈路。

       DataSet 是 ADO. NET 結構的主要組件,它是從數據源中檢索到的數據在內存中的緩存。DataSet 由一組 DataTable 對象組成:

dataset所有數據都加載在內存上執行的,可以提高數據訪問速度,提高硬盤數據的安全性。極大的改善了程序運行的速度和穩定性。

     因為DataSet可以看做是內存中的數據庫,也因此可以說DataSet是數據表的集合,它可以包含任意多個數據表(DataTable),而且每一 DataSet中的數據表(DataTable)對應一個數據源中的數據表(Table)或是數據視圖(View)。數據表實質是由行(DataRow)和 列(DataColumn)組成的集合為了保護內存中數據記錄的正確性,避免並發訪問時的讀寫衝突,DataSet對象中的DataTable負責維護每一條記錄,分別保存記錄的初始狀態和當前狀態。從這裏可以看出DataSet是與隻能存放單張數據表的Recordset是截然不同的概念。
DataSet對象的三大特性
(1) 獨立性。DataSet獨立於各種數據源。
(2) 離線(斷開)和連接。
(3) DataSet對象是一個可以用XML形式表示的數據視圖,是一種數據關係視圖。
DataSet使用方法
(1) 把數據庫中的數據通過DataAdapter對象填充DataSet。
(2) 通過DataAdapter對象操作DataSet實現更新數據庫。
(3) 把XML數據流或文本加載到DataSet

SqlDataAdapter是 DataSet和 SQL Server之間的橋接器,用於檢索和保存數據。SqlDataAdapter通過對數據源使用適當的Transact-SQL語句映射 Fill(它可更改DataSet中的數據以匹配數據源中的數據)和 Update(它可更改數據源中的數據以匹配 DataSet中的數據)來提供這一橋接。當SqlDataAdapter填充 DataSet時,它為返回的數據創建必需的表和列(如果這些表和列尚不存在)。

問:什麼是DataAdapter?
答:DataAdapter對象在DataSet與數據之間起橋梁作用
提示:
    你如果隻需要執行SQL,就沒必要用到DataAdapter
  直接cmd.ExecuteNoQuery()就OK了
 
    sqlDataadapter的作用是實現Dataset和DB之間的橋梁
  比如將對DataSet的修改更新到數據庫
  如果隻是執行一句SQL或SP,用SqlCommand的Execute係列方法就可以了
 
 SqlDataAdapter的UpdateCommand的執行機製是
  當調用SqlDataAdapter.Update()時,檢查DataSet中的所有行,然後對每一個修改過的Row執行SqlDataAdapter.UpdateCommand
  以就是說如果未修改DataSet重的數據,SqlDataAdapter.UpdateCommand是不可能執行的
 

最後更新:2017-04-03 12:54:06

  上一篇:go android 二維碼簡化,實現仿qq掃描效果
  下一篇:go 怎麼將輸入框控件中的值添加到DataSet中?