Вопрос

У меня есть функция, которая извлекает записи статей из базы данных MSSQL.Некоторые из них являются URL-адресами PDF-файлов, а другие - реальными статьями, хранящимися в SQL.Статьи, которые хранятся, не имеют URL (DBNull) в записи, поэтому я хочу иметь возможность проанализировать это.Я попробовал провести простой тест:

If Row.Item("url").GetType Is GetType(DBNull) Then
    //' do something here....
End If

Тем не менее, я получаю "Conversion from type 'DBNull' to type 'String' is not valid.- исключение.Самое смешное, что когда я выполняю просмотр по приведенному выше условию, оно возвращает True или False.

Кто-нибудь знает, почему это происходит и / или как это исправить?Спасибо!

Это было полезно?

Решение

Почему бы просто не использовать:

If Row.IsNull("url") Then
    //' do something here....
End If

Другие советы

Я всегда просто использую этот тест для записи:

If IsDBNull(strSQLTiggRes("url")) Then
     'Do something                   .
Else
     'do something else
end if

Мне нравится

if (DBNull.Value.Equals(Row.Item("url")))

Попробуй

If Row.Item("url") = DBNull.Value

Ошибка заключается в том, что вы сообщаете вам, что Row.Item("url") является System.String таким образом, значение на данный момент не будет DbNull.

Попробуйте что-то вроде этого:

If Row.Item("url") Is Nothing Then
    //' do something here....
End If

Разве ты не можешь просто сделать

If Row.Item("url") = DBNull.Value Then

End If

Мое предпочтение заключается в следующем:

If Not Object.Equals(DBNull.Value, Row.Item("url")) Then
  'Hooray!
End If

В VB вы также можете использовать IsDBNull функция (Microsoft.VisualBasic отказ от ответственности) напрямую :

If Not IsDBNull(Row.Item("url")) Then
  'Hooray!
End It

Используй это.

if row("ColumnName") is DBNull.value Then
     'do something
end if

Вы обнаружите, что в этом случае вы должны использовать is, и вам нужно сравнивать значения, а не только типы.Возможно, вы также захотите поместить его в повторно используемую функцию, которую можно использовать для возврата nothing вместо dbnull

function checkvalue(item as object)
     if item is dbnul.value then
          return nothing
     else
          return item
     end if
 end function
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top