1

SqlCeローカルデータベースと対話するWinFormsアプリケーションがあります。 BindingSources、TableAdapters、および型付きデータセットを使用してDB操作を管理しています。トランザクションで実行する必要がある2つの異なるクラスにいくつかのメソッドが散在していて、System.Transactions.TransactionまたはCommitableTransactionを使用することを考えていました。私の質問は、トランザクションやCommittableTransactionをこのサンプルコードではエラーでトランザクションやロールバックで正常に動作します、であるか、私は、あまりにもOtherClass方法でトランザクションを使用しなければならないの?:型付きデータセットとSQL Server CEとのトランザクション

OtherClass othercls = new OtherClass(); 
... 

private void DoAll() 
{ 
/* begin transaction here */ 
this.tableAdapter.DoSomeDBWork(); 
othercls.DeleteSomeRecords(); //uses tableadapter+sql code to delete. throws exception on error. doesn't have transaction 
othercls.DeletOtherRecords(); //uses tableAdapter.Rows.Find(id).Delete(). throws exception on error. doesn't have transaction 
othercls.Update(); //uses tableadapter.Update(). throws exception on error. doesn't have transaction 
this.DeleteSomeFiles(); //throws exception on fail 
/* end transaction here */ 
} 

答えて

1

のSystem.Transactionsをお試しください。 TransactionScope。例外は、トランザクションのスコープ内で発生しない場合は

System.Transaction.TransactionScope Remark部、

によれば、参加しているトランザクションがバック圧延します。

関連する問題