1
command.Parameters.Add("@EndDate", SqlDbType.DateTime).Value = 
     EndDate == null ? 
        (DateTime?)null : 
        DateTime.Parse(EndDate.ToShortDateString() + " " + EndTime);

EndDate は DateTime 型ですか? EndTime は時刻を含む単なる文字列です。しかし、EndDate は null 許容の DateTime であるため、解析中にエラーが発生します。どうすればこれを解析できますか?

4

4 に答える 4

5

EndDate は nullable であるため、そのように解析できます。

DateTime.Parse(EndDate.Value.ToShortDateString() + " " + EndTime);
于 2013-10-03T07:05:15.247 に答える
0

使用する必要があります: EndDate.HasValue.ToShortDateString():

コードの変換:

command.Parameters.Add("@EndDate", SqlDbType.DateTime).Value = 
EndDate.HasValue == false ? 
(DateTime?)null : 
DateTime.Parse(EndDate.HasValue.ToShortDateString() + " " + EndTime);

次のように書くこともできます。

        var endDateParameter = endDate.HasValue ?
        new SqlParameter("EndDate", DateTime.Parse(EndDate.HasValue.ToShortDateString() + " " + EndTime)) :
        new SqlParameter("EndDate", typeof(System.DateTime));

乾杯、ノア

于 2013-10-03T07:30:09.500 に答える
0

私は通常使用default(DateTime?)しますが、null 許容の DateTime オブジェクトにキャストする必要もあります。

return EndDate.HasValue ? DateTime.Parse(EndDate.Value.ToShortDateString() + " " + EndTime) as DateTime? : default(DateTime?)
于 2013-10-03T07:04:08.860 に答える