1

数値が割り当てられているか、何も割り当てられていない可能性がある整数列があります (つまり、データベースでは null)。nullかどうかを確認するにはどうすればよいですか?

私が試してみました

if(data.ColumnName == null)
{
    ...
}

これも機能しません (SubSonic は ActiveRecord に null 許容型 (該当する場合) を使用しないため)

if(data.ColumnName.HasValue)
{
    ...
}

データベースに格納されている値が 0 の場合、これは役に立ちません。

if(data.ColumnName == 0 /* or 0x000? */)
{
    ...
}

DateTime フィールドでも同じ問題が発生する可能性があります。

4

5 に答える 5

6

試す:

If (データ == System.DBNull)

于 2009-04-22T11:20:23.560 に答える
1

やり方がわかった。SubSonic には、null チェックを可能にするオブジェクトとして値を取得するメソッドがあります。

if(data.GetColumnValue("Column Name") == null)
{
    ...
}
于 2009-04-22T13:13:53.163 に答える
0

DBNullは、NULL列の値です。

DBNullは値型です。値の型をnullにすることはできません。

SqlDataReaderを想定しています...nullのチェックは次のとおりです。

if(reader ["colname")== DBNull.Value)

于 2009-04-22T12:20:13.307 に答える
0

データ変数が厳密に型指定されたデータ行である場合、これが役立つ場合があります:

if(data.IsNull("ColumnName")) { ... }
于 2009-04-22T11:24:19.510 に答える
0

データベースにクエリを実行すると、そこでnullが処理され、コードでの作業がずっと楽になります

SQL の例

SELECT isNull(columnName, 0) FROM TABLENAME...

また

Select isNUll(columnName, 'N/A') FROM TABLENAME ...
于 2009-04-22T13:26:18.313 に答える