I have the following line of code
if (DBNull.Value.Equals(o) || o != null)
where o
is object o in row.ItemArray
I keep getting an error of -->
Xml type "List of xdt:untypedAtomic" does not support a conversion from Clr type "DBNull" to Clr type "String".
What I don't understand is that when I step through my code this if
should be catching this and performing my alternate action but it does not?
Can someone please shed some light for me.
Thank you!
Try using
Convert.IsDBNull method.
I think you problem is that in fact
DBNull.Value == null
//is always false
The DBNull is a special class for comparisons on values returned from the dB so you actualy need to check for a null condition AND a DBNull.value if your array contains both.
EDIT: Sorry looking closer at your code you may just need to reverse your OR operation. If o == null your first statement will blow up with your exception. Try:
if (o != null || o == DBNull.Value)
may be such comparison helps
if ( !o.GetType().Equals( DBNull.Value ) )
or
if (o is DBNull)
来源:https://stackoverflow.com/questions/2060217/how-can-dbnull-not-equal-dbnull