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 :

Erreur sur test IsDBNull ?


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de The_Big_Lebowski
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2009
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 225
    Par défaut Erreur sur test IsDBNull ?
    Bonjour,
    je suis confronté à une erreur que je ne comprends pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If Not IsDBNull(Rs.Fields("ch0_texte").Value) Then 
    C.Texte = Rs.Fields("ch0_texte").Value
    Rs.Fields("ch0_texte").Value est bien DBNull mais lors du debuggage, je passe quand même dans le Then.
    Une exception est levée :
    La conversion du type 'DBNull' en type 'String' n'est pas valide.
    C'est un truc de fou.
    QQun peut m'expliquer ce qu'il se passe, je ne vois plus rien (
    Un espion me permet de vérifier que Rs.Fields("ch0_texte").Value est DBNull. Alors pourquoi le Then est lu ?
    Merci

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 254
    Par défaut
    IsDBNull c'est un héritage du VB6, utilise plutot la classe DBNull :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Rs.Fields("ch0_texte").Value <> DBNull.Value Then  C.Texte = Rs.Fields("ch0_texte").Value

  3. #3
    Membre très actif Avatar de The_Big_Lebowski
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2009
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 225
    Par défaut
    Ca génère une erreur

    L'opérateur '<>' n'est pas défini pour les types 'Objet' et system.DBNull
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not Rs.Fields("ch0_texte").Value Is DBNull.Value Then C.Texte = Rs.Fields("ch0_texte").Value
    me renvoit toujours à l'exception :
    La conversion du type 'DBNull' en type 'String' n'est pas valide.

  4. #4
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 254
    Par défaut
    Oupss, pardon, ça doit plutot être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not Rs.Fields("ch0_texte").Value is DBNull.Value Then  C.Texte = Rs.Fields("ch0_texte").Value
    Je me fais toujours avoir avec ce DBNull

  5. #5
    Membre très actif Avatar de The_Big_Lebowski
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2009
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 225
    Par défaut
    J'ai toujours une erreur.
    Pourtant, je teste la valeur de Rs.Fields("ch0_texte").Valueet j'ai bien un system.DBNull.
    Pourquoi le code Then est lu, c'est bizarre, j'en perds mes cheveux

  6. #6
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 254
    Par défaut
    Alors essaye avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not Rs.Fields("ch0_texte").Value is DBNull Then  C.Texte = Rs.Fields("ch0_texte").Value
    Mais normalement tu devrais avoir un message d'erreur là.

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

Discussions similaires

  1. Erreur "javax/transaction/SystemException" sur test Maven
    Par pcouas dans le forum Tests et Performance
    Réponses: 4
    Dernier message: 13/06/2012, 21h50
  2. Erreur sur un test Null d'un champ Null
    Par RudyWI dans le forum VBA Access
    Réponses: 6
    Dernier message: 20/05/2008, 13h33
  3. Erreur de Test Ogre sur VC++
    Par chebchoub dans le forum Développement 2D, 3D et Jeux
    Réponses: 7
    Dernier message: 03/09/2007, 12h59
  4. message d'erreur sur test module
    Par Daniel MOREAU dans le forum Access
    Réponses: 5
    Dernier message: 23/11/2005, 20h19
  5. Erreur sur le TNSListener après installation de 9iAS
    Par Patmane dans le forum Installation
    Réponses: 4
    Dernier message: 04/02/2004, 11h16

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