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 :

FormatException was unhandled


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    273
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 273
    Par défaut FormatException was unhandled
    Bonjour,

    J'ai un champs ID de type qui contient la valeur dans une table Sql Server. Pour traiter ce champs dans mon code, j'ai déclaré une variable de type .

    Lorsque j'essaie de récupérer la valeur comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaVariable = Convert.ToDouble(reader["ID"].ToString());
    une exception de type FormatException est levée.

    ?

    Merci,

  2. #2
    Membre éclairé
    Avatar de Etanne
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 469
    Par défaut
    Bonjour,

    Je pense que "reader["ID"].ToString()" doit vous retourner la chaîne de caractères suivante : "NULL".

    Vous devez donc vérifier si la valeur est null, voici un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if (reader["ID"] == DBNull.Value) 
    {  
        // La valeur est NULL
        MaVariable = 0.0;
    }
    else
    {
        // On a bien une valeur
        MaVariable = reader.GetDouble(reader.GetOrdinal("ID"));
    }
    Version en une ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     MaVariable = (reader["ID"] == DBNull.Value) ? 0.0 : reader.GetDouble(reader.GetOrdinal("ID");
    Etanne

  3. #3
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    273
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 273
    Par défaut
    Merci pour cette réponse rapide.

    Pouvez me dire la différence entre
    double
    et
    Double
    et si j'ai bien fait d'utiliser un Double pour faire la correspondance avec le le type
    numeric(18 0)
    ?

  4. #4
    Rédacteur

    Avatar de Jean-Michel Ormes
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    1 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 838
    Par défaut
    Citation Envoyé par Jinkas Voir le message
    Merci pour cette réponse rapide.

    Pouvez me dire la différence entre et et si j'ai bien fait d'utiliser un Double pour faire la correspondance avec le le type ?
    Il n'y a pas de différence entre double et Double. double c'est juste un alias de System.Double.
    Il aurait mieux valu utiliser un Decimal par contre (cf. correspondance ici).

  5. #5
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    sinon tu as la méthode isDbNull qui permet de savoir si le champ est null en base: http://msdn.microsoft.com/en-us/libr...vs.100%29.aspx

  6. #6
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    273
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 273
    Par défaut
    C'est à dire comme cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if (reader["ID"] == DBNull.Value)
    {
    	// La valeur est NULL
        MaVariable = 0;
    }
    else
    {
        // On a bien une valeur
        MaVariable = reader.GetDecimal(reader.GetOrdinal("ID")); 
    }
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaVariable = (reader["ID"] == DBNull.Value) ? 0 : reader.GetDecimal(reader.GetOrdinal("ID");
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (!reader.IsDBNull(reader.GetOrdinal("ID")))
    	MaVariable = reader.GetDecimal(reader.GetOrdinal("ID"));
    ?

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/10/2009, 10h35
  2. NotSupportedException was Unhandled
    Par buxus dans le forum Linq
    Réponses: 3
    Dernier message: 20/08/2009, 10h45
  3. "Exception was unhandled" Erreur pas bien claire
    Par Just-Soft dans le forum C#
    Réponses: 2
    Dernier message: 17/03/2009, 14h32
  4. stackOverflowException was unhandled
    Par catherine* dans le forum Général Dotnet
    Réponses: 5
    Dernier message: 18/01/2008, 13h15
  5. SecurityException was unhandled
    Par matrix_ceg dans le forum VB.NET
    Réponses: 2
    Dernier message: 23/10/2007, 14h45

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