Convert.IsDBNull(Object) Méthode

Définition

Retourne une indication précisant si l'objet spécifié est de type DBNull.Returns an indication whether the specified object is of type DBNull.

public:
 static bool IsDBNull(System::Object ^ value);
public static bool IsDBNull (object value);
static member IsDBNull : obj -> bool
Public Shared Function IsDBNull (value As Object) As Boolean

Paramètres

value
Object

Objet.An object.

Retours

true si value est de type DBNull, sinon, false.true if value is of type DBNull; otherwise, false.

Exemples

L’exemple suivant utilise un SqlDataReader objet pour récupérer des données d’enquête à partir d’une base de données.The following example uses a SqlDataReader object to retrieve survey data from a database. Il assigne les valeurs de champ de chaque ligne à un tableau, puis passe chaque élément de tableau IsDBNull à la méthode.It assigns each row's field values to an array, and then passes each array element to the IsDBNull method. Si la méthode retourne true, l’exemple assigne la chaîne « na » à l’élément de tableau.If the method returns true, the example assigns the string "NA" to the array element. Le tableau est ensuite ajouté à la Rows collection d’un System.Windows.Forms.DataGridView contrôle.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();
}
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

Remarques

La IsDBNull méthode teste si value le paramètre est égal DBNull.Valueà.The IsDBNull method tests whether the value parameter is equal to DBNull.Value. Elle est équivalente au code suivant :It is equivalent to the following code:

return DBNull.Value.Equals(value);
Return DBNull.Value.Equals(value)

Notes

DBNull.Valueest utilisé pour indiquer une valeur manquante.DBNull.Value is used to indicate a value that is missing. Il n’est pas équivalent null à ou String.Emptyà.It is not equivalent to null or to String.Empty. Par conséquent, le code Convert.IsDBNull(null) tel C# que Convert.IsDBNull(Nothing) dans ou dansfalseVisual Basic retourne.Therefore, code such as Convert.IsDBNull(null) in C# or Convert.IsDBNull(Nothing) in Visual Basic returnsfalse.

S’applique à

Voir aussi