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 "Boolean" n'est pas valide


Sujet :

VB.NET

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2010
    Messages : 168
    Points : 55
    Points
    55
    Par défaut la conversion de type "DBNull" en type "Boolean" n'est pas valide
    Bonjour,
    j'ai un datagridview avec un colonne de chekbox quand je selectionne il me calcule la ligne voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      Dim total As Double = 0
                For i As Integer = 0 To Me.DataGridView1.Rows.Count - 2
                    If CBool(Me.DataGridView1.Rows(i).Cells("DET_BL_LIVR").Value) = True Then
                        total = total + Val(Me.DataGridView1.Rows(i).Cells("DET_BL_MONT").Value)
                        Me.TXT_TOTALHT.Text = Math.Round(total, 2)
                    End If
    voici l'erreur:
    La conversion de type "DBNull" en type "Boolean" n'est pas valide
    Merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 310
    Points : 347
    Points
    347
    Par défaut
    Salut,

    Es-tu sûr qu'il y a bien une valeur dans ce que tu veux convertir en booléen ? Ne te trompes-tu pas de colonnes ?

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2010
    Messages : 168
    Points : 55
    Points
    55
    Par défaut
    salut,
    non dans le colonne "DET_BL_LIVR" il ya un selectionne chekbox
    bon quand je selectionne la case "DET_BL_LIVR" il me calcule le total de colonne "DET_BL_MONT"

    Merci

  4. #4
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 106
    Points
    3 106
    Par défaut
    Sebnantes a raison. Ton erreur est assez claire : la valeur de ta cellule est nulle.
    Avant de la caster, teste d'abord son contenu et assure toi qu'il n'est pas nulle avant de la transtyper.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 310
    Points : 347
    Points
    347
    Par défaut
    Je soupçonne aussi que ta checkbox, pour chaque ligne, n'est pas initialisée correctement. Ce qui fait que tu as une valeur Null qui est retournée. Petite question : La première de ton datagridview, la checkbox est cochée ou pas ?

  6. #6
    Membre du Club
    Inscrit en
    Septembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2010
    Messages : 168
    Points : 55
    Points
    55
    Par défaut
    Re Bonjour,
    il est pas null mais il ya des 0 donc il faut le calculer
    Merci

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 310
    Points : 347
    Points
    347
    Par défaut
    Je ne comprend pas ton image, c'est la 4ème ligne qui pose problème ou la 1ère ?

  8. #8
    Membre du Club
    Inscrit en
    Septembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2010
    Messages : 168
    Points : 55
    Points
    55
    Par défaut
    non le problème dans la case de total HT qui fait la somme de ligne selectionne

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 310
    Points : 347
    Points
    347
    Par défaut
    Et quand toutes tes checkbox sont cochées, as-tu une erreur ?

  10. #10
    Membre du Club
    Inscrit en
    Septembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2010
    Messages : 168
    Points : 55
    Points
    55
    Par défaut
    non quand je décoche il me donne cette erreur

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 310
    Points : 347
    Points
    347
    Par défaut
    Dans ce cas, fais un truc dans le genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim total As Double = 0
        For i As Integer = 0 To Me.DataGridView1.Rows.Count - 2
            If Not IsDbNull(Me.DataGriView1.Rows.Cells("DET_BL_LIVR").Value) then
                If CBool(Me.DataGridView1.Rows(i).Cells("DET_BL_LIVR").Value) = True Then
                    total = total + Val(Me.DataGridView1.Rows(i).Cells("DET_BL_MONT").Value)
                    Me.TXT_TOTALHT.Text = Math.Round(total, 2)
                End If
            End If

  12. #12
    Membre du Club
    Inscrit en
    Septembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2010
    Messages : 168
    Points : 55
    Points
    55
    Par défaut
    Merci bouceaup sebnantes
    ça marche très bien maintenant je prend ou est l'erreur vraiment je suis bête
    Merci encore

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 310
    Points : 347
    Points
    347
    Par défaut
    N'oublie pas de mettre "Résolu" en bas du sujet ^^

  14. #14
    Membre du Club
    Inscrit en
    Septembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2010
    Messages : 168
    Points : 55
    Points
    55
    Par défaut
    merci sebnantes
    merci à tous

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

Discussions similaires

  1. [Débutant] la conversion de type 'DbNull' en type 'Double' n'est pas valide
    Par billinfopro dans le forum VB.NET
    Réponses: 2
    Dernier message: 28/09/2014, 01h29
  2. [Débutant] La conversion du type 'DBNull' en type 'String' n'est pas valide-VB .NET
    Par Aiman.elmachi dans le forum VB.NET
    Réponses: 2
    Dernier message: 10/06/2014, 14h55
  3. Réponses: 9
    Dernier message: 17/06/2013, 16h21
  4. Réponses: 2
    Dernier message: 14/02/2011, 12h24
  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