Определение проблемы: У меня есть таблица в базе данных SQL Server. В этой таблице есть столбец типа image и он допускает нулевые значения. Я прочитаю эту таблицу, используя SqlDataReader
и покажу изображения, если они доступны.Каков наилучший способ узнать, является ли столбец изображения нулевым или нет?
То, что я пытался в первый раз: Для того, чтобы проверить, является ли нулевой столбец изображение или нет, я сделал это
SqlDataReader reader = command.ExecuteReader(); // command is a SqlCommand
while(reader.Read())
{
if(reader["Image"] != null) // Image is a column name of the table
{
//Do something
}
}
Результат: Но он никогда не равен нулю (я также проверил метод Equal
). Этот столбец никогда не является нулевым, даже если он не вставлен в данные (в SQL Server я вижу, что это фактически нулевое значение)
Что я пробовал второй раз: Итак, я пробовал этот код и его работу, но мне интересно, t return null.
SqlDataReader reader = command.ExecuteReader(); // command is a SqlCommand
while(reader.Read())
{
if(reader["Image"].GetType() != typeof(System.DBNull))
{
//Do something
}
}
Вопрос: Любая идея объяснить такое поведение? Я буду рад, если есть лучший способ узнать, являются ли столбцы типа Image в таблицах SQL Server нулевыми или нет.
Вы должны попытаться распечатать все, что вы можете о значении, когда нет данных изображения - с использованием 'else' во второй форме. Это должно привести вас к ответу – Floris