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 :

DataTable Format des valeurs dans les cellules


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 51
    Points : 62
    Points
    62
    Par défaut DataTable Format des valeurs dans les cellules
    Bonjour à tous,

    J'ai comme qui dirait un problème qui me c**** les c******. Enfin bon, alors voilà ça m'est arriver d'utiliser des GridView, des Table en Asp.Net, mais là comme un grand j'ai décidé d'utiliser une DataTable pour remplir ma GridView (ce qui est bien pratique quand même ^^).

    Et dans ma gridView j'ai une somme à faire sur plusieurs colonne d'une même ligne dans le but de calculer un total. Hey bien, figurez vous qu'avec une table j'y arrive très bien, mais avec une datatable il y a souvent un écran jaune qui apparaît avec : "Le format de la chaîne d'entrée est incorrect."

    Voici ma fonction de somme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
      double somme = 0;
            for (int i = 0; i < dt.Rows.Count; i++ )
            {
                somme = 0;
                for (int j = 0; j < nbMois; j++)
                {
                    somme += double.Parse(dt.Rows[i][6 + j].ToString());
                }
                dt.Rows[i][18] = somme.ToString();
            }
    Petite indication j'ai cru que la "," devait être un "." donc j'ai déjà essayé de faire un Replace, j'ai même essayer de ne prendre que le nombre avant la virgule avec un joli split, ça ne fonctionne pas. Int Float, Double etc. J'essaye j'essaye, mais l'erreur revient toujours.

    Merci d'avance si vous avez une idée du pourquoi et du comment, et bonne journée.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Points : 1 120
    Points
    1 120
    Par défaut
    Salut,

    Pourquoi ne pas utiliser DataColumn.Expression pour faire le calcul directement dans la datatable ?
    Si tu as beaucoup de colonnes ou une sorte de dynamisme à avoir, il faudra peut être le faire de ta manière.

    Quel est le type des colonnes de la datatable ? tu fait un .ToString(), mais si ce sont déjà des données dans un type numérique c'est inutile et en plus ça fait planter ton code.

    Dans le cas où tes colonnes sont de type string, utilise double.tryParse. C'est plus performant. Attention, du coup ton code ne lèvera pas d'exception, cela ne voudra pas dire qu'il fonctionne mais ça te permettra déjà de voir quelle valeur ne passe pas (une chaîne vide ou nulle ?)

    Bon courage,

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 51
    Points : 62
    Points
    62
    Par défaut
    Merci pour cette réponse si rapide.

    Alors j'ai testé le TryParse, qui me renvoie toujours 0. En même temps quand mon voit le type de ma colonne : System.DBNull. Est-il possible de changer ce type ? Enfin c'est à dire que la valeur dans ma colonne est loin d'être Null.

    Je vais déjà essayer de changer le type de ma colonne.

    Pour ce qui est du DataColumn.Expression, je regarderais dans la Faq comment ça fonctionne exactement.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 51
    Points : 62
    Points
    62
    Par défaut
    Résolu, il suffisait de mettre un type à la colonne, ce que je n'avais pas fait, donc.

    Merci encore pour ton conseil.

    A oui le type n'est effectif que s'il y a une valeur dans la case de la colonne, donc si quelqu'un à le même problème, il ne faut pas que la case soit vide.

    Bonne journée à tous, et merci à cybermaxs.

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

Discussions similaires

  1. Excel - Mettre des valeurs dans les cellules
    Par shuya dans le forum Débuter
    Réponses: 1
    Dernier message: 10/02/2009, 09h45
  2. DataGridView et format des valeurs dans les cellules
    Par saultapt dans le forum Windows Forms
    Réponses: 5
    Dernier message: 17/06/2008, 16h55
  3. Inserer des valeurs dans une cellule
    Par azerty53 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/09/2006, 16h27
  4. Réponses: 2
    Dernier message: 21/06/2006, 17h57
  5. JTable avec des JPanel dans les cellule
    Par pigpen dans le forum Composants
    Réponses: 11
    Dernier message: 13/04/2006, 19h58

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