[ADO.NET]一些常見的DB存取Error Message

好久沒寫文章了,這篇文章是前陣子同事問的問題把它記錄下來
寫程式更新DB是程式設計師最基本一定要會的,但常會遇到一些問題
我把同事遇到的Error記下來

好久沒寫文章了,這篇文章是前陣子同事問的問題把它記錄下來

寫程式更新DB是程式設計師最基本一定要會的,但常會遇到一些問題

我把同事遇到的Error記下來,常見的如下列錯誤訊息:


1.【當傳遞擁有已修改資料列的 DataRow 集合時,更新需要有效的 UpdateCommand】

2.【UpdateCommand 已經影響必須是 1 記錄的 0】

3.【不會傳回任何重要資料行資訊的 SelectCommand 不支援 UpdateCommand 動態 SQL 的產生】

解答:

1.必需要使用CommandBuilder來產生相對應的Insert,Delete,Update SQL語法,加入下面兩行就可以了

2.假設DB,原本資料NAME="AAA",執行下列語法會先UPDATE為BBB(原始資料AAA),下AcceptChanges原始資料就變為BBB,然後UPDATE為CCC(原始資料BBB)
最後更新回DB時,因為找不到BBB去更新為CCC,所以異動筆數為0,這樣是Error的

3.表示Table沒有設定Primary Key值欄位,加入Primary Key就可以了


我用連Oracle DB 的範例說明一下

 OracleError.aspx.cs

參考網址
http://www.blueshop.com.tw/board/show.asp?subcde=BRD20071118214418H1D&fumcde=FUM20050124191756KKC
http://www.blueshop.com.tw/board/show.asp?subcde=BRD20090311165818I5P&fumcde=FUM20041006161839LRJ
http://social.msdn.microsoft.com/Forums/zh-TW/232/thread/79dd33cd-256c-4414-bbb8-26c7c3d5ac44