Подтвердить что ты не робот

Лучший способ проверить, возвращает ли столбец значение null (из базы данных в .net-приложение)

У меня есть таблица с столбцом DateTime столбец может иметь значения NULL

Теперь я подключаюсь к базе данных с помощью соединения ODBC и получаю значение в DataTable в .net/С#.

Я могу проверить его на NULL, перейдя

if(String.IsNullOrEmpty(table.rows[0][0].ToString())
{
     //Whatever I want to do
}

Является String.IsNullOrEmpty правильным способом проверки нулевых значений.

4b9b3361

Ответ 1

Используйте DBNull.Value.Equals для объекта без преобразования его в строку.

Вот пример:

   if (! DBNull.Value.Equals(row[fieldName])) 
   {
      //not null
   }
   else
   {
      //null
   }

Ответ 2

Просто используйте DataRow.IsNull. Он имеет переопределения, принимая в качестве параметров индекс столбца, имя столбца или Объект DataColumn.

Пример использования индекса столбца:

if (table.rows[0].IsNull(0))
{
    //Whatever I want to do
}

И хотя функция называется IsNull, она действительно сравнивается с DbNull (это именно то, что вам нужно).


Что делать, если я хочу проверить DbNull, но у меня нет DataRow? Используйте Convert.IsDBNull.

Ответ 3

System.Convert.IsDbNull][1](table.rows[0][0]);

IIRC, (table.rows[0][0] == null) не будет работать, поскольку DbNull.Value != null;

Ответ 4

row.IsNull( "столбец" )

Ответ 5

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

   using( var idr = connection, SP.......)
{
    while(idr.read())
{
if(Sting.ISNullOrEmpty(idr["ColumnNameFromDB"].ToString())
  //do something
}
}
}

Ответ 6

Просто проверьте

if(table.rows[0][0] == null)
{
     //Whatever I want to do
}

или вы можете

if(t.Rows[0].IsNull(0))
{
     //Whatever I want to do
}