MENU

C# DBNullエラーの対処法

DBNullエラーの対処法

C#でデータセットを扱っていると厄介なのがDBNull。

DBNullを考慮していないと以下のようなエラーメッセージが返ってくることがあります。

System.InvalidCastException: ‘オブジェクトを DBNull から他のタイプにキャストすることはできません。’

DBNullとNullは全く別物なので、Null判定だけでは不十分です。

この記事では、DBNullを判定するサンプルコードを紹介します。

目次

DBNullを判定してみる

サンプルコード

public static T Convert<T>(object obj)
{
  if (obj != DBNull.Value && obj != null)
  {
    return (T) obj;
  }
  return default;
}

object型は万能で何でも変換することができるので、一度object型で受け取ります。

次に、DBNullなのかNullなのかを判定してあげて、どちらでもなければ指定の形にキャストされます。

Nullだった場合はDefaultが返ってきます。

よかったらシェアしてね!

この記事を書いた人

コメント

コメントする

目次
閉じる