天天看點

對于調用DataAdapter.Update 方法時發生的錯誤解決辦法

      今天,想着用dataset的方法來對資料庫表和datagridview的表格資料進行更新,删除操作,卻沒有想到會出現異常,一直報錯,後來,在楊大哥的幫助下,解決了這個問題。

原來,是這樣的!

如果 DataTable 映射到單個資料庫表或從單個資料庫表生成,則可以利用 CommandBuilder 對象自動生成 DataAdapter 的 DeleteCommand、InsertCommand 和 UpdateCommand。為了自動生成指令,必須設定 SelectCommand 屬性,這是最低的要求。SelectCommand 所檢索的表架構确定自動生成的 INSERT、UPDATE 和 DELETE 語句的文法。如果在自動生成插入、更新或删除指令後修改 SelectCommand 的 CommandText,則可能會發生異常。如果已修改的 SelectCommand.CommandText 所包含的架構資訊與自動生成插入、更新或删除指令時所使用的 SelectCommand.CommandText 不一緻,則以後對 DataAdapter.Update 方法的調用可能會試圖通路 SelectCommand 引用的目前表中已不存在的列,并且會引發異常。可以通過調用 CommandBuilder 的 RefreshSchema 方法來重新整理 CommandBuilder 用來自動生成指令的架構資訊!

      最後,我在代碼裡面加入了,

SqlCommandBuilder ss = new SqlCommandBuilder(da);

                ss.RefreshSchema();/

/成功的解決了删除的時候所引發的異常:

對于調用DataAdapter.Update 方法時發生的錯誤解決辦法

看來,要學習的東西還有很多啊!這麼簡單的問題居然困擾了我半天時間!!!加油!

Fighting!!