Datareader et valeur null

Résolu
ducker88
Messages postés
277
Date d'inscription
lundi 9 février 2004
Statut
Membre
Dernière intervention
4 mai 2008
- 23 mai 2007 à 10:42
ducker88
Messages postés
277
Date d'inscription
lundi 9 février 2004
Statut
Membre
Dernière intervention
4 mai 2008
- 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

8 réponses

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

Amicalement, SharpMao
3
sebmafate
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
14 février 2014
38
23 mai 2007 à 10:47
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]
3
sebmafate
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
14 février 2014
38
23 mai 2007 à 10:45
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]
0
ducker88
Messages postés
277
Date d'inscription
lundi 9 février 2004
Statut
Membre
Dernière intervention
4 mai 2008

23 mai 2007 à 10:45
Whaou !!!

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

Merci

duck88
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
SharpMao
Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
67
23 mai 2007 à 10:51
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
0
sebmafate
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
14 février 2014
38
23 mai 2007 à 10:55
une facilité d'écriture apparu avec C# 2... j'adore

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

23 mai 2007 à 16:26
Merci à vous deux pour votre réactivité et votre aide.

duck88
0