it-roy-ru.com

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

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

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

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

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

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

28
soldieraman

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

Вот пример:

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

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

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

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

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


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

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

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

3
Marcin Seredynski

row.IsNull ( "колонна")

0
jspcal

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

   using( var idr = connection, SP.......)
   {
       while(idr.read())
       {
          if(String.IsNullOrEmpty(idr["ColumnNameFromDB"].ToString())
          //do something
       }
   }
0
priyanka