String.IsNullOrWhiteSpace в vb.net выдает ошибку, если значение равно dbnull.value - PullRequest
1 голос
/ 20 сентября 2011

String.IsNullOrWhiteSpace(valuefromDB) выдает ошибку, если valuefromDB равно dbnull.value

Это правильно ??

Я думал, что эта функция также обрабатывает dbnull.value

Ответы [ 3 ]

3 голосов
/ 20 сентября 2011

DBNull.Value не равно нулю.

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

If Not DbNull.Value.Equals(valuefromDB)...
0 голосов
/ 20 сентября 2011

Если бы у вас был Option Strict On, ваш код никогда бы не скомпилировался, потому что метод IsNullOrWhiteSpace для строки принимает тип string, DBNull не является строковым типом (это DBNull), и по вашему предположению вашvaluefromDB переменная имеет тип Object.

IsNull в имени IsNullOrWhiteSpace фактически ссылается на CLR null, который в VB равен Nothing, а не DBNull

Вы можете либо проверить DBNull и IsNullOrWhiteSpace, либо, как указал Эмаад Али, использовать функцию VB IsNothing.

Надеюсь, это поможет

0 голосов
/ 20 сентября 2011

Да, это правильно ..

Из MSDN:

Указывает, является ли указанная строка пустым или состоит только из пробелов.

Ничто не является нулевым, поэтому ваша строка может быть пустой или пустой, но dbnull - это другое значение для нее:).

...