Bonjour,

voilà je développe actuellement une appli en C#, qui utilise une base oracle..
Mon soucis en le suivant: je fait un traitement itératif qui utilise les transactions, une qui englobe le tout, et "x" ouvertes dans chacune de mes itérations, comme ceci:
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
 
using (TransactionScope tsMonTraitement = new TransactionScope(TransactionScopeOption.RequiresNew))
            {
                try
                {
                    foreach( blablabla)
                    {
                        using (TransactionScope tsSousTraitement = new TransactionScope(TransactionScopeOption.RequiresNew))
                        {
                            try
                            {
                                 "Ici mon code"
                                tsSousTraitement .Complete();
                            }
                            catch (Exception ex)
                            {
                                ...
                            }
                        }
                    }
                    tsMonTraitement.Complete();
                }
                catch (Exception e)
                {
                    ...
                }  
            }
le souci est que, quand je catch une exception à l'endroit "Ici mon code", et que ce code a ouvert un curseur dans oracle, il ne se ferme pas
Si je ne catch pas d'erreur, bien sûr le tsSousTraitement .Complete(); ferme mon curseur, mais quand j'ai une erreur avant, pas moyer de le fermer, même en mettant tsSousTraitement .Dispose(); dans le catch de mon sous traitement.

Est ce que quelqu'un s'y connait assez en curseur pour me dire ce qui pourrait faire planter mon programme ??

Par avance merci !