1

J'ai une application WinForms qui interagit avec une base de données locale SqlCe. Je gère les opérations db à l'aide de BindingSources, TableAdapters et des datasets typés. J'ai plusieurs opérations dispersées à travers plusieurs méthodes dans deux classes différentes que je dois effectuer dans une transaction et je pensais à utiliser System.Transactions.Transaction ou CommitableTransaction. Ma question est, serait transaction ou travail CommittableTransaction avec succès dans une transaction et rollback une erreur dans ce code exemple ou dois-je utiliser aussi transaction AutreClasse méthodes trop ?:Transactions avec un jeu de données typé et un serveur 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 */ 
} 

Répondre

1

Essayez System.Transactions . TransactionScope.

Selon l'article System.Transaction.TransactionScope Remark,

Si une exception ne se produit dans le cadre de la transaction, la transaction dans laquelle il participe sera annulées.

Questions connexes