Datareader et valeur null [Résolu]

Signaler
Messages postés
277
Date d'inscription
lundi 9 février 2004
Statut
Membre
Dernière intervention
4 mai 2008
-
Messages postés
277
Date d'inscription
lundi 9 février 2004
Statut
Membre
Dernière intervention
4 mai 2008
-
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

8 réponses

Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
63
Oui, en vérifiant si la valeur est à DBNull :
string test dr["mon_test"]DBNull.Value ? null:(string)dr["mon_test"] ;

Amicalement, SharpMao
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
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]
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
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]
Messages postés
277
Date d'inscription
lundi 9 février 2004
Statut
Membre
Dernière intervention
4 mai 2008

Whaou !!!

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

Merci

duck88
Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
63
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
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
une facilité d'écriture apparu avec C# 2... j'adore

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
63
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
Messages postés
277
Date d'inscription
lundi 9 février 2004
Statut
Membre
Dernière intervention
4 mai 2008

Merci à vous deux pour votre réactivité et votre aide.

duck88