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 :

[DataGridView] lenteur incompréhensible dans un petit code


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 198
    Points : 106
    Points
    106
    Par défaut [DataGridView] lenteur incompréhensible dans un petit code
    Bonjour,

    J'ai placé sur une "form" le composant datagridview que j'ai moi même remplis à la main. Il y a en tout 5 lignes, et pourtant on voit largement le rafraichissement se faire, ce qui est de 1 désagréable et de 2 plutôt surprenant.

    Bizarrement, sur des pc avec moins bonne config parfois ça fonctionne mieux.

    Je ne sais pas si c'est une erreur dans mon code ou une mauvaise utilisation d'un dataReader par rapport à un dataSet mais c'est quand même pas possible que C# soit si lent. Alors si vous pouviez me mettre sur le chemin, ca serait super

    Merci d'avance.

    PS : Si vous voyez des choses pas très jolies dans mon code ou des choses qui peuvent mieux se faire, n'hésitez pas à critiquer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     DataTable table = new DataTable();
                table.Columns.Add("Id");
                table.Columns.Add("Nom");
                table.Columns.Add("Prénom");
                table.Columns.Add("Téléphone");
                table.Columns.Add("Adresse");
                table.Columns.Add("N°");
                table.Columns.Add("Responsable");
     
                String query;
                OdbcCommand cmdSql = new OdbcCommand();
                String connectString = "DSN=test;";//UID="";PWD="";ConnectionTimeOut=60";
                cmdSql.Connection = new OdbcConnection(connectString);
                cmdSql.Connection.Open();
                query = "SELECT p1.PeId, p1.PeNom,p1.PePrenom,p1.PeTel,p1.PeRue,p1.PeNumero ,p2.PeNom AS respNom , p2.PePrenom AS respPrenom,p2.PeId AS respId" +
                            " FROM Personnes p1 " +
                            " LEFT JOIN Personnes p2 ON p1.PeResponsable = p2.PeId";
                cmdSql.CommandText = query;
                OdbcDataReader dataRead = cmdSql.ExecuteReader();
     
                DataRow my_row;
     
                while (dataRead.Read())
                {
                    my_row = table.NewRow();
                    my_row[0] = dataRead["PeId"].ToString();//id
                    my_row[1] = dataRead["PeNom"].ToString();//nom
                    my_row[2] = dataRead["PePrenom"].ToString();//prénom
                    my_row[3] = dataRead["PeTel"].ToString();//tel
                    my_row[4] = dataRead["PeRue"].ToString();//adresse
                    my_row[5] = dataRead["PeNumero"].ToString();//num
                    my_row[6] = dataRead["respId"].ToString() + " " + dataRead["respNom"].ToString() + " " + dataRead["respPrenom"].ToString(); ;//Responsable
     
                    table.Rows.Add(my_row);
                }
     
                dataGridView1.ReadOnly = true;
                dataGridView1.DataSource = table;
                dataRead.Close();
                cmdSql.Connection.Close();

    configuration actuelle :
    Core 2 duo 3ghz
    4g de RAM
    Windows x32
    Base de donnée Access (accdb) avec lien ODBC

  2. #2
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Salut,

    est-ce que tu as essaye de mesurer la durée d'exécution de tes lignes de code, pour voir ou est le goulot d'étranglement ?

    De ce que je me rappelle, en Access, le temps d'ouverture de la connexion est parfois un peu (beaucoup) long...

    Pour le code, je vois pas de gros pb a premiere vue, mais si tu utilise un datareader pour tout copier dans une datatable, autant utiliser un dataset

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    String connectString = "DSN=test;";
    DataSet ds=new DataSet("Personnes");
     
    using (OdbcConnection conn = new OdbcConnection(connectString)){
      conn.Open();
      string query = "SELECT p1.PeId AS Id,  p1.PeNom AS Nom ,p1.PePrenom AS Prénom,p1.PeTel AS Téléphone,p1.PeRue AS Adresse,p1.PeNumero AS N°,p2.PeNom & ' ' & p2.PePrenom & ' ' & p2.PeId AS AS Responsable " +
      " FROM Personnes p1 " +
      " LEFT JOIN Personnes p2 ON p1.PeResponsable = p2.PeId";
      OdbcDataAdapter adapter= new OdbcDataAdapter (query, conn );            
      adapter.Fill(ds,"Personnes"); 
    } 
    dataGridView1.ReadOnly = true;
    dataGridView1.DataSource = ds;
    Apres, pour les perfs, je te conseille de faire des debug.print des timespan d'une ligne a l'autre...

    come ca, au moins, tu es fixé

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 198
    Points : 106
    Points
    106
    Par défaut
    Merci pour ta réponse, je suis étonné de voir à quel point tu as réduit mon code :p

    Seulement, j'ai remplacé l'entierté de mon code par le tiens et la datagridview n'affiche rien. J'ai bien sur essayé de voir par moi même en chipotant un peu mais je ne trouve pas. J'ai l'impression que mon dataset est vide même en réduisant au minimum la requête pour diminuer les problèmes du genre.
    Les colonnes sont initialisées automatiquement quand on affecte le data source ?

    Et au passage, pourquoi il fait toujours mettre le readonly à true avant d'affecter le dataset d'une datagridview ?

    [EDIT1] mon dataSet n'est pas vide, il contient bien mes lignes

    [EDIT2] Le problème était d'affecter ds.Tables["Personnes"]. Maintenant je vais faire des print pour voir ce qui prend le plus de temps car ca s'est améliorer. Mais pour 33 tuples cela met 2 secondes pour rafraichir ma frame (ca commence par afficher ma datagridview qui est en haut et puis mon groupBox juste en bas). Je ne sais pas si ca peut avoir un rapport mais ma 1er frame affiche ma 2e (contenant la datagridview) en faisant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Maframe mf = new MaFrame();
    fs.showDialog();

  4. #4
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Si tu veux mesurer efficacement les performances, je te conseille d'utiliser un profiler. La plupart sont capable de pointer assez justement les points chauds (goulots d'étranglements).

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 198
    Points : 106
    Points
    106
    Par défaut
    Le seule profiler que j'ai trouvé c'est "Nprof" qui malheureusement parle en %.

    Pour les tests avec timeSpan j'obtient une durée d'environ 110 ms pour la méthode fillGrid (qui contient uniquement le code donné par pvialatte).

    Avec le profiler, je préfère mettre une capture d'écran car je ne suis pas sur d'interpréter assez bien la chose



    Cependant je pense que le problèmes vient plutot d'ailleurs. C'est très bizarre parce que le code du projet contient 1 forme vide avec un bouton qui ouvre une 2e Form avec pour seul code celui de FillGrid. Est-ce possible que le problème vient de CSharp ?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 198
    Points : 106
    Points
    106
    Par défaut
    Oups .. double post

  7. #7
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    la datagridview n'affiche rien
    euh...oui, en fait, comme tu fais le binding sur un dataset, je crois qu'il faut ajouter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataGridView1.DataMember = ds.Tables[0].TableName;



    Sinon, je crois me rappeler qu'a l'epoque (oh combien lointaine) ou je faisais du winforms, les datagridview etaient effectivement tres lentes, et qu'on avait au final utilise un autre composant que la dgv de base...

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 198
    Points : 106
    Points
    106
    Par défaut
    Oui c'est ce que j'avais trouvé juste en haut :p
    Et quel composant tu proposes ?

    J'avais déjà utilisé les datagridview en C++.NET et il n'y avait pas se problème.

    Y a t'il d'autre moyens de se connecter à la DB de façon plus performante? Sans lien odbc par exemple

  9. #9
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Citation Envoyé par AsPrO Voir le message
    Et quel composant tu proposes ?
    36 15 google

    http://www.10tec.com/home/Products/d...aGridView.aspx

    Je me rappelle plus du tout de quel composant on avait utilise (c'etait il y'a, quoi, 3/4 ans minimum...)

    Y a t'il d'autre moyens de se connecter à la DB de façon plus performante? Sans lien odbc par exemple
    Essaye avec OleDB -> OleDbConnection, ca te permettra au moins de virer le DSN

    Ceci dit, pour une base de donnees performante, vire access

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 198
    Points : 106
    Points
    106
    Par défaut
    Ce soir je vais tester avec OleDb

    Je sais que Access n'est pas le plus performant mais c'est pour une base de donnée de 10 tables avec rarement plus 100 lignes par tables.
    Puis comme je disais, j'ai déja utilisé Access pour d'autres base de donnée en java et en C++.NET et ça allait très bien. Ca doit vraiment être le composant datagridview le problème.

    iGrid.NET m'a l'air bien mais payant, je vais donc en chercher un autre ou utiliser un composant qui n'a rien avoir avec des DB mais qui permet juste de faire des colonnes ou alors je retourne sur C++.NET.

    En cherchant, j'ai trouvé comme piste le virtual mode et de remplir la grid à la main sans affecté le dataset.

    Je suis bluffé par la nullitude de ce composant.

  11. #11
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Citation Envoyé par AsPrO Voir le message
    Je suis bluffé par la nullitude de ce composant.
    La dgv est loin d'être parfaite, mais mieux vaut explorer plus de piste avant de le remettre en cause si vite... Si ta source de données est limitée à quelques centaines ou milliers de records, elle est largement suffisante.

    D'autant plus que si tu tu dis que ça marchait impec en C++/CLI, c'est que le problème n'est pas dans le composant graphique mais dans la façon de l'utiliser.

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 198
    Points : 106
    Points
    106
    Par défaut
    Citation Envoyé par Guulh Voir le message
    La dgv est loin d'être parfaite, mais mieux vaut explorer plus de piste avant de le remettre en cause si vite... Si ta source de données est limitée à quelques centaines ou milliers de records, elle est largement suffisante.

    D'autant plus que si tu tu dis que ça marchait impec en C++/CLI, c'est que le problème n'est pas dans le composant graphique mais dans la façon de l'utiliser.
    L'entierté de mon code est celui donné dans la première réponse de pvialatte donc tu peux voir si c'est bien écris ou non.
    Pour la façon de l'utiliser, je ne vois que le fait d'affecter "sauvagement" une source de donné au dataSet qui pourrait être défaillant, j'essayerais donc de la remplir manuellement. Je vais également réinstaller ma framework

    En plus d'après des recherches sur google, je ne suis pas le seul à rencontrer ce problème mais je n'ai pu lire aucune solutions.

    Mais si tu as d'autres pistes, je suis preneur :p

  13. #13
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Citation Envoyé par AsPrO Voir le message
    Mais si tu as d'autres pistes, je suis preneur :p
    Quand tu parlais plus haut de C++.Net, tu voulais dire C++/CLI, c'est à dire du C++ managé ? Parce que si c'est le cas, la traduction bourrine de ce que tu avais codé en C++ n'a aucune raison d'avoir des performances notablement différentes en C#.

    Et bonne chance, la chasse au goulot d'étranglement est pas la tâche la plus facile du développeur

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 198
    Points : 106
    Points
    106
    Par défaut
    Citation Envoyé par Guulh Voir le message
    Quand tu parlais plus haut de C++.Net, tu voulais dire C++/CLI, c'est à dire du C++ managé ? Parce que si c'est le cas, la traduction bourrine de ce que tu avais codé en C++ n'a aucune raison d'avoir des performances notablement différentes en C#.

    Et bonne chance, la chasse au goulot d'étranglement est pas la tâche la plus facile du développeur
    Le goulot d'étranglement, c'est l'endroit qui prend le + de temps ? Parce que j'ai mis un screenshot d'un profiler, et à part voir que les method d'affichage du datagridview prennent beaucoup de temps je ne vois pas ce que je peux y faire

  15. #15
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Citation Envoyé par AsPrO Voir le message
    Le goulot d'étranglement, c'est l'endroit qui prend le + de temps ? Parce que j'ai mis un screenshot d'un profiler, et à part voir que les method d'affichage du datagridview prennent beaucoup de temps je ne vois pas ce que je peux y faire
    J'insiste : aucune raison d'avoir des perfs différentes entre C++/CLI et C#. Pour voir pourquoi ton code C# est lent, compare-le à ton code C++ existant.
    Les méthodes d'affichage prennent du temps parce que ce sont des méthodes de dessin et qu'elles sont donc lancées souvent. Alors que ton accès à la base de donnée n'est fait qu'une fois.

    Tu devrais regarder dans ton code l'ensemble de tes appels à la grille, pour voir si par hasard tu n'aurais pas plugué à l'un de ses events une méthode consommatrice en ressources. Parce qu'autrement, je vois pas pourquoi ça serait lent

  16. #16
    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
    Je suis bluffé par la nullitude de ce composant.
    +1, il m'a bien gonflé aussi dans mes devellopements

    J'ai eu aussi des problèmes de performance d'affichage : ils ont été résolus par le FrameWork 3.5 (réduction des temps par un facteur 10).

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 198
    Points : 106
    Points
    106
    Par défaut
    J'ai installé la frame 3.5 ... et miracle quoi ...
    C'est juste chiant que pour les machines avec 2000 çà tournera pas super étant donné que 3.5 ne tourne qu'à partir de XP

  18. #18
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    Le DataGridView est un composant avec lequel il faut passer beaucoup de temps pour qu'il fonctionne bien, il faut faire gaffe aux nombreux évènements que l'on peut activer et surtout aux évènement qui déclenchent d'autres évènements.
    Dans une ancienne application, je ne comprenais pas pourquoi mon DataGridView se chargeait 2 fois d'affilée... En fait c'était une question d'évènements d'initialisation qui entraînait 2 fois son chargement complet.

    Par contre, lorsque on a bien travaillé dessus, il s'avère un super atout pour la présentation et la modif. des données.

    PS: Et tant mieux s'il a été amélioré dans le Framework 3.5.

  19. #19
    Membre expérimenté Avatar de Tober
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2007
    Messages
    824
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 824
    Points : 1 381
    Points
    1 381
    Par défaut
    C'est vrai que les composants complexes comme ca sont souvent difficile a gerer.
    Par exemple, j'ai du utiliser un arbre une fois, et cet arbre avait des checkbox dedans. Quand je check un noeud, j'avais tout un algo pour checker d'autres noeuds a des endroits differents dans l'arbre (un vrai cirque).
    Mais vu que mon traitement qui gere le fait que je check ds l'arbre et que dans ce traitement je check aussi dans l'arbre (par programmation cette fois), je rappelais en chaine ce meme evenement (et malheureusement ca bouclait pas indefiniment sinon je l'aurais forcement repere facilement ).
    Finalement, j'ai trouve une solution de merde qui consiste a desactiver l'evenement check au debut du traitement de l'evenement, et je le reactive a la fin (oui, c'est moche)

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 198
    Points : 106
    Points
    106
    Par défaut
    J'ai regardé le code et je ne vois à aucun moment un évènement qui aurait pu être lié à la datagridview. Voici donc le code d'une simple frame avec uniquement une datagridview qui freeze. Code qui est généré automatiquement par visual.

    Inutile de dire que si vous trouvez ce qui va pas, vous êtes génial lol

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
     
    /// <summary>
            /// Required method for Designer support - do not modify
            /// the contents of this method with the code editor.
            /// </summary>
            private void InitializeComponent()
            {
                this.components = new System.ComponentModel.Container();
                this.accesDataSet = new WindowsFormsApplication2.AccesDataSet();
                this.dataGridView1 = new System.Windows.Forms.DataGridView();
                this.complexBindingSource = new System.Windows.Forms.BindingSource(this.components);
                this.complexTableAdapter = new WindowsFormsApplication2.AccesDataSetTableAdapters.ComplexTableAdapter();
                this.coIdDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
                this.coRueDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
                this.coNumeroDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
                this.coDescriptionDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
                this.coTelDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
                this.coResponsableDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
                ((System.ComponentModel.ISupportInitialize)(this.accesDataSet)).BeginInit();
                ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
                ((System.ComponentModel.ISupportInitialize)(this.complexBindingSource)).BeginInit();
                this.SuspendLayout();
                // 
                // accesDataSet
                // 
                this.accesDataSet.DataSetName = "AccesDataSet";
                this.accesDataSet.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema;
                // 
                // dataGridView1
                // 
                this.dataGridView1.AutoGenerateColumns = false;
                this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
                this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
                this.coIdDataGridViewTextBoxColumn,
                this.coRueDataGridViewTextBoxColumn,
                this.coNumeroDataGridViewTextBoxColumn,
                this.coDescriptionDataGridViewTextBoxColumn,
                this.coTelDataGridViewTextBoxColumn,
                this.coResponsableDataGridViewTextBoxColumn});
                this.dataGridView1.DataSource = this.complexBindingSource;
                this.dataGridView1.Location = new System.Drawing.Point(61, 36);
                this.dataGridView1.Name = "dataGridView1";
                this.dataGridView1.Size = new System.Drawing.Size(660, 150);
                this.dataGridView1.TabIndex = 0;
                // 
                // complexBindingSource
                // 
                this.complexBindingSource.DataMember = "Complex";
                this.complexBindingSource.DataSource = this.accesDataSet;
                // 
                // complexTableAdapter
                // 
                this.complexTableAdapter.ClearBeforeFill = true;
                // 
                // coIdDataGridViewTextBoxColumn
                // 
                this.coIdDataGridViewTextBoxColumn.DataPropertyName = "CoId";
                this.coIdDataGridViewTextBoxColumn.HeaderText = "CoId";
                this.coIdDataGridViewTextBoxColumn.Name = "coIdDataGridViewTextBoxColumn";
                // 
                // coRueDataGridViewTextBoxColumn
                // 
                this.coRueDataGridViewTextBoxColumn.DataPropertyName = "CoRue";
                this.coRueDataGridViewTextBoxColumn.HeaderText = "CoRue";
                this.coRueDataGridViewTextBoxColumn.Name = "coRueDataGridViewTextBoxColumn";
                // 
                // coNumeroDataGridViewTextBoxColumn
                // 
                this.coNumeroDataGridViewTextBoxColumn.DataPropertyName = "CoNumero";
                this.coNumeroDataGridViewTextBoxColumn.HeaderText = "CoNumero";
                this.coNumeroDataGridViewTextBoxColumn.Name = "coNumeroDataGridViewTextBoxColumn";
                // 
                // coDescriptionDataGridViewTextBoxColumn
                // 
                this.coDescriptionDataGridViewTextBoxColumn.DataPropertyName = "CoDescription";
                this.coDescriptionDataGridViewTextBoxColumn.HeaderText = "CoDescription";
                this.coDescriptionDataGridViewTextBoxColumn.Name = "coDescriptionDataGridViewTextBoxColumn";
                // 
                // coTelDataGridViewTextBoxColumn
                // 
                this.coTelDataGridViewTextBoxColumn.DataPropertyName = "CoTel";
                this.coTelDataGridViewTextBoxColumn.HeaderText = "CoTel";
                this.coTelDataGridViewTextBoxColumn.Name = "coTelDataGridViewTextBoxColumn";
                // 
                // coResponsableDataGridViewTextBoxColumn
                // 
                this.coResponsableDataGridViewTextBoxColumn.DataPropertyName = "CoResponsable";
                this.coResponsableDataGridViewTextBoxColumn.HeaderText = "CoResponsable";
                this.coResponsableDataGridViewTextBoxColumn.Name = "coResponsableDataGridViewTextBoxColumn";
                // 
                // Form1
                // 
                this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
                this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
                this.ClientSize = new System.Drawing.Size(869, 367);
                this.Controls.Add(this.dataGridView1);
                this.Name = "Form1";
                this.Text = "Form1";
                this.Load += new System.EventHandler(this.Form1_Load);
                ((System.ComponentModel.ISupportInitialize)(this.accesDataSet)).EndInit();
                ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
                ((System.ComponentModel.ISupportInitialize)(this.complexBindingSource)).EndInit();
                this.ResumeLayout(false);
     
            }

Discussions similaires

  1. erreur incomprehensible dans un petit code
    Par feynman dans le forum Fortran
    Réponses: 1
    Dernier message: 30/12/2009, 00h45
  2. erreur dans petit code
    Par sarainformatique dans le forum Débuter
    Réponses: 3
    Dernier message: 15/01/2009, 12h26
  3. probleme dans petit code
    Par sarainformatique dans le forum C++
    Réponses: 4
    Dernier message: 10/01/2009, 12h17
  4. Réponses: 9
    Dernier message: 11/04/2008, 14h32
  5. [MySQL] Erreur incompréhensible dans mon code
    Par L'aigle de Carthage dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 26/03/2008, 16h02

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