Datareader et valeur null [Résolu]

ducker88 277 Messages postés lundi 9 février 2004Date d'inscription 4 mai 2008 Dernière intervention - 23 mai 2007 à 10:42 - Dernière réponse : ducker88 277 Messages postés lundi 9 février 2004Date d'inscription 4 mai 2008 Dernière intervention
- 23 mai 2007 à 16:26
Bonjour à tous,

Voila mon probleme,

Je souhaite recuperer des données d'une base postgresql à l'aide d 'un datareader. Cela fonctionne bien quand je recupère mes données tel que :
string test = (string)dr["mon_test"] ;

Mon soucis est que si la donnée est un DBnull alors cela me gènere une erreur et me plante mon application.

Existe t'il un moyen pour que cela fonctionne sans problème ?

Merci à tous.

duck88
Afficher la suite 

8 réponses

Répondre au sujet
SharpMao 1025 Messages postés mardi 4 février 2003Date d'inscription 7 juin 2010 Dernière intervention - 23 mai 2007 à 10:44
+3
Utile
Oui, en vérifiant si la valeur est à DBNull :
string test dr["mon_test"]DBNull.Value ? null:(string)dr["mon_test"] ;

Amicalement, SharpMao
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de SharpMao
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 23 mai 2007 à 10:47
+3
Utile
Pour le test avec DBNull... je n'aime pas le == DBNull.Value.
J'y préfère : Convert.IsDBNull()

Donc, dans ce cas, on obtient :
string test = Convert.IsDBNull(dr["mon_test"]) ? string.Empty : (string)dt["mon_test"];

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de sebmafate
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 23 mai 2007 à 10:45
0
Utile
si tu es en .net 2... tu peux faire ceci :

string test = (string)(dr["mon_test"] ?? string.Empty);
sinon : string test dr["mon_test"] null ?? string.Empty : (string)dr["mon_test"];

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Commenter la réponse de sebmafate
ducker88 277 Messages postés lundi 9 février 2004Date d'inscription 4 mai 2008 Dernière intervention - 23 mai 2007 à 10:45
0
Utile
Whaou !!!

Quel rapidité !
Je vais essayé cela tout de suite.

Merci

duck88
Commenter la réponse de ducker88
SharpMao 1025 Messages postés mardi 4 février 2003Date d'inscription 7 juin 2010 Dernière intervention - 23 mai 2007 à 10:51
0
Utile
Question de préférences.

Par contre, merci à toi sebmafate, j'aurai appris quelque chose, je ne connaissais pas la notation abrégée avec ??

Amicalement, SharpMao
Commenter la réponse de SharpMao
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 23 mai 2007 à 10:55
0
Utile
une facilité d'écriture apparu avec C# 2... j'adore

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Commenter la réponse de sebmafate
SharpMao 1025 Messages postés mardi 4 février 2003Date d'inscription 7 juin 2010 Dernière intervention - 23 mai 2007 à 11:01
0
Utile
Euh,...

Désolé de faire le raba-joie, mais à ce que je viens de lire, mais l'opérateur ?? ne fonctionne qu'avec la valeur null, et pas avec un DBNull.value.

Pour la question de la vérification, on peut aussi faire dr.IsDBNull(i), mais il ne fonctionne qu'avec le numéro de la colonne et pas avec son en-tête.

Amicalement, SharpMao
Commenter la réponse de SharpMao
ducker88 277 Messages postés lundi 9 février 2004Date d'inscription 4 mai 2008 Dernière intervention - 23 mai 2007 à 16:26
0
Utile
Merci à vous deux pour votre réactivité et votre aide.

duck88
Commenter la réponse de ducker88

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.