Question

J'ai la ligne de code suivante

if (DBNull.Value.Equals(o) || o != null)

o est object o in row.ItemArray Je continue à obtenir une erreur de ->

Xml type "List of xdt:untypedAtomic" does not support a conversion from Clr type "DBNull" to Clr type "String".

Ce que je ne comprends pas que lorsque je fais un pas dans mon code ce if devrait être attraper cela et mon action alternative exécuter, mais il ne fonctionne pas?

Quelqu'un peut-il s'il vous plaît jeter un peu de lumière pour moi.

Merci!

Était-ce utile?

La solution

Essayez d'utiliser

Convert.IsDBNull procédé.

Autres conseils

Je pense que vous problème est que, en fait,

DBNull.Value == null 
//is always false

Le DBNull est une classe spéciale pour les comparaisons sur les valeurs retournées de la dB si vous avez besoin de vérifier actualy une condition nulle et un DBNull.Value si votre tableau contient à la fois.

EDIT: Désolé regardant de plus près votre code, vous pouvez juste besoin d'inverser votre opération OU. Si o == null votre première déclaration va faire exploser votre exception. Essayez:

if (o != null || o == DBNull.Value) 

peut être une telle comparaison aide

if ( !o.GetType().Equals( DBNull.Value ) )

ou

if (o is DBNull)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top