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 :

Gros DataSet dans un DataGrid


Sujet :

C#

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Gros DataSet dans un DataGrid
    Bonjour,
    j'étudie actuellement de passer à c#. Voici à quoi devrait ressembler l'architecture :

    Client : .Net C#
    Serveur : Progress

    Le serveur doit être en Progress, c'est une contrainte !

    Voici le premier problème auquel je suis confronté:
    J'ai un écran sur lequel l'utilisateur peut ramener un gros DataSet (environ 30'000 records). Le chargement du DataSet est fait sur le serveur et est affiché dans un DataGrid. Ce traitement dure trop longtemps.

    Est-il utopique de penser ramener des gros DataSet ?
    Suis-je le seul à être confronté à ce genre de problème ? Si ce n'est pas le cas, comment l'avez-vous résolu ? Est-ce que je dois obliger l'utilisateur à mettre plus de filtres ?

    Merci de l'aide que vous pourrez m'apporter

  2. #2
    Rédacteur
    Avatar de Paul Musso
    Profil pro
    Inscrit en
    Août 2008
    Messages
    368
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2008
    Messages : 368
    Points : 443
    Points
    443
    Par défaut
    Bonjour,

    Je pense que Oui c'est un peu utopique.

    Le mieux serait de mettre en place un système de pagination et ne jamais récupérer toutes les données d'un seul coup. DotNet propose des contrôles permettant de faire cela : GridView et ListView par exemple.

  3. #3
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Salut

    Pour Paul Musso

    1- GridView c'est obsolete
    2- Listview n'a pas d'intéret ici
    3- Les deux comme leurs noms l'indique sont des view et n'ont pas pour fonction de controler les flux de données !!!

    As-tu verifié ce qui prends du temps ?
    - Le query
    - Le binding du dgv sur ta datatable ?

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Tout d'abord merci pour les réponses.
    Le query prend du temps, et impossible de réduire ce temp, du moins pas beaucoup.

    Y a-t-il un moyen de ne prendre qu'une partie soit remplir le dataset partiellement et de dire à ce dataset qu'il est incomplet puis ensuite que le DataGrid gère via des événement la récupération du reste des données ?

  5. #5
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Salut

    1- Est tu certain qu'in be manque pas des index sur tes tables ? : un query de +/- 30000 records c'est pas enorme sauf si tu fais des jointures non indexee sur plusieurs grosses tables !

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Pardon je me suis mal exprimé, le query dure très peu, je travail sur des index et il n'y a pas de jointure. Ce qui est long, c'est de remplir le dataset à l'aide de cette table; c'est pour cela que j'aimerais le remplir partiellement.

  7. #7
    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
    J'avais le même problème sur le dataGridView.
    Sa solution : passer au Framework 3.5.

  8. #8
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    587
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Octobre 2006
    Messages : 587
    Points : 706
    Points
    706
    Par défaut
    Ou alors utiliser les traditionnels DataReader...

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Le problème n'est pas le DGV mais le remplissage du DataSet.
    Vu que je n'ai pas eu de réponse quant à une propriété du DataSet qui lui indiquerait qu'il est incomplet, je suppose que cela n'existe pas.

    Merci à tous pour votre aide

  10. #10
    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 me semble que le DGV peut-être géré en dynamique (je n'ai jamais testé).

    Dans ce mode, on indique simplement le nombres de lignes et les lignes peuvent se remplir seulement quand elles sont affichées.

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Graffito Voir le message
    Il me semble que le DGV peut-être géré en dynamique (je n'ai jamais testé).

    Dans ce mode, on indique simplement le nombres de lignes et les lignes peuvent se remplir seulement quand elles sont affichées.
    Saurais-tu comment faire ceci ?

  12. #12
    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
    Le terme approprié pour une gestion en dynamique est "Virtual mode".
    Voir par exemple : http://www.codeproject.com/KB/databa...ewCaching.aspx

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Graffito Voir le message
    Le terme approprié pour une gestion en dynamique est "Virtual mode".
    Voir par exemple : http://www.codeproject.com/KB/databa...ewCaching.aspx
    Merci, c'est ça qui me fallait. Un peu compliquer quand on ne fait pas des ordres SQL du côté serveur mais ça m'inspire pour une solution éventuelle.

    Merci de votre aide.

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

Discussions similaires

  1. Binder un dataset dans une datagrid
    Par tom572007 dans le forum Windows Forms
    Réponses: 0
    Dernier message: 15/04/2009, 13h20
  2. Réponses: 0
    Dernier message: 15/03/2009, 13h50
  3. Réponses: 1
    Dernier message: 29/09/2006, 08h59
  4. Réponses: 2
    Dernier message: 17/11/2005, 09h59
  5. [VB.NET] Insérer une colonne de CheckBox dans un DataGrid
    Par Manue.35 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 22/05/2003, 11h44

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