2012-08-14 141 views
0

導致錯誤在我的C#代碼後面,當我轉換
public DateTime custDOB { get; set; }

public DateTime? SubDOB { get; set; }將DateTime轉換爲DateTime?在asp.net

我在我的代碼行
tboxDateOfBirth.Text = oCust.custDOB.ToShortDateString();

和消息的一個得到一個錯誤讀取'System.Nullable'不包含'ToShortDateString'的定義,並且沒有找到接受'System.Nullable'類型的第一個參數的擴展方法'ToShortDateString'

我該如何解決這個問題?

+0

雖然解決您的問題很簡單,措辭頗爲混亂。在第一行代碼中將'custDOB'的類型更改爲'DateTime?'。 – 2012-08-14 13:55:36

回答

8

變化。如果你是在所有的時間100%肯定,這將有一個價值並不會爲null該行

tboxDateOfBirth.Text = oCust.custDOB.HasValue? oCust.custDOB.Value.ToShortDateString() : string.Empty; 
1

做到這一點

tboxDateOfBirth.Text = ((DateTime)(oCust.custDOB)).ToShortDateString(); 

,或者如果有機會,它可以爲null,你可以去安德烈卡爾爾答案。您也可以閱讀null-coalescing operator (??)

+0

我不認爲你可以使用?運算符,因爲它只允許我們在值爲null時操縱要執行的操作。 – 2012-08-14 13:59:41

+0

@LOSTCODER:完成。 – 2012-08-14 14:01:05

1

有空類型 - 像int?或日期時間?這樣你就可以檢查,如果他們有.HasValue 任何能夠訪問值實際值使用

oCust.custDOB.Value.ToShortDateString();