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 :

Est ce que j'utilise la bonne méthode ?


Sujet :

Windows Forms

  1. #1
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut Est ce que j'utilise la bonne méthode ?
    salut tout le monde,
    J'ai écrit le code suivant qui fait une requête et qui rempli un MS Chart et une grille. Pour cela j'utilise DataAdapter et après un dataset est ce la meilleure façon de faire ?

    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
                Devart.Data.MySql.MySqlDataAdapter myDataAdapter =
                new Devart.Data.MySql.MySqlDataAdapter(
                "SELECT * "+
                "FROM Table1 as fam join Table2 as hfb "+
                "on hfb.id_produit=fam.id_produit and hfb.id_famille=fam.id_famille "+
                "where fam.id_produit=14 and fam.id_famille=2 "+
                , (Devart.Data.MySql.MySqlConnection)(Devart.Common.GlobalComponentsCache.GetObjectByName("FormPrincipale.mySqlConnection")));
     
                // Set chart data source
                //chart1.DataSource = myDataAdapter;
     
                DataSet sourceDataSet = new DataSet();
                myDataAdapter.Fill(sourceDataSet, "Quantite");
     
                chart1.DataSource = sourceDataSet.Tables["Quantite"];
     
                // Set series members names for the X and Y values 
                chart1.Series["SeriesEnCours"].XValueMember = "alias";
                chart1.Series["SeriesEnCours"].YValueMembers = "EnCours";
                chart1.Series["SeriesEnAttente"].YValueMembers = "EnAttente";
                // Data bind to the selected data source
                //chart1.DataBind();
     
                //DataSet sourceDataSet = new DataSet();
                //myDataAdapter.Fill(sourceDataSet, "Quantite");
     
                gridControl1.DataSource = sourceDataSet.Tables["Quantite"];
                gridView1.Columns[0].Visible=false;
                gridView1.Columns[1].Visible = false;
                gridView1.Columns[2].Visible = false;
                gridView1.Columns[3].Visible = false;
     
                gridView1.Columns[4].Caption = "Etape";
                gridView1.Columns[5].Caption = "Nombre de pièces en attentes";
                gridView1.Columns[6].Caption = "Nombre de pièces en cours";

  2. #2
    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

    Avec les datatable et SURTOUT les DataGridView il y a un truc a bannir c'est le referencement ordinal

    Mais tu travaille avec quelllle version du FW et de C# ?

    Au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                gridView1.Columns[0].Visible=false;
                gridView1.Columns[4].Caption = "Etape";
    Utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                gridView1.Columns["Machin"].Visible=false;
                gridView1.Columns["Untel"].Caption = "Etape";
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  3. #3
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut
    salut olibara et mlerci pour ta réponse,

    Mais tu travaille avec quelllle version du FW et de C# ?
    Alors j'utilise le framewrok 3.5 avec visual studio 2008


    Au lieu de
    Code :

    gridView1.Columns[0].Visible=false;
    gridView1.Columns[4].Caption = "Etape";

    Utilise
    Code :

    gridView1.Columns["Machin"].Visible=false;
    gridView1.Columns["Untel"].Caption = "Etape";
    J'utilise la première méthode car je pensais justement que c'était plus rapide que d'utiliser le nom de la colonne.

    Et petite question qu'est ce que le référencement ordinal ?

  4. #4
    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
    Ordinal derivé de "ordre"

    Un reférencement ordinal signifie que tu donne une référence d'ordre a un élément : 0,1,2,3

    Comme .NET permet le referencement sémantique "UN", "DEUX", "POMME" c'est evidemment beaucoup plus stable et préférable au premier

    tu parlais de GridView1 (joli nom ) Mais le FW 3.5 WinForm ne connais que le DataGridView ?
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  5. #5
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut
    ok donc je ne gagnerai pas en performance avec un référencement ordinal ?

    Étonnant mais bon pourquoi pas.

    GridView1 est en effet un nom un peu barbare mais bon je fais des tests alors pas de soucis et le GridView1 fait référence à un type de DevExpress.

    Autrement ca ne te chiquer pas que j'utilise un dataset pour connecter mon composant gridview et chart ? C'est la meilleure méthode au niveau des performances ?

  6. #6
    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
    Rassure toi,

    Je suis aussi un maniaque de la perf et j'ai eu le meme reflexe que toi au début

    Mais franchement ce que tu pourrais peut-etre gagner en perf est insignifiant pen comparaison au confort de progrmation

    Reflexion beaucoup plus large :
    au niveau utilisateurs ....
    est il preferable de perdre quelques secondes par an dans l'utilisation d'une APP stable ou de perdre quelque jours dans l'attente du développeur qui rame dans son code en essayant de gagner quelques millisecondes par-ci par-la ?

    Pour le dataset c'est tout a fait la bonne methode sauf qu'il serait plus pertinent de parler de DataTable le dataset n'etant que le container d'une collection de datatable
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  7. #7
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut
    Merci de ton indulgence olibara .

    En effet je préférais avoir une maintenance plus facile du code source.

    Après je suis un peu obsédé par les performances parce que je passe d'un langage natif à un langage managé et je remarque que les performances ne sont pas les même, alors je ne veux pas aggraver le "problème".

    Je lis souvent dans les forums que les datasets ne sont pas forcement la meilleure méthode en terme de rapidité d'où ma grosse interrogation.

    Par contre je note bien au niveau de la sémantique le DataTable au lieu du Dataset.

    D'ailleurs si je peux me permettre une question tierce, je vois dans des applications que certain font des relations à l'intérieur des dataTables.
    Quel est l'intérêt de faire une telle méthode plutôt que de faire des requêtes avec des paramètres ?

Discussions similaires

  1. Réponses: 0
    Dernier message: 25/01/2011, 12h34
  2. Réponses: 0
    Dernier message: 09/12/2010, 12h32
  3. Réponses: 0
    Dernier message: 17/03/2010, 11h24
  4. [GRASP] Est-ce que j'utilise correctement les design pattern?
    Par Tourix dans le forum Design Patterns
    Réponses: 7
    Dernier message: 21/06/2006, 18h27
  5. Réponses: 3
    Dernier message: 19/07/2002, 15h01

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