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 :

Problème de code pour l'affichage d'un résultat dans ma datagridview [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Bachelier informatique de gestion
    Inscrit en
    Juillet 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Bachelier informatique de gestion
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 40
    Par défaut Problème de code pour l'affichage d'un résultat dans ma datagridview
    Bonsoir à tous,

    Voilà, j'ai des difficultés avec ma datagridview pour mon travail de fin d'études
    Je n'en ai jamais fait auparavant, j'ai su afficher a partir de ma bd sous phpmyadmin, les données dont j'ai besoin dans ma datagridview

    Mon soucis est que j'aimerais afficher le résultat d'un calcul dans une cellule de ma colonne TOTAL

    DataGridView dtgv = dataGridView1;
    DataTable dt = new DataTable();
    dt = Program.BD.GetTable(string.Format(@"SELECT lien_acte_technique_prix.id AS Id, code_acte_technique.code_acte_technique1 AS Code_1, code_acte_technique2.code_acte_technique2 AS Code_2, nom_acte_technique.nom_acte AS Nom_acte, prix_acte_technique.prix AS Prix
    FROM lien_acte_technique_prix LEFT JOIN code_acte_technique
    ON lien_acte_technique_prix.ref_code_acte_technique = code_acte_technique.id
    LEFT JOIN code_acte_technique2 ON
    lien_acte_technique_prix.ref_code_acte_technique2 = code_acte_technique2.id
    LEFT JOIN nom_acte_technique
    ON lien_acte_technique_prix.ref_nom_acte_technique = nom_acte_technique.id
    LEFT JOIN prix_acte_technique
    ON lien_acte_technique_prix.ref_prix_acte_technique = prix_acte_technique.id"));
    BindingSource bs = new BindingSource();
    bs.DataSource = dt;
    dtgv.DataSource = bs;

    foreach (DataGridViewColumn c in dtgv.Columns)
    {
    c.DataGridView.Font = new Font("Arial", 14F, GraphicsUnit.Pixel);
    }

    for (int i = 0; i < daymonth1; i++)
    {
    //dtgv.Columns.Add(new DataGridViewColumn() { HeaderText = Convert.ToString(i + 1) + "/" + month1, Name = "J" + Convert.ToString(i + 1), ValueType = typeof(int) });
    string Nom = "J" + Convert.ToString(i + 1);
    dtgv.Columns.Add(Nom, Convert.ToString(i + 1) + "/" + month1);
    dtgv.Columns[Nom].ValueType = typeof(int);
    }
    dtgv.Columns.Add("TOTAL", "TOTAL");

    for (int j = 0; j < dtgv.Columns.Count; j++)
    {
    dtgv.Columns[j].ReadOnly = (j < (dtgv.Columns.Count - daymonth1 - 1));
    dtgv.Columns[j].SortMode = DataGridViewColumnSortMode.NotSortable;
    }
    dtgv.CellValidated += new DataGridViewCellEventHandler(dtgv_CellValidated);

    string prix = dtgv.Rows[0].Cells[4].Value.ToString();
    double p = Convert.ToDouble(prix);
    double chiffre = 2;
    double resultat = chiffre * p;
    string r = resultat.ToString();
    label3.Text = r;
    //dtgv.Columns[36].ReadOnly = true;

    //Test afficher le resultat dans la première cellule de la colonne TOTAL
    //dtgv.Rows[0].Cells[36].Value = r;

    }

    Merci d'avance
    Images attachées Images attachées  

  2. #2
    Membre averti
    Homme Profil pro
    Bachelier informatique de gestion
    Inscrit en
    Juillet 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Bachelier informatique de gestion
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 40
    Par défaut
    Help me

  3. #3
    Membre averti
    Homme Profil pro
    Bachelier informatique de gestion
    Inscrit en
    Juillet 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Bachelier informatique de gestion
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 40
    Par défaut Voici l'explication plus claire
    Bonjour à tous,

    En pièce jointe une explication plus claire de ce que je voudrais réaliser

    Merci d'avance à tous ceux qui pourront m'aider.
    Fichiers attachés Fichiers attachés

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Bonjour,

    Il faut tout d'abord que tu déclares ta colonne dans ton GridView, côté ASPX.

    Ensuite côté C#, tu gères l'évènement OnRowDataBound de ton GridView, et tu y implémentes ton calcul. Tu pourras accéder à ta colonne, et y mettre la valeur que tu souhaites.

    P.S. : quand tu postes, n'oublie pas d'utiliser les balises [ CODE ] et [/ CODE ] (sans les espaces) pour rendre ton code plus lisible
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  5. #5
    Membre averti
    Homme Profil pro
    Bachelier informatique de gestion
    Inscrit en
    Juillet 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Bachelier informatique de gestion
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 40
    Par défaut
    J'ai oublié de dire je ne fais pas d'ASPX en fait, je ne vois pas comment faire ?
    Je travaille sous VS2008 en C# 2008 express

    Merci d'avance.

  6. #6
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Oups, au temps pour moi. Tu as plusieurs options :

    Tu peux utiliser l'évènement DataBindingComplete pour calculer dès la fin du binding. Tu peux également utiliser l'évènement CellValidated pour faire le calcul dès que l'utilisateur a saisi des données dans la colonne.

    Voici un exemple sur DataBindingComplete :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
    {
        var objValue3 = 0;
        foreach (DataGridViewRow row in dataGridView1.Rows)
        {
            var objValue1 = Convert.ToInt32(row.Cells[0].Value ?? 0);
            var objValue2 = Convert.ToInt32(row.Cells[1].Value ?? 0);
            objValue3 = (objValue1 + objValue2);
            row.Cells[2].Value = objValue3;
        }
    }

    Pour info j'ai au préalable mis mes 3 colonnes dans le DataGridView (une pour Value1, une pour Value2, et une pour Value3 (le résultat calculé). J'ai donc mis AutoGenerateColumns à false.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

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

Discussions similaires

  1. [VB 6.0] - problème avec Datagrid pour l'affichage de valeurs
    Par jimbololo dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 24/04/2007, 09h57
  2. Formater du code pour un affichage en html
    Par Cladjidane dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/11/2006, 14h35
  3. code pour l'affichage d'un arbre en visual c++
    Par med_anis_dk dans le forum MFC
    Réponses: 8
    Dernier message: 24/05/2006, 22h16
  4. [SimpleXML] Problème PHP5/XML pour des affichages particuliers
    Par vanilla dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 20/04/2006, 13h22

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