DataAdapter是如何更新資料庫資料的?

來源:互聯網
上載者:User
資料|資料庫 最近剛改完一個以前做的MIS,使用者的要求真是越來越刁鑽了,總算是完事了.又可以操練VB.NET了!!!

在ADO.NET物件模型中, DataAdapter對象的功能真是讓人感到欣喜!

DataAdapter對象不僅只是捕獲資料的功能,事實上它還可以協助你將更新後的DataSet以批次的方式再寫回後台資料庫,而且還相當簡單,只要調入Update方法,並傳入準備更新的DataSet及DataTable即可。
那麼DataAdapter是如何將改動資料寫回資料庫的呢?
瞭解資料庫處理原理的程式人員可能會感到不可思議,我們在建立DataAdapter時只給予了"Select"SQL命令,未曾在DataAdapter設定"Insert"、"Update"、"Delete"等SQL命令。這個過程是如何?的呢?
我們知道DataAdapter對象本身就有幾個屬性:SelectCommand、InsertCommand、UpdateCommand、DeleteCommand。當程式調用到DataAdapter對象的Update方法時,它會根據DataSet內的資料所更改的狀況分別應用於InsertCommand、UpdateCommand、DeleteCommand屬性的Command命令寫回資料庫。
問題又來了,如何產生InsertCommand、UpdateCommand、DeleteCommand屬性及使其能對應到SelectCommand的命令正確的寫回呢?
答案有兩個:
1、利用Visual Studio.NET的設計工具產生。如下圖示:

2、通過CommandBuilder類。
如果自行編寫代碼建立DataAdapter對象的話,InsertCommand等屬性就不會自動建立,此時可以通過CommandBuilder類的功能來協助你產生InsertCommand等屬性。CommandBuilder提供自動產生單一表命令的方法,它將會調解DataSet對後台資料庫的記錄更新。
如下辦法:
'更新第一條記錄的"型號"欄位為"MF14"
ds.Tables("機械錶").Row(0)("型號")="MF14"
'建立CommandBuilder,並傳入DataAdapter建構函式參數
Dim comBuilder As New SqlCommandBuilder(da_YB)
'調用DataAdapter的Update方法,寫回資料
da_YB.Update(ds_YB.Tables("機械錶"))


相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。