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 :

Remplir un datagridview par le contenu d'un tableau


Sujet :

C#

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Etudiante
    Inscrit en
    Mai 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Mai 2015
    Messages : 16
    Points : 9
    Points
    9
    Par défaut Remplir un datagridview par le contenu d'un tableau
    Salut tt le monde,

    J'aiune app winForm c# et je veux récupérer le résultat d'une fonction (résultat c'est un tableau) dans une datagridview suite à un click boutton. Le pb est que quand j'exécute mon code rien n'est afficher sur mon datagridview et j'ai pas compris ou est le pb.

    Voilà mon Code:

    la méthode qui donne comme résultat un tableau:

    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
    private decimal[] WACC()
            {
     
                decimal[] VE = new decimal[5];
                decimal[] BetaLevarag = new decimal[5];
                decimal[] Ecrp = new decimal[5];
                decimal[] DetteFin = new decimal[5];
                decimal[] CoutDette = new decimal[5];
                decimal[] DeltaEmpruntLT = new decimal[5];
                decimal[] DeltaConcoursbq = new decimal[5];
                decimal[] CMPC = new decimal[5];
     
     
                decimal[] Tauximpot = Select("Tauximpot", "DO", null);
                decimal[] FondsPropres = Select("FondsPropres", "DO", null);
                decimal[] EmpruntLT = Select("EmpruntLT", "DO", null);
                decimal[] Concoursbq = Select("Concoursbq", "DO", null);
                decimal[] VarTresorerie = Select("VarTresorerie", "DO", null);
                decimal[] ChargeFin = Select("CargeFin", "DO", null);
     
     
                for (int i = 0; i < 5; i++)
                {
                    DetteFin[i] = EmpruntLT[i] - Concoursbq[i] + VarTresorerie[i];
                    VE[i] = DetteFin[i] + FondsPropres[i];
                    DeltaEmpruntLT[i] = EmpruntLT[i] + EmpruntLT[i + 1];
                    DeltaConcoursbq[i] = Concoursbq[i] + Concoursbq[i + 1];
                    CoutDette[i] = ChargeFin[i] / ((DeltaEmpruntLT[i] / 2) + (DeltaConcoursbq[i] / 2));
     
                    CMPC[i] = ((DetteFin[i] / VE[i]) * CoutDette[i] * (1 - Tauximpot[i]));
                }
     
                return CMPC;
            }

    et voilà le code de l'événement click de mon bouton:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     private void navBarControl1_Click(object sender, EventArgs e)
            {
                var f = new decimal[5];
                f = WACC();
                dataGridView1.ColumnCount = f.Length;
     
     
                    dataGridView1.DataSource = f;
     
                //panelControl1.Visible.ToString();
     
     
            }
    Quelqu'un peut m'aider?!
    Merci d'avance
    Cordialement.

  2. #2
    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
    Code restructuré :
    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
    internal class WACCS() : List<WACC>
    { // le datasource doit être un tableau ou une liste ou un autre "ienumerable"
            internal FillWACCS()
            { 
               decimal[] Tauximpot = Select("Tauximpot", "DO", null);
               decimal[] FondsPropres = Select("FondsPropres", "DO", null);
               ... 
                for (int i = 0; i < 5; i++) WACCS.Add(new WACC(i,TauxImpot,FondsPropre, ...) ;
       }
    }
    
    internal class WACC()
    {  // définit les variables d'un élément de la liste (qui donneront les colonnes du DataGridView)
         internal decimal VE ;
         internal decimal Tauximpot;
         ...
        internal WACC(int i,decimal[] Tauximpot,decimal[] FondsPropres, ... )
        {  
           DetteFin[i] = EmpruntLT[i] - Concoursbq[i] + VarTresorerie[i];
           VE[i] = DetteFin[i] + FondsPropres[i];
           ...
         }
    }
    
    WACCS waccs=new WACCS() ;
    waccs.FillWACCS() ;
    ...
    dataGridView1.DataSource = waccs ;
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Etudiante
    Inscrit en
    Mai 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Mai 2015
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    Merci pour votre réponse

    J'ai testé le code que vous m'avez proposé et il m'affiche sur la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WACCS.Add(new WACC(i,Tauximpot,FondsPropres,VE));
    l'erreur suivante:

    Nom : Capture.PNG
Affichages : 385
Taille : 3,6 Ko

    Merci d'avance

    Cordialement

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Etudiante
    Inscrit en
    Mai 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Mai 2015
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Quelqu'un peut m'aider SVP?! j'ai essayé avec le code ci-dessous mais rien n'est affiché sur mon datagridview:

    J'ai créer la classe suivante:

    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
    using System;
    using System.Collections.Generic;
     
    using System.Linq;
    using System.Text;
    using System.Data.SqlClient;
     
    namespace pfffff
    {
        class WACCS: List<WACC>
        {
            SqlConnection mySqlConnection = new SqlConnection("Data Source = .\\SQLEXPRESS; Initial Catalog=AxisBase; Trusted_Connection=Yes");
            SqlCommand mySqlCommand = new SqlCommand();
            // le datasource doit être un tableau ou une liste ou un autre "ienumerable"
     
            public List<WACC> FillWACCS()
            { 
               decimal[] TauxImpot = Select("Tauximpot", "DO", null);
               decimal[] FondsPropre = Select("FondsPropres", "DO", null);
               decimal[] VEs = new decimal [5];
               var s = new WACCS();
                for (int i = 0; i < 5; i++) 
     
                { s.Add(new WACC(i,TauxImpot,FondsPropre,VEs));
     
                }
                return s;
     
            }
     
     
            public decimal[] Select(string commande, string table, string where)
            {
                try
                {
                    mySqlCommand = mySqlConnection.CreateCommand();
     
                    if (where == null)
                        mySqlCommand.CommandText = "SELECT " + commande + " FROM " + table;
                    else
                        mySqlCommand.CommandText = "SELECT " + commande + " FROM " + table + " WHERE " + where;
                    mySqlConnection.Open();
                    SqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader(); //je lance la commande
     
                    var liste = new List<decimal>();
                    while (mySqlDataReader.Read())
                    {
                        liste.Add(mySqlDataReader.GetValue(0).GetHashCode());
                    }
                    mySqlConnection.Close();
                    mySqlDataReader.Close();
                    return liste.ToArray();
                }
                catch (Exception eSelect)
                {
                    throw new Exception("Select exception : " + eSelect.Message);
                }
            }
     
     
     
     
     
        }
     
        class WACC
        {  // définit les variables d'un élément de la liste (qui donneront les colonnes du DataGridView)
             decimal[] VE { get; set; }
             decimal[] Tauximpot { get; set; }
             decimal[] FondsPropres { get; set; }
     
     
            public WACC(int i, decimal[] Tauximpot, decimal[] FondsPropres, decimal[] VE)
            {
                this.Tauximpot = Tauximpot;
                this.VE = VE;
                this.FondsPropres = FondsPropres;
                VE[i] = Tauximpot[i] + FondsPropres[i];
                //this.VE = VE;
            }
     
        }
     
     
     
     
    }


    et j'ai associé le binding à l'événement click suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     private void button2_Click(object sender, EventArgs e)
            {
                WACCS waccs=new WACCS() ;
                //waccs.FillWACCS() ;
                dataGridView1.DataSource = waccs.FillWACCS();
     
            }
    PS: j'ai une vingtaine de classe comme celle-ci qui récupérer les données de ma base de données et qui effectuent certains calculs et mon but c'est d'afficher le contenu de chaque classe en appuyant sur un bouton. J'ai associé un datagridview pour l'affichage (un seul datagridview pour tous les affichage) c'est pour cela je cherche à automatiser le binding. Sinn si quelqu'un a une autre idée qui me permet d'afficher un tableau sans utiliser le datagridview je serai reconnaissante.

    Merci d'avance
    Cordialement

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Etudiante
    Inscrit en
    Mai 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Mai 2015
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Personne ne peut m'aider SVP?!

  6. #6
    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
    Pour résoudre l'erreur de compilation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static List<WACC> FillWACCS()
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Etudiante
    Inscrit en
    Mai 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Mai 2015
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Merci pour votre réponse. ça marche

    Cordialement

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

Discussions similaires

  1. Remplir un DataGridView avec le contenu d'un fichier excel
    Par belmansour tidjani dans le forum Windows Forms
    Réponses: 7
    Dernier message: 05/06/2018, 14h08
  2. Remplir champ NULL par du contenu dans un INSERT
    Par Devilstuff dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/02/2010, 23h49
  3. Remplir une ComboBox dans un datagridview par datareader
    Par Machine Head dans le forum Windows Forms
    Réponses: 2
    Dernier message: 14/10/2009, 09h53
  4. Réponses: 2
    Dernier message: 28/11/2008, 11h22
  5. Réponses: 2
    Dernier message: 11/05/2006, 22h21

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