none
comment gerer l'accès concurentiel RRS feed

  • Question

  • Bonjour a tous et bonne fin de semaine.

    Bien j'ai créer une application de gestion grâce a votre aide sur ce site et je vous en suis reconnaissant.

    j'ai encore un autre soucis. Mon application utilise une base de données; par cette application les utilisateurs manipulent cette base. mais il y a une erreur quand deux utilisateurs veulent enregistrer une information au même moment. alors comment gérer ce problème d'accès concurrentiel ? j'utilise un dataset pour accéder aux données.

    merci pour votre aide

    jeudi 3 juillet 2014 09:49

Réponses

  • Bonjour,

    C'est automatique...
    Lorsque vous appelez la méthode Update() de votre TableAdapter pour mettre à jour les données contenu dans le DataSet, une exception de type DbConcurrencyException est automatiquement levée...

    Try
       monTableAdpater.Update(monDataSet)
    Catch e As DbConcurrencyException
       MsgBox("Qqn est déjà passé par là...")
    End Try

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    • Marqué comme réponse Aurel Bera jeudi 10 juillet 2014 12:54
    jeudi 3 juillet 2014 11:53
    Modérateur
  • Bonjour,

    Oui, les TableAdapter vérifie qu'un champ n'a pas été modifié entre temps au moment de l'Update().

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    • Proposé comme réponse Aurel Bera mardi 8 juillet 2014 07:33
    • Marqué comme réponse Aurel Bera jeudi 10 juillet 2014 12:54
    lundi 7 juillet 2014 21:17
    Modérateur

Toutes les réponses

  • Bonjour,

    C'est automatique...
    Lorsque vous appelez la méthode Update() de votre TableAdapter pour mettre à jour les données contenu dans le DataSet, une exception de type DbConcurrencyException est automatiquement levée...

    Try
       monTableAdpater.Update(monDataSet)
    Catch e As DbConcurrencyException
       MsgBox("Qqn est déjà passé par là...")
    End Try

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    • Marqué comme réponse Aurel Bera jeudi 10 juillet 2014 12:54
    jeudi 3 juillet 2014 11:53
    Modérateur
  • Bonjour gilles

    je veux bien comprendre cet exception empêchera mes utilisateurs d'écraser leurs informations lorsqu'ils voUdrons enregistrer au même moment? même si les champs sont directement liés à la base de données?

    j'utilise access 2007

    MERCI

    vendredi 4 juillet 2014 13:09
  • Bonjour,

    Oui, les TableAdapter vérifie qu'un champ n'a pas été modifié entre temps au moment de l'Update().

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    • Proposé comme réponse Aurel Bera mardi 8 juillet 2014 07:33
    • Marqué comme réponse Aurel Bera jeudi 10 juillet 2014 12:54
    lundi 7 juillet 2014 21:17
    Modérateur