IsDBNull

Метод проверяет указанное поле текущей строки выборки данных на null-значение.

Примечание

Метод используется для исключения ошибки при запросе значений (с помощью метода GetByte, GetInt32 и т.п.) полей выборки данных.

Синтаксис
public abstract bool IsDBNull(int ordinal);

ordinal – порядковый номер поля в текущей строке выборки данных (отсчет начинается с 0).

Возвращаемое значение

Значение типа System.Bolean:

  • true – проверяемое значение является null-значением;

  • false – в противном случае.

Исключения
IndexOutOfRangeException Задан порядковый номер несуществующего столбца.
InvalidOperationException Не установлена текущая строка выборки данных (необходимо выполнить метод Read()).
Пример
// C#
using System;
using System.Data;
using System.Data.Common;

class IsDBNull
{
  static void Main()
  {
    // Создание фабрики классов провайдера
    DbProviderFactory factory =
      DbProviderFactories.GetFactory("System.Data.LinterClient");
    // Соединение с БД
    DbConnection con = factory.CreateConnection();
    con.ConnectionString =
      "Data Source=LOCAL;User ID=SYSTEM;Password=MANAGER8";
    con.Open();
    // Создание объекта DbCommand
    DbCommand cmd = factory.CreateCommand();
    cmd.Connection = con;
    // Формирование текста SQL-запроса
    cmd.CommandText = "Select sysdate, null";
    // Выполнение SQL-запроса
    DbDataReader reader = cmd.ExecuteReader();
    // Обработка результатов запроса
    object value;
    while (reader.Read())
    {
      for (int i = 0; i <  reader.FieldCount; i++)
      {
        if (!reader.IsDBNull(i))
        {
          value = reader.GetValue(i);
        }
        else
        {
          value = "Значение не определено";
        }
        Console.Write(value + " | ");
      }
      Console.WriteLine();
    }
    // Освобождение ресурсов
    reader.Dispose();
    cmd.Dispose();
    con.Dispose();
  }
}

Результат выполнения примера:

06.09.2012 13:28:23 | Значение не определено |