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が返ってきます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

都内の精密機器を作っている会社に勤務している14年目のエンジニアです。趣味は美味しいものを食べることとゴルフ。プログラムについて今まで学んだことをわかりやすく発信するサイトを目指しています。

コメント

コメントする

目次