web-dev-qa-db-ja.com

列がnull値を返すかどうかを確認する最良の方法(データベースから.netアプリケーションへ)

DateTime列を持つテーブルがあり、列にNULL値を含めることができます

ここで、ODBC接続を使用してデータベースに接続し、値を.net/c#のDataTableに取得します。

私は行くことでNULLをチェックすることができます

if(String.IsNullOrEmpty(table.rows[0][0].ToString())
{
     //Whatever I want to do
}

String.IsNullOrEmptyは、null値をチェックする正しい方法です。

29
soldieraman

オブジェクトを文字列に変換せずに DBNull.Value.Equals を使用します。

以下に例を示します。

   if (! DBNull.Value.Equals(row[fieldName])) 
   {
      //not null
   }
   else
   {
      //null
   }
79
jball

DataRow.IsNullを使用するだけです。 列インデックス列名、またはDataColumnオブジェクトをパラメーターとして。

列インデックスを使用した例:

if (table.rows[0].IsNull(0))
{
    //Whatever I want to do
}

また、この関数はIsNullと呼ばれますが、実際にはDbNull(これはまさに必要なもの)と比較されます。


DbNullを確認したいが、DataRowがない場合はどうなりますか? Convert.IsDBNull を使用します。

9
Mariano Desanze
System.Convert.IsDbNull][1](table.rows[0][0]);

IIRC、(table.rows[0][0] == null)は、DbNull.Value != null;

3

row.IsNull( "column")

0
jspcal

EFを使用し、whileループでデータベース要素を読み取る場合、

   using( var idr = connection, SP.......)
   {
       while(idr.read())
       {
          if(String.IsNullOrEmpty(idr["ColumnNameFromDB"].ToString())
          //do something
       }
   }
0
priyanka