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