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

C# Discussion :

Remplissage DatagridView et affichage en même temps


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 254
    Par défaut Remplissage DatagridView et affichage en même temps
    Bonjour,
    j'ai un datagridView que je charge à l'aide d'un Dataset et d'un DataAdapter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ...
    oDa.Fill(oDS, MaTable);
    MonDataGridView.DataSource = oDS.Tables[MaTable];
    ...
    Le problème est que sur des tables importantes, c'est trop lent.
    Est ce qu'il y a un moyen, en gardant cette méthode, d'afficher un jauge et le DatagridView se remplissant au fur et a mesure?
    Merci beaucoup pour votre aide.
    Cédric

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    en gardant cette méthode non
    avec une autre beaucoup plus complexe oui
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 254
    Par défaut
    Merci pour ta réponse.
    En fait il faut passer par le mode virtuel non?

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    oui, virtualmode = true
    et le mieux c'est de gérer l'extracion des données sur un autre thread, voir meme de stocker les données dans un objet plus performant que les datatable et autre dataset
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 254
    Par défaut
    Et tu penses a quoi comme "autres" objets ?

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    un truc à la main

    un datatable stocke les données et des tas d'infos pas forcément utiles, pour ca que ca prend plus de temps que de stocker juste les données


    il suffit de créer une classe avec des collections pour stocker les données
    il me semble qu'on a divisé par au moins 3 le temps de lecture dans la base en passant d'un datatable à une structure objet perso

    à cela on a ajouté un thread qui rapatrie les données un "timer" pour les afficher, résultat sur des requetes de plusieurs dizaines de milliers de lignes le datagrid est utilisable instantanément avec quelques centaines de lignes et l'ascenseur diminue au fur et à mesure qu'on charge les lignes


    après voir aussi si c'est pas le temps d'execution de la requete qui plombe aussi, avec un bon index on peut passer de plusieurs secondes à quelques millisecondes
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. Réponses: 10
    Dernier message: 14/03/2012, 21h20
  2. [AC-2007] Affichage de plusieurs requête en même temps
    Par ALEX80800 dans le forum Access
    Réponses: 2
    Dernier message: 21/11/2011, 17h19
  3. Réponses: 2
    Dernier message: 26/07/2011, 17h13
  4. Affichage et dump de paquets en même temps
    Par riadh8 dans le forum Réseau
    Réponses: 15
    Dernier message: 14/04/2009, 00h35
  5. Réponses: 4
    Dernier message: 27/05/2007, 11h18

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