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 :

Liaison datagrid datareader [VB.NET][VS2005]


Sujet :

Windows Forms

  1. #1
    Membre régulier
    ingénieur informaticien
    Inscrit en
    Novembre 2005
    Messages
    114
    Détails du profil
    Informations professionnelles :
    Activité : ingénieur informaticien

    Informations forums :
    Inscription : Novembre 2005
    Messages : 114
    Points : 103
    Points
    103
    Par défaut Liaison datagrid datareader [VB.NET][VS2005]
    Bonjour
    J'aimerais afficher le resultat d'une requête dans un datagrid. J'ais déjà essayer avec un dataset et ça marche tant que le nombre d'enregistrements retournés est relativement petit (<10.000). Au delà, mon appli est d'une lenteur ...
    Aussi, étant donné que je ne fais qu'afficher les informations, je voudrais lier le datagrid à un datareader.
    NB: je développe sous VB 2005 Express Beta 2

  2. #2
    Expert éminent
    Avatar de neo.51
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    2 663
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 663
    Points : 6 418
    Points
    6 418
    Par défaut
    on ne peut pas, enfin pas directement.

    Tu peux toujours remplir une collection d'objets avec ton datareader et utiliser cette collection comme source de ton datagridview. Mais je pense pas qu'il y ai de grosses différences de perfs (faudrait faire un bench rapide tiens)

    Je pense que le problème vient surtout du fait qu'il est inconcevable d'avoir une interface UI qui affiche 10 000 enregistrements !!!

    Comment ton utilisateur va pouvoir visualiser 10 000 enregistrements. Ne faudrait-il pas que tu mettes en place des filtres qui génèreront des requetes SQL plus ciblés ?

  3. #3
    Membre régulier
    ingénieur informaticien
    Inscrit en
    Novembre 2005
    Messages
    114
    Détails du profil
    Informations professionnelles :
    Activité : ingénieur informaticien

    Informations forums :
    Inscription : Novembre 2005
    Messages : 114
    Points : 103
    Points
    103
    Par défaut [VB.Net][VS 2005] Comment gérer un dataset volumineux
    Bonjour
    Tout d'abord merci à toi néo.51.
    En fait, si j'ais opté pour un datareader, c'est que j'ais rencontré un problème avec le dataset.
    En effet, le trop grand nombre d'information à traiter ralentit considérablement mon appli. J'ais lu dans la documentation que le dataset résidait en mémoire. Alors comment procède t-on si le résultat de la requête renseignant le dataset est plus volumineux qu'il n'y a de place en mémoire.

  4. #4
    Expert éminent
    Avatar de neo.51
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    2 663
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 663
    Points : 6 418
    Points
    6 418
    Par défaut
    Ce que tu dis est souvent vrai en développement web : en gros on met les données dans un tableau au fur et à mesure qu'on génère la page et ainsi on se coltinne pas un dataset qui reste en mémoire pour chaque utilisateur qui vaut afficher les données.

    Le dataGridView est un controle fortement lié à une source de donnée, et qui dit source de donnée dit forcément collection à remplir et à garder en mémoire avant de l'afficher.

    Je pense quand même que 10 000 enregistrements à visualiser ça fait énorme et que tu dois pouvoir mieux cibler ton affichage.

    Mais en considérant que tu persistes et signe

    Soit tu fais un splashscreen pour faire patienter pendant le chargement (que tu fais dans un thread différent).

    Soit tu utilises un autre controle de grille qui te permettrait de génèrer ta grille à la volée pendant que tu lis ton datareader. C'est peut-être possible en dérivant le dataGridView mais je me suis jamais aventuré là dedant

  5. #5
    Membre régulier
    ingénieur informaticien
    Inscrit en
    Novembre 2005
    Messages
    114
    Détails du profil
    Informations professionnelles :
    Activité : ingénieur informaticien

    Informations forums :
    Inscription : Novembre 2005
    Messages : 114
    Points : 103
    Points
    103
    Par défaut
    Merci néo
    je vais changer de stratégie comme tu me le conseille. je serais ravi de pouvoir t'aider a mon tour. @ +

  6. #6
    Expert éminent
    Avatar de neo.51
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    2 663
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 663
    Points : 6 418
    Points
    6 418
    Par défaut
    merci de penser au bouton résolu

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

Discussions similaires

  1. [VB.NET][VS2005] Liaison bluetooth et exploitabilité
    Par joefou dans le forum Windows Mobile
    Réponses: 0
    Dernier message: 24/03/2009, 16h30
  2. [VB.Net][VS2005] "Statement is not valid in a name spac
    Par Irlandais dans le forum Windows Forms
    Réponses: 8
    Dernier message: 15/12/2005, 09h35
  3. [vb.net][vs2005] importation d'icone
    Par graphicsxp dans le forum Windows Forms
    Réponses: 3
    Dernier message: 07/12/2005, 16h20
  4. [vb.net][vs2005][Validating event] Control de sortie
    Par graphicsxp dans le forum Windows Forms
    Réponses: 8
    Dernier message: 06/12/2005, 14h01
  5. [vb.net][vs2005][notifyicon] question sur ShowBalloonTip
    Par graphicsxp dans le forum Windows Forms
    Réponses: 9
    Dernier message: 06/12/2005, 11h02

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