2023/02/15

SQLiteでのDBNull.Value.Equals(value)

SQLiteでExecuteScalarで値を取得する際に

var value = cmd.ExecuteScalar();
if (DBNull.Value.Equals(value))
{
    // 存在しない
}
else
{
    // 存在する
}

としても上手く判定出来ない?デバッグ作業で分かったのは

if (DBNull.Value.Equals(value)
{
    // 存在しない
}
else if (value == null)
{
    // null
}
else
{
    // 存在する
}

とすると「存在しない」ではなく「null」になる。これが現在利用している環境のバグなのか仕様なのか謎だな!

追記 2023.2.16 18:25
Windows 11 Pro 22H2 ビルド 22621.1265
Visual Studio Community 2022 Ver. 17.4.4
Sysrem.Data.SQLite.Core Ver. 1.0.116

0 件のコメント:

コメントを投稿