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

VB.NET Discussion :

la conversion de type 'DbNull' en type 'Double' n'est pas valide [Débutant]


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 9
    Points : 12
    Points
    12
    Par défaut la conversion de type 'DbNull' en type 'Double' n'est pas valide
    Bonjour tout le monde
    Je suis en train de développer une application de gestion de transaction en VB.NET avec Access comme BD. Cependant j'ai une erreur qui m'intrige depuis un certain temps lorsque je veux afficher l'etat financier. 'la conversion de type 'DbNull' en type 'Double' n'est pas valide'
    Voici le code:
    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
    'Etat par Annee
                    If rbannee.Checked = True Then
                        ' Calcul des recettes annuelles
                        Dim dba As New DataBase
     
                        dba.connection()
                        Dim rec As String = "select sum (RecetClient) from operations where Annee ='" + annee.Text + "'"
                        Dim drc As OleDbDataReader = dba.ExecuteVersDataReader(rec)
     
                        Dim recrec As String = ""
     
                        While drc.Read()
                            recrec = drc.GetValue(0).ToString
                        End While
     
                        If IsDBNull(recrec) Then
                            recettes.Text = "N" & " " & "F CFA"
                        Else
                            Dim recconv As Double = CType(recrec, Double)
                            recettes.Text = Math.Round(recconv, 2) & " " & "F CFA"
                        End If
    Et pourtant si regardé bien j'ai effectué un test sur le champs pour voir si ça renvoit une valeur Null

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    Tu transformes la valeur en chaîne de caractère (.ToString) donc cela ne peux pas fonctionner, de plus il faudrait la mettre dans une variable "object" sans la transformer.
    Il vaut mieux tester directement la valeur et agir en conséquence. (plus simple)
    (Vu que tu ne récupère qu'une valeur inutile de faire une boucle)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
            If drc.HasRows Then
                drc.Read()
                If Not IsDBNull(drc.GetValue(0)) Then
                    Dim recconv As Double = CType(drc.GetValue(0).ToString, Double)
                    recettes.Text = Math.Round(recconv, 2) & " " & "F CFA"
                Else
                    recettes.Text = "N" & " " & "F CFA"
                End If
            End If
    Pourquoi ne pas récupérer la valeur dans son type ?
    La concaténation de chaîne en vb s'effectue avec le caractère & ; mais voir la remarque pour la requête.

    Dernière remarque
    Il faut utiliser les requêtes paramétrées. Voir Tuto ou Faq.

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 9
    Points : 12
    Points
    12
    Par défaut
    ça marche a merveille. Merci infiniement !!!!
    Je vais me pencher sur les liens que vous m'avez indiqué

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

Discussions similaires

  1. [Débutant] Erreur La conversion de la chaîne "" en type 'Double' n'est pas valide.
    Par dragondu83 dans le forum VB.NET
    Réponses: 5
    Dernier message: 24/07/2014, 20h06
  2. [Débutant] La conversion de la chaîne "" en type 'Double' n'est pas valide.
    Par amine_maximus dans le forum VB.NET
    Réponses: 6
    Dernier message: 09/06/2012, 23h11
  3. Réponses: 6
    Dernier message: 04/07/2011, 15h53
  4. Réponses: 12
    Dernier message: 07/02/2011, 23h01
  5. Réponses: 16
    Dernier message: 06/06/2007, 15h46

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