2013-12-10 3 views
0

Использование Visual Studio 2008 и создание .net 2.0 framework с VB.net для веб-приложения.Ошибка DBNull - 'System.InvalidCastException'

В настоящее время я столкнулся с очень странной проблемой. После того, как я построю решение и нажимаю ссылку на веб-странице, я получил сообщение об ошибке следующего содержания. То же самое произошло, когда я пытался работать в режиме отладки.

*************************************** ERROR Message ****************************************************** 
"An exception of type 'System.InvalidCastException' occurred in Microsoft.VisualBasic.dll but was not handled in user code" 
"Additional information: Operator '=' is not defined for type 'DBNull' and string "". " 
******************************************************************************************************************* 

Неполадка заключается в следующем: Значение dataview(0)(“name”) равно NULL, а my_name - переменная строка. Странно то, что я не изменил код в этом файле vb. Этот файл vb был создан ранее и использовался в течение длительного времени без каких-либо проблем. Это случилось сегодня. У меня этот синтаксис по всей программе без каких-либо проблем. Я попытался восстановить все исходное решение, но все еще есть проблема.

Может кто-нибудь, пожалуйста, сообщите, почему все внезапно и как исправить?

If dataview(0)(“name”) = my_name then …

+0

Поскольку все внезапно у вас есть NULL значения в столбце 'name'. Если этого никогда не было до этого, кто-то изменил базу данных, чтобы вставить значения NULL в этот столбец. (Или сайт никогда не тестировался) – Steve

+0

Спасибо за ваш совет. Фактически, столбец имен имеет значения NULL долгое время назад, и я запускаю SQL 2000, который я установил для свойства столбца таблицы «allow null» уже. Есть ли в Visual Studio 2008, что мне нужно изменить? Я в отчаянии. Пожалуйста помоги. Благодарю. – user3086344

ответ

0

Попробуйте определить NULL значение первой ..

If NOT IsDBNull(dataview(0)(“name”)) Then 
    If dataview(0)(“name”) = my_name then 

    'codes here  

    End If 
End If 
+0

На самом деле, у меня есть упомянутый синтаксис проблемы по всей программе, и у них нет проблемы раньше. Если я изменю его один за другим, это займет навсегда. Может ли это иметь какое-то отношение к библиотеке Visual Studio 2008 или microsoft.visualbasic.dll? Спасибо, в любом случае. – user3086344

+0

Возможно, в вашей файловой операции произошел какой-то АВАРИЙНЫЙ случай, который сделал значение NULL в вашем поле БД .. поэтому вы можете исправить его вручную в своем БД – matzone

+0

Фактически, поле разрешает null уже и оно имеет значение NULL перед инцидентом и работает до , Странный. Спасибо, в любом случае. – user3086344

Смежные вопросы