Bonjour, j'ai un petit souci que je comprends pas.
J'effectue une transaction à l'aide de SQLTransaction.
dont voilà le code
DAns InsertEntete(trans1) je fais un ExecuteNonQuery, de meme dans InsertDeclaration(trans1).
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
29 //On met la date et l'heure de création dans les champs adéquats txbDateCreation.Text = DateTime.Now.ToString("dd/MM/yyyy"); txbADateCreation.Text = DateTime.Now.TimeOfDay.ToString().Substring(0, 8); //On met le num du rapport txbNumRapport.Text = procRapp.DefNumRapport(hfCentre.Value); lblRapportEntete.Text = "Rapport n° " + txbNumRapport.Text; SessionUtilsRapport.LossID = txbNumRapport.Text; //requete d'enregistrement dans la base du rapport!!! myFac.GetConnection().Open(); DbTransaction trans1 = myFac.BeginTransaction(myFac.GetConnection()); try { InsertEntete(trans1); InsertDeclaration(trans1); myFac.CommitTransaction(trans1); SessionUtilsCommun.MessageAlerte = Resources.Dictionnaire.EnregistrementOK; Response.Redirect("~/Default7.aspx?LossID=" + SessionUtilsRapport.LossID); } catch (Exception ex) { myFac.RollbackTransaction(trans1); string message = Resources.Dictionnaire.EnregistrementEchoue + " : " + ex.Message; SessionUtilsCommun.MessageAlerte = Resources.Dictionnaire.EnregistrementEchoue + " : " + ex.Message; } finally { myFac.GetConnection().Close(); }
Tout se passe bien, l'enregistrement s'effectue, seulement voilà, il passe dans le catch et fais un rollback. Donc je ne comprends pas ce truc. Est ce du au Response.redirect.
L'erreur est SQLTransaction est terminé, il n'est plus accessible!!!
Merci de votre aide
Partager