型がNULL
内部のデータベースから返された値を設定しようとすると、無効なキャスト例外が発生するのはなぜですか。Comments
Int32
私はこれを置き換えようとしています:
try
{
objStreamItem.Comments = (Int32)sqlReader["Comments"];
if (objStreamItem.Comments > 0) {
listComments = Comment.GetAll(objStreamItem.Id);
}
}
catch (InvalidCastException)
{
// Execute if "Comments" returns NULL
listComments = null;
objStreamItem.Comments = 0;
}
これとともに:
Comments = ((Int32?)sqlReader["Comments"]) ?? 0
2つは異なるコンテキストにありますが、アイデアを得る必要があります。try catchブロックを使用する代わりに、よりエレガントな方法でこれを解決しようとしています。
ありがとう。
アップデート
これは、null許容整数としてデータベースに格納されます。
public int? Comments
{
get;
set;
}