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

C# Discussion :

DataReader pointe sur une valeur nulle !


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 36
    Points : 33
    Points
    33
    Par défaut DataReader pointe sur une valeur nulle !
    bonjour
    mon probléme , c'est au moment d'exécution d'un DataReader,
    exemple : string option = rdr1.GetString(5);

    si'il trouve un champ de la table vide m'affiche une exception : " le data reader ne peut pas pointer sur une valeur nulle" alors que dans une table il peut y avoir forcement des champs nuls qui ne sont pas remplit exept la clé bien sur
    que dois je faire dans ce cas
    merci d'avance

  2. #2
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    que dois je faire dans ce cas
    en faisant une recherche avant de poster
    http://www.developpez.net/forums/showthread.php?t=71850
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  3. #3
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Tu peux toujours utilisés les try catch pour attraper l'exception et gérer le cas dans le catch.
    Bien que certain préfère les finally pour être sur que le code s'exécute

    Je ne connais pas les DataReader, mais cela m'etonnerais que tu ne puisses pas tester la nullité du champ courant de la table avant d'appeler le getstring.

    He puis moi je n'appelle cette fonction que sur la plage

    Ok je sors
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 36
    Points : 33
    Points
    33
    Par défaut
    ok merci j'ai trouvé l'erreur

  5. #5
    Expert éminent
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Points : 9 634
    Points
    9 634
    Par défaut
    Citation Envoyé par ced600 Voir le message
    Tu peux toujours utilisés les try catch pour attraper l'exception et gérer le cas dans le catch.
    Bien que certain préfère les finally pour être sur que le code s'exécute

    Je ne connais pas les DataReader, mais cela m'etonnerais que tu ne puisses pas tester la nullité du champ courant de la table avant d'appeler le getstring.

    He puis moi je n'appelle cette fonction que sur la plage

    Ok je sors
    Concernant la plage, je trouve cela dommage... Effectivement, quand tu habites Paris, tu es pas trop servi

    Plus sérieusement, un try/catch pour si peu, c'est sortir un canon pour tuer une mouche. C'est très gourmand en ressource. Il doit être possible de faire un simple test vis à vis de DBNull.Value.

    Didier Danse

    Most Valuable Profesionnal SharePoint
    Microsoft Certified Application Developer
    Mes articles sur developpez.com
    Mon site perso


  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut
    Mmh... y a pas quelqu'un pour faire F1 et découvrir l'existence de la méthode IsDBNull ?
    Be wary of strong drink.
    It can make you shoot at tax collectors, and miss.

  7. #7
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par Maniak Voir le message
    Mmh... y a pas quelqu'un pour faire F1 et découvrir l'existence de la méthode IsDBNull ?
    Il y a ca aussi: http://blog.developpez.com/index.php...&c=1&tb=1&pb=1

  8. #8
    Expert éminent
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Points : 9 634
    Points
    9 634
    Par défaut
    Citation Envoyé par Ditch Voir le message
    Concernant la plage, je trouve cela dommage... Effectivement, quand tu habites Paris, tu es pas trop servi

    Plus sérieusement, un try/catch pour si peu, c'est sortir un canon pour tuer une mouche. C'est très gourmand en ressource. Il doit être possible de faire un simple test vis à vis de DBNull.Value.
    IsDBNull fait quoi? C'est pas un test vis-à-vis de DBNull.Value? ...

    Didier Danse

    Most Valuable Profesionnal SharePoint
    Microsoft Certified Application Developer
    Mes articles sur developpez.com
    Mon site perso


  9. #9
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Citation Envoyé par Ditch Voir le message
    IsDBNull fait quoi? C'est pas un test vis-à-vis de DBNull.Value? ...
    Certes mais pour tester si la valeur est égale à DbNull.Value, il faut déjà récupérer cette valeur. On la récupère en faisant un GetString, GetInt32, etc; mais ces méthodes déclenchent des exceptions quand la valeur qu'on tente de récupérer est égale à DbNull.Value. D'où le problème.
    C'est donc l'intérêt de IsDbNull qui renvoie l'état de la valeur avant qu'on essaie d'y accéder avec des GetXxx.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut
    Citation Envoyé par Thomas Lebrun Voir le message
    Pfiou, j'avais complètement oublié ça dis-donc :)

    Vu que je continue à faire comme ça, c'est bien, je me dis que je suis constant qu'à une époque :)
    (bon sauf que maintenant ça se finit avec une méthode générique commune à tous les Read* :)
    Be wary of strong drink.
    It can make you shoot at tax collectors, and miss.

Discussions similaires

  1. SOMMEPROD qui pointe sur une formule et #VALEUR!
    Par mederik dans le forum Excel
    Réponses: 2
    Dernier message: 22/10/2012, 22h22
  2. [AC-2010] probleme avec une valeur null sur une date
    Par kynder surprise dans le forum VBA Access
    Réponses: 3
    Dernier message: 07/05/2012, 17h28
  3. Update sur un champ NOT NULL avec une valeur NULL sans erreur
    Par HectorPriamide dans le forum Requêtes
    Réponses: 8
    Dernier message: 26/01/2012, 21h25
  4. Affcecter une valeur NULL dans une requete paramétrée
    Par thiouwz2 dans le forum Bases de données
    Réponses: 7
    Dernier message: 05/11/2004, 15h02
  5. Passer une valeur Null dans un argument de procédure
    Par preempalver dans le forum VBA Access
    Réponses: 5
    Dernier message: 30/12/2003, 20h52

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