Pregunta

Tengo la siguiente línea de código

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

donde o es object o in row.ItemArray Me aparece un error de ->

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

Lo que no entiendo es que cuando me paso a través de mi código de este if debe ser la captura de este y la realización de mi acción alternativa pero no es así?

Por favor alguien puede arrojar algo de luz para mí.

Gracias!

¿Fue útil?

Solución

Trate de usar

Convert.IsDBNull método.

Otros consejos

Creo que es un problema que en realidad

DBNull.Value == null 
//is always false

El DBNull es una clase especial para las comparaciones de valores devueltos por la dB por lo que podía comprender necesita para comprobar si hay una condición nula y una DBNull.Value si la matriz contiene tanto.

EDIT: Lo sentimos, mirando más de cerca a su código es posible que sólo tenga que invertir la operación OR. Si o == null su primera declaración va a explotar con su excepción. Proveedores:

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

puede ser tal comparación ayuda

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

o

if (o is DBNull)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top