1

私は新しい ASP.Net 4.0 データ駆動型アプリに取り組んでいます。DAL では、すべてのデータの NULL 値をチェックし、NULL の場合はデフォルトで適切なデータに設定します。奇妙な問題が発生しています。2 つの日付が戻ってきます - 1 つは時間だけが必要です。完全な日付のコードの最初の行は確実に機能しますが、コードの 2 行目はフォーマット文字列を指すエラーですが、奇妙な部分は、フォーマット文字列を使用せず、Date.MinValue を返すだけの NULL 値でエラーになることです。2 行目がデータを取得すると、戻り値が正しくフォーマットされます。

Dim dr As DataRow
.TourDate = IIf(dr.IsNull("tourdate"), Date.MinValue, Format(dr("tourdate"), "MM/dd/yyyy"))

.TourTime = IIf(dr.IsNull("tourtime"), Date.MinValue, Format(dr("tourtime"), "T"))

dr("tourtime") が NULL の場合、エラーは 2 行目に表示されます。エラーは次のとおりです: Argument 'Expression' is not a valid value.

4

3 に答える 3

6

IIfin VB.Net は短絡評価を行わないため、値が null の場合でも Format 呼び出しが実行されます。

Ifを使用する必要があります:

.TourTime = If(dr.IsNull("tourtime"), Date.MinValue, Format(dr("tourtime"), "T"))

これは、ここで説明されている問題と同じです: Using VB.NET IIF I get NullReferenceException

于 2011-04-14T19:43:12.120 に答える
0

これをトラブルシューティングするには、格納されている実際の値を調べます。null のように見える datetime 列に、実際には値が含まれている場合があります。

于 2011-04-14T19:07:28.163 に答える
-1

IsNullの代わりに IsDbNullを使用する必要があると思います。

于 2011-04-14T16:51:57.030 に答える