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 :

Tester un champs DBNull


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut Tester un champs DBNull


    Je me retrouve devant un fonctionnement un peu absurde de la méthode IsDBNull() !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                    If Not IsDBNull(_row.PACCHAMP) Then
                        _nrow("PACCHAMP") = _row.PACCHAMP
                    Else
                        _nrow("PACCHAMP") = String.Empty
                    End If
    Je ne peut pas faire comme ça car il me renvoie l'erreur IsDBNull alors que c'est justement le but du test, de le déterminer et de faire les choses en conséquence ! A moins que je l'utilise mal (franchement je vois pas) mais sinon cette méthode ne sert à rien !!!
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  2. #2
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Hello,

    Juste pour être sûr... Peut-on avoir le message d'erreur exact et complet ?

  3. #3
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par Kropernic Voir le message
    Hello,

    Juste pour être sûr... Peut-on avoir le message d'erreur exact et complet ?
    Si ça peut aider mais je pense que c'est évident...
    La valeur pour la colonne 'PACCHAMP' dans la table 'PE' est DBNull.
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    La méthode IsDBNull attend un paramètre de type Object (ce que renvoie un principe un DataReader). Or on dirait que tu fournis un objet déjà typé _row.PACCHAMP. Ca peut venir de là, si tu confirmes que l'exception est de type StrongTypingException...
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  5. #5
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Citation Envoyé par DotNetMatt Voir le message
    La méthode IsDBNull attend un paramètre de type Object (ce que renvoie un principe un DataReader). Or on dirait que tu fournis un objet déjà typé _row.PACCHAMP. Ca peut venir de là, si tu confirmes que l'exception est de type StrongTypingException...
    Un objet typé reste un objet non ???

  6. #6
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par Kropernic Voir le message
    Un objet typé reste un objet non ???
    Oui, mais DBNull et Nothing sont deux choses totalement différentes... DBNull est un type, une classe.

    Alors que Nothing est plutôt une valeur que l'on peut assigner. De même, il y a une différence entre Nothing en VB.NET et Null en C#... Quelques infos ici : Nothing (Visual Basic)
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  7. #7
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Bah on ne sait jamais hein ^^.

    Du coup, je reste perplexe car tout m'a l'air ok...

    Sinon, comme solution de contournement, je vois l'utilisation de la fonction COALESCE dans votre requête pour renvoyer une chaîne vide puisque c'est de toute façon ce que vous voulez mettre à la place. Au revoir le DBNULL dans ce cas.

    EDIT : A force de faire 5 choses à la fois, je mets 15 minutes à répondre et me fait devancer par DotNetMatt ^^

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 05/04/2006, 11h12
  2. [DREAMWEAVER 8] Comment tester les champs d'un formulaire
    Par steeves5 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 05/02/2006, 21h43
  3. ACCESS - tester un champs dans uen table
    Par chris9999 dans le forum Access
    Réponses: 1
    Dernier message: 16/10/2005, 19h11
  4. Tester si champs est vide
    Par clems34 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 19/09/2005, 20h53
  5. tester si champ vide
    Par trialrofr dans le forum ASP
    Réponses: 2
    Dernier message: 07/03/2005, 19h26

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