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 :

Requete sur tableAdaptor tres lente


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Homme Profil pro
    R&D imagerie 3D / prog embarquée
    Inscrit en
    Mars 2007
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : R&D imagerie 3D / prog embarquée
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2007
    Messages : 419
    Par défaut Requete sur tableAdaptor tres lente
    Bonjour,

    Je rencontre un problème sur une fenêtre qui contient un dataGridView. Le dataGridView doit afficher plus de 14000 enregistrements et son chargement est très lent. Pourtant quand je fais un aperçu des ma requête par mon dataSet (depuis l'IDE) c'est très rapide.

    Est-il possible que ce soit le remplissage du dataGridView qui lag autant??

    Si quelqu’un avait une idée pour accélérer l'affichage ça m'aiderait beaucoup.

    Merci d'avant
    Ju

  2. #2
    Membre Expert
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 184
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 184
    Par défaut
    Bonjour.

    C'est du à la logique de chargement du datagridview qui déclenche la récupération des 14 000 lignes !

    Il faut dans ton cas utiliser le mode virtuel afin de ne rechercher les datas que lorsque le datagridview en a vraiment besoin --> pour l'affichage.

    MonDatagridview.VirtualMode = True

    Tu peux avoir un exemple du mode virtuel ici :
    http://msdn2.microsoft.com/en-us/library/1x64c23x.aspx

    Tu télécharges et la solution "Advanced Virtual Mode with Caching.sln" doit pouvoir t'aider.

    Cdt.

  3. #3
    Membre émérite
    Homme Profil pro
    R&D imagerie 3D / prog embarquée
    Inscrit en
    Mars 2007
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : R&D imagerie 3D / prog embarquée
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2007
    Messages : 419
    Par défaut
    Bonjour et merci!

    D'après ce que je lis il faut que j'utilise le chargement des données juste a temps. C'est bien ça?
    J'essai depuis tout a l'heure d'utiliser la methode decrite sur MSDN ici.
    Comme la méthode est pour SQLServer, et que ma base est une BD Access j'ai beaucoup de mal a adapter la requete SQL suivante pour qu'elle fonctionne
    CommandText = "Select Top 16 CODER, CODEC, DESCRIPTION, DATECREA, CODECOUL From RECETTE WHERE CODER NOT IN (SELECT TOP 6 CODER From RECETTE Order By CODER) Order By CODER"

    Quand je l'execute mon CPU monte à 100% et je n'obtiens jamais le résultat. Je kill le processus à chaque fois

    As tu une idée?

  4. #4
    Membre Expert
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 184
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 184
    Par défaut
    Bonjour

    CPU a 100% = boucle ! --> Enfin souvent ...

    Ca donne quoi en pas à pas ?

    Si tu bloques, poste une version minimaliste du code, je jetterai un oeil.

    Cdt.

  5. #5
    Membre émérite
    Homme Profil pro
    R&D imagerie 3D / prog embarquée
    Inscrit en
    Mars 2007
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : R&D imagerie 3D / prog embarquée
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2007
    Messages : 419
    Par défaut
    Merci de ta reponse, mais j'ai trouvé un moyen d'éviter cette requete.
    En fait j'ai fais moi meme mon code. La requete que j'execute via ADO est rapide (<500ms) le problème été vraiment la lecture du dbDataReader et l'insertion dans la dataGridView (ou du tableAdapter, j'ai essayé les deux).
    Donc j'execute ma requete des l'ouverture de la fenetre, je garde en variable de classe mon dataReader et quand CellValueNeeded est appelé je cherche si la valeur est deja connue. Si c'est le cas je retrouve mon enregistrement dans une classe contenue dans un arrayList. Si je ne connais pas encore la valeur, je continu a lire mon dbDataReader, je remplis mon arrayList et ma dataGridView en meme temps.

    Tout ca fonctionne tres bien.

    Merci beaucoup de ton aide olsimare.

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

Discussions similaires

  1. Requete tres lente
    Par keny10 dans le forum Requêtes
    Réponses: 11
    Dernier message: 14/07/2009, 13h47
  2. Query tres lent sur une table vide ?!
    Par CAML dans le forum SQL
    Réponses: 6
    Dernier message: 24/04/2009, 15h08
  3. impression tres lente sur serveur
    Par passion_info dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 24/01/2009, 16h11
  4. maketable query lent lorsque requete sur plusieurs champs
    Par Hypnos dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 30/07/2008, 15h32
  5. [FB 1.5.2] Requetes tres lentes via VPN
    Par gudul dans le forum Connexion aux bases de données
    Réponses: 8
    Dernier message: 05/01/2006, 18h52

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