我有下面这行代码
if (DBNull.Value.Equals(o) || o != null)其中o是object o in row.ItemArray,我总是得到一个错误-->
Xml type "List of xdt:untypedAtomic" does not support a conversion from Clr type "DBNull" to Clr type "String".
我不明白的是,当我单步执行我的代码时,这个if应该捕捉到这一点并执行我的替代操作,但它没有?
有没有人能帮我解释一下。
谢谢!
发布于 2010-01-14 08:53:05
尝试使用
Convert.IsDBNull方法。
发布于 2010-01-14 05:53:49
我想你的问题是事实上
DBNull.Value == null
//is always falseDBNull是一个特殊的类,用于比较从dB返回的值,因此您实际上需要检查null条件和DBNull.value (如果数组同时包含这两个条件)。
EDIT:对不起,仔细看看你的代码,你可能只需要撤销你的OR操作。如果o ==为null,则您的第一条语句将因异常而失败。尝试:
if (o != null || o == DBNull.Value) 发布于 2010-01-14 05:18:56
这样的比较可能会有所帮助。
if ( !o.GetType().Equals( DBNull.Value ) )
或
if (o is DBNull)
https://stackoverflow.com/questions/2060217
复制相似问题