使用 DataAdapter 和 DataSet 更新資料庫

來源:互聯網
上載者:User
資料|資料庫 DbDataAdapter調用 Update 方法時,DataAdapter 將分析已作出的更改並執行相應的命令(INSERT

、UPDATE 或 DELETE)。當 DataAdapter 遇到對 DataRow 的更改時,它將使用 InsertCommand、

UpdateCommand 或 DeleteCommand 來處理該更改。這樣,您就可以通過在設計時指定命令文法並在可能

時通過使用預存程序來盡量提高 ADO.NET 應用程式的效能。在調用 Update 之前,必須顯式設定這些命

令。如果調用了 Update 但不存在用於特定更新的相應命令(例如,不存在用於已刪除行的

DeleteCommand),則將引發異常。
但是如果 DataTable 映射到單個資料庫表或從單個資料庫表產生,則可以利用 CommandBuilder 對象

自動產生 DataAdapter 的 DeleteCommand、InsertCommand 和 UpdateCommand。為了自動產生命令,必

須設定 SelectCommand 屬性,這是最低的要求。SelectCommand 所檢索的表架構確定自動產生的 INSERT

、UPDATE 和 DELETE 語句的文法。如果在自動產生插入、更新或刪除命令後修改 SelectCommand 的

CommandText,則可能會發生異常。如果已修改的 SelectCommand.CommandText 所包含的架構資訊與自動

產生插入、更新或刪除命令時所使用的 SelectCommand.CommandText 不一致,則以後對

DataAdapter.Update 方法的調用可能會試圖訪問 SelectCommand 引用的當前表中已不存在的列,並且會

引發異常。可以通過調用 CommandBuilder 的 RefreshSchema 方法來重新整理 CommandBuilder 用來自動生

成命令的架構資訊。





相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

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 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。