常常會遇到一個問題,當塞資料到一個資料表欄位格式為日期,卻沒有給予任何資料(Null)時,model.ListingDate = formdata.ListingDate; //(傳入null)
會發生這個例外Exception
SqlDateTime 溢位。必須在 1/1/1753 12:00:00AM 和 12/31/9999 11:59:59 PM 之間
而讚取一個日期欄位為Null,View裡面使用ToString("yyyy/MM/dd")會顯示成0001/01/01,
Ex : @model.ListingDate.ToString("yyyy/MM/dd")解決方法是在Model設計中要明確宣告這個struct允許是nullpublic 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";
文章標籤
全站熱搜
