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

VB.NET Discussion :

Attendre la fin d'un ExecuteNonQuery()


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2014
    Messages : 62
    Points : 48
    Points
    48
    Par défaut Attendre la fin d'un ExecuteNonQuery()
    Bonjour,

    Pour les besoins d'un programme, j'utilise un DataGridView sans source de données.

    Celui-ci est rempli manuellement avec les données d'une base de donnée Access externe.

    Mon problème est le suivant, l'utilisateur clique sur un bouton, cela déclenche la mise à jour de la base access via une requête simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                    ObjetCommand = New OleDbCommand("...Update ma table...", ObjetConnection)
                    ObjetCommand.ExecuteNonQuery()
    Ensuite, l'appel d'une fonction se fait. La fonction en question a pour rôle de mettre à jour le dataGridView en le vidant et en regardant à nouveau le contenu de la base de données Access qui vient d'être modifiée.

    Problème, si je ne mets pas un System.Threading.Sleep à 1000, la requête Update n'est pas terminée que le DataGridView est mis à jour (et donc pas avec les données modifiées comme souhaité).

    Application.DoEvents() ne règle pas non plus le problème.

    Pourrez-vous m'aider ?

  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
    à quoi tu vois qu'access n'est pas encore à jour ?
    parce que sur sql server il l'est forcément, executenonquery est "bloquant"
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Il est possible que le problème vienne de la mise en cache des modifications de tables.

    Est-ce que la "fonction en question a pour rôle de mettre à jour le dataGridView" utilise la même instance ObjetConnection que le ExecuteNonQuery (et non 2 instances différentes créées avec la même chaine de connexion) ?
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

Discussions similaires

  1. Attendre la fin d'un processus
    Par biaggi dans le forum ASP
    Réponses: 3
    Dernier message: 27/07/2004, 08h39
  2. [Processus][pause] attendre la fin ?
    Par MrDuChnok dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 19/07/2004, 13h51
  3. attendre la fin d'un processus
    Par philippe V dans le forum MFC
    Réponses: 2
    Dernier message: 27/02/2004, 15h37
  4. Attendre la fin du chargement de la page dans un WebBrowser
    Par core1 dans le forum Web & réseau
    Réponses: 5
    Dernier message: 15/06/2003, 04h12
  5. Comment Attendre la fin d'un Processus
    Par mr_titi dans le forum C++Builder
    Réponses: 3
    Dernier message: 05/06/2003, 16h35

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