object をNULL判定する

object をNULL判定するのに困った。

ただのObjectではなく

NpgsqlDataReader を使って

PostgreからDataをGetした時に

当該カラムがnullなのか否かを判定するが

全くnullと判定できなかった。

「?」を使ってやると .ToString()がエラーにならなくなった。

ただ左辺に代入した変数は "" のようだ。

 

 //SQLの実行
npg_reader = Class_Npg.Exe_Sql(str_sql);

while (npg_reader.Read())
{

// NULLなら空文字となるのか?
var obj = npg_reader.GetValue(9)?.ToString();
if ( (string)obj == "")
{
this.Dgv[9, int_count].Value = " ";
}
else
{
this.Dgv[9, int_count].Value = npg_reader.GetValue(9);
}
}