Прочитать на английском

Поделиться через


Convert.IsDBNull(Object) Метод

Определение

Возвращает значение, указывающее, имеет ли заданный объект тип DBNull.

public static bool IsDBNull(object? value);
public static bool IsDBNull(object value);

Параметры

value
Object

Объект.

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

true, если value имеет тип DBNull; в противном случае — false.

Примеры

В следующем примере объект используется SqlDataReader для получения данных опроса из базы данных. Он назначает значения полей каждой строки массиву, а затем передает каждый элемент массива в IsDBNull метод . Если метод возвращает true, в примере элементу массива назначается строка "NA". Затем массив добавляется в коллекцию RowsSystem.Windows.Forms.DataGridView элемента управления .

private void Form1_Load(object sender, EventArgs e)
{
   // Define ADO.NET objects.
   SqlConnection conn = new SqlConnection(connectionString);
   SqlCommand cmd = new SqlCommand();
   SqlDataReader dr;

   // Open connection, and retrieve dataset.
   conn.Open();

   // Define Command object.
   cmd.CommandText = "Select * From Responses";
   cmd.CommandType = CommandType.Text;
   cmd.Connection = conn;

   // Retrieve data reader.
   dr = cmd.ExecuteReader();

   int fieldCount = dr.FieldCount;
   object[] fieldValues = new object[fieldCount];
   string[] headers = new string[fieldCount];

   // Get names of fields.
   for (int ctr = 0; ctr < fieldCount; ctr++)
      headers[ctr] = dr.GetName(ctr);

   // Set up data grid.
   this.grid.ColumnCount = fieldCount;

   this.grid.ColumnHeadersDefaultCellStyle.BackColor = Color.Navy;
   this.grid.ColumnHeadersDefaultCellStyle.ForeColor = Color.White;
   this.grid.ColumnHeadersDefaultCellStyle.Font = new Font(this.grid.Font, FontStyle.Bold);

   this.grid.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders;
   this.grid.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single;
   this.grid.CellBorderStyle = DataGridViewCellBorderStyle.Single;
   this.grid.GridColor = Color.Black;
   this.grid.RowHeadersVisible = true;

   for (int columnNumber = 0; columnNumber < headers.Length;  columnNumber++)
      this.grid.Columns[columnNumber].Name = headers[columnNumber];

   // Get data, replace missing values with "NA", and display it.
   while (dr.Read())
   {
      dr.GetValues(fieldValues);

      for (int fieldCounter = 0; fieldCounter < fieldCount; fieldCounter++)
      {
         if (Convert.IsDBNull(fieldValues[fieldCounter]))
            fieldValues[fieldCounter] = "NA";
      }
      grid.Rows.Add(fieldValues);
   }
   dr.Close();
}

Комментарии

Метод IsDBNull проверяет, равен ли value параметр .DBNull.Value Это эквивалентно следующему коду:

return DBNull.Value.Equals(value);

Примечание

DBNull.Value используется для указания отсутствующих значений. Он не эквивалентен null или String.Empty. Таким образом, возвращаетсяfalse код, например Convert.IsDBNull(null) на C# или Convert.IsDBNull(Nothing) в Visual Basic.

Применяется к

Продукт Версии
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

См. также раздел