У меня есть следующая строка кода
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
должен ловить это и выполнять мое альтернативное действие, но оно не делает?
Может кто-то проливать некоторый свет для меня.
Спасибо!
Я думаю, что у вас проблема в том, что на самом деле
DBNull.Value == null
//is always false
DBNull - это специальный класс для сравнения по значкам, возвращаемым из БД, чтобы вы действовали должны проверить нулевое состояние и DBNull.Value, если ваш массив содержит оба.
Отредактируйте: Извините ближе к вашему коду, вам может просто понадобиться обратить вспять или работать. Если O == NULL, ваше первое утверждение взорвется с помощью вашего исключения. Попробуйте:
if (o != null || o == DBNull.Value)
Может быть таким сравнением помогает
if ( !o.GetType().Equals( DBNull.Value ) )
или
if (o is DBNull)