IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Windows Discussion :

[C#] Comment utiliser les TransactionScope?


Sujet :

Développement Windows

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 8
    Points : 5
    Points
    5
    Par défaut [C#] Comment utiliser les TransactionScope?
    Bonjour,

    Je me permets d'écrire ce message car j'ai un soucis. J'aimerais faire des transactions dans mon programme, le problème est que j'utilise des tableadapter et j'ai des requêtes a l'intérieur. J'aimerais les utiliser mais je ne sais pas comment marche les TransactionScope/Transaction... Serait-il possible d'avoir un tuto ou un bout de code qui me permette de comprendre comment marche les TransactionScope avec les table adapter (Si c'est possible) .

    Merci d'avance.

  2. #2
    Membre expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Points : 3 568
    Points
    3 568
    Par défaut
    Tout simplement comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    using (TransactionScope tsc = new TransactionScope())
    {
        //Do your transactional work.
        tableAdap.Update() ;
        tsc.Complete() ;
    }
    
    Juste attention que si tu fais plusieurs opérations dans un scope (exemple un get + update) il va promouvoir (dans la plupart des cas) ta transaction en transaction distribuée. Et alors il faut que les MSDTC soit bien confiduré sinon tu vas avoir une exception.
    Microsoft MVP : Windows Platform

    MCPD - Windows Phone Developer
    MCPD - Windows Developer 4

    http://www.guruumeditation.net

    “If debugging is the process of removing bugs, then programming must be the process of putting them in.”
    (Edsger W. Dijkstra)

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci pour ta réponse, mais lorsque je mets ce bout de code dans mon programme, il me met des erreur sur le TransctionScope.
    Je suppose qu'il y a une instruction Using à mettre mais j'arrive pas a trouver sur le web ... Et aussi, pour tableAdap.Update() ; , cela va mettre completement a jour ma table, mais j'ai des requète spécifique dans mon table adapter que je voudrais utiliser. C'est possible? Ou je dois me contenter du update?


    Edit : Cela vient peu être du fais que je sois sur un visual studio express. Après , c'est juste une suggestion.
    J'ai trouvé sur le web ce code : Using System.Transations... Mais il ne me prend pas le Transaction ... Donc bon, je sais pas trop quoi faire.

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Points : 2 331
    Points
    2 331
    Par défaut
    Référence System.Transactions

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Heu ... Je suis censé faire quoi avec sa? :/

  6. #6
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Points : 2 331
    Points
    2 331
    Par défaut
    Clic droit sur ton projet > Ajouter une référence > Dans Onglet .net sélectionne System.Transactions

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci ! Maintenant mon using System.Transactions marche !!

    Citation Envoyé par EquinoxeDotNet Voir le message
    Tout simplement comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    using (TransactionScope tsc = new TransactionScope())
    {
        //Do your transactional work.
        tableAdap.Update() ;
        tsc.Complete() ;
    }
    
    Merci mais est ce qu'il est possible d'utiliser les requêtes des tableadapter? Car j'ai créé différentes requêtes pour remplir mes tables .

  8. #8
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Citation Envoyé par tanche01 Voir le message
    Merci ! Maintenant mon using System.Transactions marche !!
    Merci mais est ce qu'il est possible d'utiliser les requêtes des tableadapter? Car j'ai créé différentes requêtes pour remplir mes tables .
    Tout ce qui est dans le transaction scope est enrollé dans une transaction. que ca soit des tableadapter, des requetes ado, du entity framework...

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci !! Super vraiment!
    C'était vraiment pas compliqué mais il fallait que je comprenne ^^'.
    Bon bah problème résolus et encore Merci !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [HTTP] Comment utiliser les POST par programation
    Par Popof dans le forum Général Conception Web
    Réponses: 9
    Dernier message: 31/01/2005, 10h14
  2. Réponses: 4
    Dernier message: 13/12/2004, 21h37
  3. [COM] Comment utiliser les événements Word ?
    Par Laurent Dardenne dans le forum API, COM et SDKs
    Réponses: 7
    Dernier message: 30/05/2004, 13h38
  4. Réponses: 11
    Dernier message: 22/12/2003, 22h06
  5. Comment utiliser les styles XP avec Dev-C++?
    Par abraxas dans le forum Dev-C++
    Réponses: 3
    Dernier message: 05/10/2003, 20h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo