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 :

[VB.net 2005] Assigner un dataset au datasource d'un contrôle


Sujet :

Windows Forms

  1. #1
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 298
    Points : 156
    Points
    156
    Par défaut [VB.net 2005] Assigner un dataset au datasource d'un contrôle
    Bonjour à tous,

    Dans une form, j'ai placé un datagridview auquel j'assigne des données d'une table d'un dataset suite à une requête SQL via ADO.net sur le serveur.

    La sélection des données vers le dataset est faite dans un thread pour éviter les temps de latence d'un nouveau chargement de données.
    Ceci est donc transparent pour l'utilisateur car il peut continuer à interagir avec les données actuellement affichées.

    Le problème se pose au moment de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    me.datagridview.datasource = DS.tables(0)
    Cette opération prend presque plus de temps que la sélection des données et SURTOUT ne peux pas être effectuée dans le thread de sélection car une exception de type crossthreadoperationexception est levée, du fait qu'un thread essaie d'accèder à un contrôle qui n'est pas dans le même thread.

    Durant cette assignation, la form freeze, voire 'not responding' jusqu'à la fin de l'opération.
    Quelqu'un aurait une autre technique à me proposer? Je ne suis surement pas le seul à avoir rencontré ce problème et n'ai rien trouvé de concluant sur le forum.

    Pour éviter d'assigner de trop lourds dataset, j'ai pensé à paginer mes records dans mon datagridview.
    Mais la encore, SQL server est limité car la fonction LIMIT(x,y) surperutile de mySQL n'existe pas dans SQL server !!!

    Merci à vous pour vos idées sur cette question probablement déjà soulevée.

  2. #2
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 298
    Points : 156
    Points
    156
    Par défaut
    Bonjour,

    J'ai utilisé un delegate pour permettre à mon thread d'associer le Dataset au datasource de mon datagridview.
    A présent l'assignation se fait dans le thread, ce qui devrait améliorer les choses mais malheureusement pour moi, il y a toujours ce temps de latence dû à l'assignation.

    Merci pour vos idées.

  3. #3
    Membre chevronné
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 179
    Points : 1 777
    Points
    1 777
    Par défaut
    Bonjour.

    Faut utiliser le virtualmode des datagridview.

    Cdt.

Discussions similaires

  1. [.NET 2005]Query sur plusieurs tables d'un dataset
    Par legillou dans le forum VB.NET
    Réponses: 1
    Dernier message: 01/02/2008, 11h29
  2. Réponses: 1
    Dernier message: 25/09/2007, 15h16
  3. [VB.NET 2005] Datasets et Bdd
    Par Bz dans le forum Windows Forms
    Réponses: 3
    Dernier message: 05/09/2007, 10h38
  4. [VB .Net 2005][Dataset] Problème d'imbrication de données
    Par 6psyk9 dans le forum Accès aux données
    Réponses: 1
    Dernier message: 15/01/2007, 15h24
  5. [VB.net 2005]ComboBox.DataSource ignore l'ArrayList source
    Par Macintoc dans le forum Windows Forms
    Réponses: 1
    Dernier message: 22/08/2006, 20h31

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