はどのように我々は、C#で、私たちのプログラムで(SQL Serverからの得た)日時フィールドにnull扱うことができますか?プログラムのallow-null datetimeフィールド(DB)にnullを処理する方法は?
6
A
答えて
12
ここには3つの一般的なアプローチがあります。あなたが話している場合(あなたはデータリーダーからそれをフェッチとしておそらく)
- について
object
、そしてDBNull.Value
はnullを表すことができます。私は - に起因して、.NET 1.1の歴史、
DateTime.MinValue
は一般null
として解釈されているが、データ層のうち、これをできるようにする傾向がありません。魔法の数字かもしれませんが、ほとんどのデータバインディングなどで動作します。 - in .NET 2.0、
Nullable<T>
は、DateTime?
を使用できることを意味します。つまり、null可能なDateTimeです。ただDateTime?
はどこ史上あなたがnullにすることができDateTime
意味使用して、あなたはそれをnull
または有効なDateTime
の値を与えることができます。
データ・アクセスおよびヌルのいくつかの他の思考:
- をあなたは必見使用
DBNull.Value
、ないnull
SqlCommand
に渡す - データリーダーからの読み取り時 - 下記参照、私はチェックする傾向がある
reader.IsDbNull(ordinal)
コマンドのもの(例としてNullable<T>
) ):
param.Value = when.HasValue ? (object)when.Value : DBNull.Value;
3
使用DateTime?
あなたは具体的には、どのような問題を抱えていますか?
- それは明らかだちょうどそう、それはNullable
DateTimeオブジェクトではなく、質問:)
DateTime? t = null;
だ
を編集する - ので、同じようにそれをチェックし、コメントへの対応
を編集します。
DateTime? theTime;
if(table["TheColumn"] == DBNull.Value){
theTime = null;
} else {
theTime = (DateTime) table["TheColumn"];
}
関連する問題
- 1. フィールドのプログラムによる追加を処理する方法は?
- 2. DateTimeをNULLに設定する方法
- 3. slick 3でオプションのdbステップを処理する方法は?
- 4. クライアント側のDBドロップテーブルトランザクションを処理する方法は?
- 5. xStreamではJSON - NULL値を処理する方法を
- 6. LINQサブクエリでNullを処理する方法は?
- 7. データグリッドの行をプログラムで反復処理する方法は?
- 8. Mongoose DB接続の中断を処理する方法
- 9. このPHP/mysqlのinsert文でnullを処理する方法
- 10. Spring.NETでnullリクエストのスコープ付きオブジェクトを処理する方法
- 11. テキストストリームを処理するプログラムをPythonで書く方法は?
- 12. 処理中にコントロールの更新を処理する方法は?
- 13. 実行時にDjangoで動的フィールドを処理する方法
- 14. ウェブアプリケーション+アンドロイドアプリ、アンドロイドでdb接続を処理する方法
- 15. mysqlクエリを使用してnullデータベースを処理する方法
- 16. コントローラ/ビューモデルでnullデータを処理する方法
- 17. いるICollection <>フィールドを処理する方法
- 18. dbクエリを処理する最善の方法は何ですか
- 19. Nullable DateTime変数のnull値をDbNull.Valueに変換する方法
- 20. シェアポイントのdatetimeコントロールCSSを処理するには?
- 21. datetimeフィールドの値をnullに設定します
- 22. T-SQLでDATETIME NULLレコードを識別する方法は?
- 23. Windowsフォームのデータバインディングとプロパティパス:NULL可能性を処理する方法は?
- 24. Razorコードでnull変数の可能性を処理する方法は?
- 25. プログラムでmysql dbをクローンする方法
- 26. SIGINTの処理方法は?
- 27. トリガーを使用してTeamSystem DBの計算フィールドを処理する
- 28. Apache POIを使用してNull行を処理する方法は?
- 29. PHPでのDBエラー処理
- 30. DateTimeを処理していますか? NHibernateのに/ LINQは
マーク、ありがとう。 – odiseh