Bonjour, j'ai du code C# qui utilise le TransactionScope, mais il n'y a jamais de rollback.

Le code est appelé depuis le backgroundworker.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
private int ExecuteOrd()
{
    TransactionScope scope = new TransactionScope();
 
    using (scope)
    {
        try
        {
             foreach (mDataSet.mRow row in m_InsertToDo)
              {
                  dt.AddRow(row); //Insert dans table SQL2005
              }
 
              presenter.BusinessServiceClient.Update(CLE, row.NUM, IsLast); //Update dans une table SQL2000
 
              //Génération du pdf (utilise le webservice reportingservices)
              this.Dispatcher.Invoke(DispatcherPriority.Normal, new DelegateChangeLabelProgressBar(ChangeLabelProgressBar), "Génération du PDF en cours...");
              GeneratePDF();
 
              scope.Complete();
        }
        catch (Exception ex)
        {
            throw new Exception(ex.message);
         }
    }
}
Le rollback ne se fait jamais (je fais planter la sp appellée par la méthode Update)

J'ai un message sur mon exception (exception was unhandled by user code).

Si j'enlève le try catch, cela ne fait pas de rollback non plus.

Quelqu'un peut-il m'aider ?

Merci d'avance.