Datareader et valeur null [Résolu]

Messages postés
277
Date d'inscription
lundi 9 février 2004
Dernière intervention
4 mai 2008
- 23 mai 2007 à 10:42 - Dernière réponse :
Messages postés
277
Date d'inscription
lundi 9 février 2004
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
Afficher la suite 

Votre réponse

8 réponses

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

Amicalement, SharpMao

Merci SharpMao 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de SharpMao
Meilleure réponse
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Dernière intervention
14 février 2014
23 mai 2007 à 10:47
3
Merci
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]

Merci sebmafate 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de sebmafate
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Dernière intervention
14 février 2014
23 mai 2007 à 10:45
0
Merci
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
Messages postés
277
Date d'inscription
lundi 9 février 2004
Dernière intervention
4 mai 2008
23 mai 2007 à 10:45
0
Merci
Whaou !!!

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

Merci

duck88
Commenter la réponse de ducker88
Messages postés
1025
Date d'inscription
mardi 4 février 2003
Dernière intervention
7 juin 2010
23 mai 2007 à 10:51
0
Merci
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
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Dernière intervention
14 février 2014
23 mai 2007 à 10:55
0
Merci
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
Messages postés
1025
Date d'inscription
mardi 4 février 2003
Dernière intervention
7 juin 2010
23 mai 2007 à 11:01
0
Merci
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
Messages postés
277
Date d'inscription
lundi 9 février 2004
Dernière intervention
4 mai 2008
23 mai 2007 à 16:26
0
Merci
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.