Convert.IsDBNull(Object) Method  
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Returns an indication whether the specified object is of type DBNull.
public:
 static bool IsDBNull(System::Object ^ value);public static bool IsDBNull(object? value);public static bool IsDBNull(object value);static member IsDBNull : obj -> boolPublic Shared Function IsDBNull (value As Object) As BooleanParameters
- value
- Object
An object.
Returns
true if value is of type DBNull; otherwise, false.
Examples
The following example uses a SqlDataReader object to retrieve survey data from a database. It assigns each row's field values to an array, and then passes each array element to the IsDBNull method. If the method returns true, the example assigns the string "NA" to the array element. The array is then added to the Rows collection of a System.Windows.Forms.DataGridView control.
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();
}
member this.Form1_Load(sender: obj, e: EventArgs) =
    // Define ADO.NET objects.
    use conn = new SqlConnection(connectionString)
    use cmd = new SqlCommand()
    // 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.
    let dr = cmd.ExecuteReader()
    let fieldCount = dr.FieldCount
    let fieldValues = Array.zeroCreate<obj> fieldCount
    let headers = 
        // Get names of fields.
        Array.init fieldCount dr.GetName
    // Set up data grid.
    grid.ColumnCount <- fieldCount
    grid.ColumnHeadersDefaultCellStyle.BackColor <- Color.Navy
    grid.ColumnHeadersDefaultCellStyle.ForeColor <- Color.White
    grid.ColumnHeadersDefaultCellStyle.Font <- new Font(grid.Font, FontStyle.Bold)
    grid.AutoSizeRowsMode <- DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders
    grid.ColumnHeadersBorderStyle <- DataGridViewHeaderBorderStyle.Single
    grid.CellBorderStyle <- DataGridViewCellBorderStyle.Single
    grid.GridColor <- Color.Black
    grid.RowHeadersVisible <- true
    for columnNumber = 0 to headers.Length - 1 do
        grid.Columns[columnNumber].Name <- headers[columnNumber]
    // Get data, replace missing values with "NA", and display it.
    while dr.Read() do
        dr.GetValues fieldValues |> ignore
        for fieldCounter = 0 to fieldCount do
            if Convert.IsDBNull fieldValues[fieldCounter] then
                fieldValues[fieldCounter] <- "NA"
        grid.Rows.Add fieldValues |> ignore
    dr.Close()
override _.Dispose(disposing) =
    if disposing then
        grid.Dispose();
    base.Dispose disposing
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    ' Define ADO.NET objects.
    Dim conn As New SqlConnection(connectionString)
    Dim cmd As New SqlCommand
    Dim dr As SqlDataReader
    ' 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()
    Dim fieldCount As Integer = dr.FieldCount
    Dim fieldValues(fieldCount - 1) As Object
    Dim headers(fieldCount - 1) As String
    ' Get names of fields.
    For ctr As Integer = 0 To fieldCount - 1
        headers(ctr) = dr.GetName(ctr)
    Next
    ' Set up data grid.
    grid.ColumnCount = fieldCount
    With grid.ColumnHeadersDefaultCellStyle
        .BackColor = Color.Navy
        .ForeColor = Color.White
        .Font = New Font(grid.Font, FontStyle.Bold)
    End With
    With grid
        .AutoSizeRowsMode =
            DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders
        .ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single
        .CellBorderStyle = DataGridViewCellBorderStyle.Single
        .GridColor = Color.Black
        .RowHeadersVisible = True
        For columnNumber As Integer = 0 To headers.Length - 1
            .Columns(columnNumber).Name = headers(columnNumber)
        Next
    End With
    ' Get data, replace missing values with "NA", and display it.
    Do While dr.Read()
        dr.GetValues(fieldValues)
        For fieldCounter As Integer = 0 To fieldCount - 1
            If Convert.IsDBNull(fieldValues(fieldCounter)) Then
                fieldValues(fieldCounter) = "NA"
            End If
        Next
        grid.Rows.Add(fieldValues)
    Loop
    dr.Close()
End Sub
Remarks
The IsDBNull method tests whether the value parameter is equal to DBNull.Value. It is equivalent to the following code:
return DBNull.Value.Equals(value);
DBNull.Value.Equals value
Return DBNull.Value.Equals(value)
Note
DBNull.Value is used to indicate a value that is missing. It is not equivalent to null or to String.Empty. Therefore, code such as Convert.IsDBNull(null) in C# or Convert.IsDBNull(Nothing) in Visual Basic returnsfalse.