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 du type 'DBNull' en type 'String' n'est pas valide-VB .NET


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2014
    Messages : 46
    Points : 31
    Points
    31
    Par défaut La conversion du type 'DBNull' en type 'String' n'est pas valide-VB .NET
    Salut tout le monde,
    J'ai un problème dans mon application. J'ai ecris un code VB pour appliquer une requete SQL à une base de données SQL, cette requete consiste à selectionner des éléments d'une même colonne et qui verifient les memes conditions, et inserer leurs moyenne dans un LABEL lorsqu'on clique dessus..
    Mais je rencontre ce message qui s'affiche après l'execution, j'ai compris qui'il ne peut pas afficher une valeur NULL a ce LABEL parce que le résultat de ma requete et déclaré en STRING! Mais comment ferai-je pour que le résultat s'affiche en "-" si c ma requete=NULL, sinon il affiche le résultat !
    Aidez moi SVP
    Voilà le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Label7_Click(sender As Object, e As EventArgs) Handles Label7.Click
            Dim CnxSQLBDQ As New SqlConnection("Data Source=AIMAN-PC;Initial Catalog=BD_Query1;Integrated security=True")
            CnxSQLBDQ.Open()
            Dim Y As String = "SELECT AVG([PP(m)]) FROM [Niveau 1] Where [Sec-Noyé]=0 and [Clair-Noir]=0"
            Dim Q1 As SqlCommand = New SqlCommand(Y, CnxSQLBDQ)
            Dim Reader As SqlDataReader
     
            Reader = Q1.ExecuteReader()
            Reader.Read()
            Label7.Text = Reader.GetValue(0)
        End Sub
    Et Voilà une prise d'écran pour le message :
    Nom : Capture.JPG
Affichages : 926
Taille : 112,4 Ko

  2. #2
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    Avant de lire le résultat Reader.GetValue, il faut vérifier qu'il n'est pas null (au sens SQL).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If Not reader.IsDBNull(0) Then
        Console.Write("{0}", reader.GetString(0))
    End If

  3. #3
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Et si tu veux des zéros à la place des NULL, tu peux aussi travailler sur la requête:

    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

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. Réponses: 9
    Dernier message: 17/06/2013, 16h21
  3. Réponses: 2
    Dernier message: 14/02/2011, 12h24
  4. Réponses: 13
    Dernier message: 02/11/2010, 16h03
  5. Réponses: 2
    Dernier message: 18/02/2009, 13h30

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