2017-03-09 15 views
0

上記の私のタイトルとして、私のデータベースにはDateTimeというデータ型のテーブルがあり、null値です。日時の値がnullの場合、あなたが私のコードで見ることができるよう、私が使用していますこのコード行を得たが、私はそれが12:00DateTimeデータベースにNULLがありません

string FitaCorIn1 = Convert.ToDateTime(req.FACorrectionIn1).ToString("hh:mm") == null ? "00:00" : Convert.ToDateTime(req.FAIn1).ToString("hh:mm"); 
string FitaCorOut1 = Convert.ToDateTime(req.FACorrectionOut1).ToString("hh:mm") == null ? "00:00" : Convert.ToDateTime(req.FAIn1).ToString("hh:mm"); 

を返している原因か分からないので、私が表示したい00:00 nullでない場合は、現在の値が表示されます。

NOTE

12時間フォーマット

+0

「req.FACorrectionIn1」はデータベースの値ですか? –

+0

@データベースではすべてnullです。 – KiRa

+1

ToStringメソッドが "12:00"を返すため、 "12:00"が返されているようです。それをnullと比較することはTRUEと評価されません。たぶん、あなたは 'ToString'からの戻り値をnullと比較したくないかもしれません。そして、あなたは 'ToDateTime'メソッドを呼び出す必要さえないかもしれません。おそらく 'FACorrectionIn1'メンバがnullであるかどうかをチェックしたいだけかもしれません。 – spencer7593

答えて

0

あなたはHH:mm形式を使用する必要があります。

Convert.ToDateTime(req.FAIn1).ToString("HH:mm"); 
+1

OPは12時間フォーマットが24時間でないことを望んでいる – Nkosi

+0

'HH'は24時間フォーマットですか? – KiRa

1

変換する前にnullを確認する必要があります。そうしないと、変換メソッドの例外が発生することがあります。 (コメントごとに)FACorrectionIn1はDateTime型であると思われますので、NULLを確認できるヌル可能なDateTimeの場合は、DateTime.MinValueと比較する必要があります。データベース内の値が ヌル

同じ理由FACorrectionIn1あるDateTimeオブジェクトの場合でも

は、なぜあなたは 12:00を得ている、そしてそれがnullではありませんnullをチェックした状態ので、デフォルト値は 01/01/0001 00:00:00なのでfalseになりました。したがって、 .ToString("hh:mm")を使用してフォーマットすると、 12:00が得られます。あなたは、このようにしなければならないので:

string FitaCorIn1 = req.FACorrectionIn1 == DateTime.MinValue ? "00:00" : 
              Convert.ToDateTime(req.FAIn1).ToString("hh:mm"); 

あなたがConvert.To..

+0

'DbNull'とはどういう意味ですか? – KiRa

+0

@KiRa:キーワードnullは無効な参照を表します。クラスSystem.DbNullは、データベースフィールド内に存在しない値を表します。[this](http://stackoverflow.com/questions/4958379/what-is-the-difference-between-null-and-system-dbnull-value )違いの詳細については –

+0

私はあなたの方法を使用する場合、私はエラーが発生しました。演算子 '=='は 'System.DateTime'型とSystem.DBNull型のオペランドには適用できません。また、 '=' single 'を使用すると、Implicityで' System.DBNull '型をboolに変換できません。 – KiRa

0

のために代わりの解析を使用する場合、私は今それを得た素晴らしいことだ... spencer7593に感謝を。これは私のコードは今のように見えるです。

string FitaCorIn1 = req.FACorrectionIn1 == null ? "00:00" : Convert.ToDateTime(req.FACorrectionIn1).ToString("hh:mm"); 
string FitaCorOut1 = req.FACorrectionOut1 == null ? "00:00" : Convert.ToDateTime(req.FACorrectionOut1).ToString("hh:mm"); 
+1

これらのプロパティはすでに日付時刻になっているように見えるため、変換する必要はありません。また、DateTimeはnullにできないので、条件文は常にelse文になります。 – Nkosi

関連する問題