当前位置:编程学习 > C#/ASP.NET >>

sqldataadapter用事務更新時出錯後回滾,可表的rowstate已改

在事務中更新
sqlda.AcceptChangesDuringUpdate = false;
sqlda.UpdateCommand.Transaction = sqlda.DeleteCommand.Transaction = sqlda.InsertCommand.Transaction = sqlts;
sqlda.Update(dsfabin.Tables["tabfabindetail"]);

如果出錯就回滾事務
sqlts.Rollback();

因為表中有一個字段是不得重複的,所以更新時有可能會違反UK而發生錯誤,導致事務回滾
現在的問題是,回滾後,在錯誤行之前的數據行的RowState已經變化,如我新增3行的,第2行數據導致回滾,但第1行的數據行的RowState已經由Added變成Modi...這樣導致我將第2行的數據改正後再保存時,第1行就出錯了

不知誰有好的解決方法?卡了好久了 --------------------编程问答-------------------- 有人知道嗎? --------------------编程问答-------------------- 有高手嗎?

我表裡有一個是自動增長的字段,update時需要從數據庫刷回的
我看了,前面幾行正確的行已經從數據庫返回了ID的,所以rollback後,數據庫rollback了,但dataset卻沒rollback,再update時就出錯了,很頭痛的問題

我現在想到的解決方法只能是復制一個dataset進行update操作

不知其他高手有沒有更好的解決方案
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,