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 :

Accélérer l'affichage des données dans un datagridview


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 127
    Points : 66
    Points
    66
    Par défaut Accélérer l'affichage des données dans un datagridview
    Bonjour,

    J'utilise un formulaire vb.net pour faire une recherche de termes dans une table access et afficher les résultats dans un datagridview. Il s'agit d'une requête SQL que j'appelle à chaque changement dans le textbox permettant d'entrer le mot cherché.
    Ma table contient maintenant plus de 150000 termes et l'affichage est un peu trop long à mon goût.
    Pour améliorer un peu ça, je pense d'abord ne lancer la requête qu'une fois le mot complétement entré (et pas en cours de frappe), mais est-ce qu'il y a quelque chose en particulier qui me permettrait de booster un peu le tout ?
    D'ailleurs, est-ce que cette lenteur vient d'access ou de vb.net ?
    Merci pour votre aide.

    Guillaume

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 184
    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 184
    Points : 25 140
    Points
    25 140
    Par défaut
    ca depend de ce que tu utilises pour mettre les données dans le datagrid
    datatable dataset et autre dataadapter sont plus que lents
    le mieux étant de mettre les données dans une classe, puis de les mettre toi meme dans le datagrid
    si c'est pas encore suffisant, tu peux aussi mettre virtualmode à true sur le datagrid et gérer l'affichage toi meme (ca fait un peu de code)
    le mieux aussi c'est de ne pas faire la requete à chaque fois, mais une seule fois au début et de filtrer ensuite en ram par rapport au textbox

    c'est tout à fait possible d'avoir un datagrid performant en .net, on arrive à afficher plusieurs dizaines de milliers de lignes plutot longues avec le virtualmode

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 127
    Points : 66
    Points
    66
    Par défaut
    Merci Pol63 pour ta réponse !
    Effectivement, j'utilise un dataset et datatable pour remplir mon datagridview.
    À vrai dire, je ne sais pas encore le faire autrement
    Mais la solution que tu proposes m'intéresse si ça peut vraiment accélérer l'affichage car le but ultime de mon application est de gérer encore plus de données.
    Seulement voilà, comment utilise-t-on une classe pour remplir un datagridview. Connais-tu par hasard un tuto sur le sujet ?
    Pour le virtualmode, je vais aussi regarder ça de plus près mais une fois que mon application sera à peu près au point...

    Merci en tout cas pour toutes ces infos.

    Guillaume

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 184
    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 184
    Points : 25 140
    Points
    25 140
    Par défaut
    prend déjà connaissances de ces topics récents:

    http://www.developpez.net/forums/d84...-datagridview/

    http://www.developpez.net/forums/d83...nction-public/

    pour le virtualmode, une fois que tu l'as mis à true, le datagrid ne créé pas de ligne, il appelle un évènement quand une cellule doit etre affichée, en te donnant x et y, à toi de chercher dans tes données pour lui dire quoi mettre
    parce qu'instancier 50000 datagridviewrow ca ralenti fortement, donc il en instancie quelques dizaines, et au fur et à mesure que tu utilises l'ascenseur ca demande les valeurs via l'event et tu les cherche toi meme dans ce que tu veux

  5. #5
    Membre régulier Avatar de beren.kei
    Inscrit en
    Mai 2008
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mai 2008
    Messages : 135
    Points : 123
    Points
    123
    Par défaut
    bonjour,
    tu as aussi la possibilité de relancer le binding sur l'évenement Leave de ta textbox au lieu de TextChanged...

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 127
    Points : 66
    Points
    66
    Par défaut
    Merci pour votre aide.
    Je vais regarder tout ça de plus près.
    Guillaume

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

Discussions similaires

  1. accélérer l'affichage des donnée dans un Dbgrid.
    Par aimer_Delphi dans le forum Bases de données
    Réponses: 9
    Dernier message: 12/05/2015, 11h19
  2. Accélérer l'affichage des données dans un datagridview
    Par jerada dans le forum Ext JS / Sencha
    Réponses: 6
    Dernier message: 13/03/2014, 13h55
  3. affichage des données d'un datagridview dans un textbox
    Par thierry007 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 05/09/2010, 23h36
  4. probléme d'affichage des données dans le datagridview
    Par asprog dans le forum Windows Forms
    Réponses: 0
    Dernier message: 13/05/2009, 23h23
  5. affichage des donnes dans une datagridview
    Par daloul dans le forum VB.NET
    Réponses: 1
    Dernier message: 25/04/2008, 09h04

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