2

null に対してデータテーブルの次のフィールドをチェックしたい:

r.Field<int>("prod_type")

if (r.Field<int>("prod_type") != null && 
    !string.IsNullOrEmpty(r.Field<int>("prod_type").ToString()))

しかし、次の例外が発生します。

指定されたキャストは無効です。

null または empty に対してデータテーブルの整数値をチェックする方法は?

4

3 に答える 3

4

Field拡張メソッドは、null 許容型をサポートしています。HasValuenullable が null でないかどうかを確認するために使用します。

if (r.Field<int?>("prod_type").HasValue)
于 2013-02-18T09:37:18.750 に答える
2

あなたが得ているエラーは、データテーブルのフィールドが型ではないintことを示しています。タイプintが null 値を保持できない場合は、代わりにint?どれがNullableかを試すことができます。

r.Field<int?>("prod_type") != null
于 2013-02-18T09:35:39.270 に答える
1

prod_typeが実際にデータベースのフィールドである場合はint、次のようにしてみてください。

if (r.Field<int?>("prod_type") != null)
于 2013-02-18T09:37:20.753 に答える