2009-04-22 4 views
0

У меня есть целочисленный столбец, который может иметь число или ничего, назначенное ему (т. Е. Null в базе данных). Как я могу проверить, является ли оно нулевым или нет?Как проверить нулевые значения?

Я попытался

if(data.ColumnName == null) 
{ 
    ... 
} 

Это не работает, либо (как SubSonic не использует обнуляемых типов (если применимо) для ActiveRecord)

if(data.ColumnName.HasValue) 
{ 
    ... 
} 

Если значение, которое хранится в базе данных 0, то это не помогло бы:

if(data.ColumnName == 0 /* or 0x000? */) 
{ 
    ... 
} 

Та же проблема может возникнуть и в поле DateTime с.

ответ

1

Найдено, как это сделать. SubSonic имеет метод для получения значения в качестве объекта для обеспечения нулевой проверки:

if(data.GetColumnValue("Column Name") == null) 
{ 
    ... 
} 
6

Try:

Если (данные == System.DBNull)

+0

Кроме того, что не компилировать бы. Вы имеете в виду либо {data == System.DBNull.Value}, либо {data - System.DBNull}. – configurator

+0

Да, я должен признать, я написал это быстро и не думал об этом. – jgallant

0

, если ваши данные переменная является строго типизированным DataRow, это может помочь:

if(data.IsNull("ColumnName")) { ... } 
+0

данные SubSonic ActiveRecord – SamWM

0

DBNull это значение нулевого столбца.

DBNull - тип значения. Типы значений не могут быть нулевыми.

Предполагая SqlDataReader ... проверка на нуль является:

если (читатель [ "ColName") == DBNull.Value)

0

При запросе базы данных обрабатывать нуль там, делает вашу жизнь намного проще в коде

пример SQL

SELECT isNull(columnName, 0) FROM TABLENAME... 

или

Select isNUll(columnName, 'N/A') FROM TABLENAME ... 
Смежные вопросы