close
常常會遇到一個問題,當塞資料到一個資料表欄位格式為日期,卻沒有給予任何資料(Null)時,

model.ListingDate = formdata.ListingDate; //(傳入null)

會發生這個例外Exception

SqlDateTime 溢位。必須在 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之間

而讚取一個日期欄位為Null,View裡面使用ToString("yyyy/MM/dd")會顯示成0001/01/01,

Ex : @model.ListingDate.ToString("yyyy/MM/dd")

image

image

解決方法是在Model設計中要明確宣告這個struct允許是null

public DateTime ? ListingDate { get; set; }


這樣在讀取與寫入時,就不會出現以上的窘境

ps︰

雖然View中的顯示會自動呈現空字串

例如 <td>@uwc.ListingDate.ToString("yyyy/MM/dd")</td>

不過建議還是先使用HasValue來檢查

model.ListingDate.HasValue ? model.ListingDate.Value.ToString("yyyy/MM/dd") : "NoDate";
















arrow
arrow
    全站熱搜

    baechang 發表在 痞客邦 留言(0) 人氣()