英語で読む

次の方法で共有


Convert.IsDBNull(Object) メソッド

定義

指定したオブジェクトの型が DBNull かどうかを示す値を返します。

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

パラメーター

value
Object

オブジェクト。

戻り値

true の型が value の場合は DBNull。それ以外の場合は false

次の例では、 オブジェクトを SqlDataReader 使用してデータベースからアンケート データを取得します。 各行のフィールド値を配列に割り当て、各配列要素を メソッドに IsDBNull 渡します。 メソッドが を返す true場合、この例では文字列 "NA" を配列要素に割り当てます。 その後、配列がコントロールの Rows コレクションに System.Windows.Forms.DataGridView 追加されます。

C#
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。 これは、次のコードと同じです。

C#
return DBNull.Value.Equals(value);

注意

DBNull.Value は、不足している値を示すために使用されます。 または と同等nullString.Emptyではありません。 したがって、C# や Convert.IsDBNull(Nothing) Visual Basic の などのConvert.IsDBNull(null)コードは を返しますfalse

適用対象

製品 バージョン
.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

こちらもご覧ください