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

Accès aux données Discussion :

[ADO.net et C#]Problème datagrid


Sujet :

Accès aux données

  1. #1
    Débutant
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2004
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 452
    Points : 324
    Points
    324
    Par défaut [ADO.net et C#]Problème datagrid
    Bonjour à tous.
    Je vous écris parce que j'ai un petit souci.
    _ J'ai une base de donnée mysql5
    _ je dispose d'une application C# contenant des datagrid qui se remplisse
    grace à des requetes sql.

    Mon souci c'est que lorsque j'execute la requete directement depuis mysqlQueryBrowser c'a ne me prend pas plus que quelques 100eme de seconde.
    Alors que lorsque j'execute cette requete êt que je remplis mon datagrid cela me prend environ 1 minute 30.
    Je suppose que c'est du au remplissage de mon datagrid.

    J'aurai donc voulu savoir si il etait possible de diminuer ce temps la.
    aussi mes datagrid sont entièrement rempli avec du code et non avec les assistant.

    j'ai pensé à faire un simple affichage du contenu de ma base, cela pourrais provenir du faite que les données soit directement transferer sur le logiciel qui puisse prendre du temps.
    Je sais que les datagrid peuvent etre rempli sans pour autant envoyer les données de mysql vers c#

    J'espere avoir été claire
    Merci

  2. #2
    Débutant
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2004
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 452
    Points : 324
    Points
    324
    Par défaut
    Après avoir fait des essai à priori ca ne proviens pas de l'affichage des informations dans la datagrid, ou plutot de l'affichage à l'ecran.

    voici mon code pour illustrer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    				// Nettoyage de printemps
    				dsLocal.Reset();
     
    				// Initialisation de la commande
    				odataCmd.Connection = odataCnct;
    				odataCmd.CommandText = MyQuery;
     
    				// Initialisation de l'adapter
    				odataAdapt.SelectCommand = odataCmd;
    				odataAdapt.Fill(dsLocal);
     
    				// Affichage du resultat
    				dgLocal.DataSource = dsLocal.Tables["Table"].DefaultView;
    cette portion de code met environ 1minute 30 pour s'executer et donc remplir mes datagrid et les afficher à l'ecran.

    j'avais essayé sans afficher le resultat en omettant cette ligne mais le resultat est identique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	dgLocal.DataSource = dsLocal.Tables["Table"].DefaultView;
    Voila si quelqu'un pouvais m'aider je lui en serai tres reconnaissant.

  3. #3
    Débutant
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2004
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 452
    Points : 324
    Points
    324
    Par défaut
    A priori ca proviens de cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    odataAdapt.Fill(dsLocal);
    Voila je voudrais savoir si il y a possibilité d'optimiser cette ligne la ou de faire ce traitement d'une autre manière.

    Merci et desolé pour ne pas avoir édité mon 1er message.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2002
    Messages : 77
    Points : 73
    Points
    73
    Par défaut
    bonjour

    Peut être votre DataSet contient beaucoup de contraintes. il prend plus de temps de se charger si la propriété EnforceConstraints = true

    alors mes la à false avant de remplir ton Dataset apres tu la remes à True
    genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ds.Eforceconstraints = False;
    tonDataAdapter.Fill(ds,...);
    ds.EnforceConstraints = True;
    et tu remplis ton DataGrid
    et bonne chance

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/10/2010, 12h32
  2. Réponses: 2
    Dernier message: 13/12/2006, 10h09
  3. [C#/ADO.NET] Comment Updater une table via Datagrid ?
    Par Pierre_45 dans le forum Accès aux données
    Réponses: 4
    Dernier message: 06/07/2006, 12h40
  4. [VB.Net]problème datagrid
    Par souaddemaroc dans le forum Windows Forms
    Réponses: 4
    Dernier message: 27/03/2006, 18h50
  5. [ADO.NET] MAJ BDD à partir d'un DataSet d'un DataGrid
    Par bart64 dans le forum Accès aux données
    Réponses: 15
    Dernier message: 20/12/2005, 19h16

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