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

Windows Forms Discussion :

Transaction globale avec SqlServer et c#


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2020
    Messages : 7
    Points : 8
    Points
    8
    Par défaut Transaction globale avec SqlServer et c#
    Bonjour,

    J'ai créé un Windows Forms dans laquelle j'effectue des requêtes sur une base de données. Seulement, j'aimerais transformer quelques unes de ces requêtes en transactions afin que l'utilisateur puisse revenir sur ses pas.

    J'ai donc trouvé le lien suivant : docs microsoft qui me permet de faire des transactions mais seulement locales.

    J'aimerais ouvrir une transaction globale pour que toutes les modifications, tous les ajouts ou toutes les suppressions de clients via mon formulaire puissent tous être annulés au moment de quitter la page de formulaire, si l'utilisateur veut revenir sur ses actions.

    Une transaction globale serait le plus adaptés je pense car la modification, la suppression ou bien l'ajout se font via des boutons différents (et donc des Events différents).

    Quelques idées ou bout de codes qui pourraient m'aider ?

    Merci d'avance pour votre aide,
    Bien cordialement.

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Une transaction se fait forcément sur une seule connexion
    Par contre tant que la connexion est ouverte tu peux faire autant de requêtes que tu veux avant de faire commit.
    Il est même possible de passer l’objet transaction à plusieurs sql command sur la même connexion.
    Attention tout de même si c’est une application multi utilisateur il faut valider la transaction au plus vite pour ne pas bloquer les lectures des autres. Ça peut donc être fait au moment de la validation pour tout faire d’un coup.
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2020
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    D'accord donc au moment du load de mon formulaire j'ouvre une transaction et la connexion avec ma BDD.

    Dans les Events où j'ai besoin de la transaction, je le passe en paramètre.

    Je retire toutes les fermetures de la connexion des autres Events.

    Et seulement au moment de la validation je commit.

    Ai-je tout bien compris ?

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Oui et non, j’ai dit que faire ça dans une appli multi user (ou avec connection instable) ça va poser problème. Sinon oui.
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Le principe d'un formulaire c'est de renseigner des infos et de les enregistrer à la fin.
    Tu n'es pas sensé écrire en base avant la validation.

    Si tu doit tout annuler sur un bouton, il suffit de ne rien sauver du tout et de recharger l'enregistrement.

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2020
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Je vois merci encore.

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

Discussions similaires

  1. Convertir un champ DATETIME en DATE avec SQLSERVER
    Par __fabrice dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 10/11/2005, 11h26
  2. Réponses: 2
    Dernier message: 28/09/2005, 17h08
  3. [Rotations] Rotations Locales/Globales avec Quaternions
    Par Clorish dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 24/05/2005, 16h41
  4. Existe t-il des transactions "globales"
    Par devdev dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/03/2005, 20h12
  5. Création d'agrégat avec SQLServer
    Par Testav dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 19/09/2002, 16h54

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