2011-05-09 112 views
0

這是我的code.but值不能插入數據庫中。它會通過下拉列表獲取除選定值以外的系統日期時間。引發異常「字符串未被識別爲有效的DateTime」該怎麼辦?

string strDateOfBirth = ddlMonth.SelectedValue.ToString(); 
strDateOfBirth = strDateOfBirth + "/" + ddlBirthDate.SelectedValue.ToString(); 
strDateOfBirth = strDateOfBirth + "/" + ddlYear.SelectedValue.ToString(); 

//objVivah.BirthDate = DateTime.ParseExact(strDateOfBirth, "MM/dd/yyyy hh:mm", null); 
objVivah.BirthDate = Convert.ToDateTime(strDateOfBirth); 
// objVivah.BirthDate = Convert.ToString(strDateOfBirth); 
+2

請您在第3行之後指出'strDateOfBirth'的實際值。 – 2011-05-09 05:23:26

+1

請注意,不要發佈僅用於分散注意力的代碼。 – Oded 2011-05-09 05:29:57

回答

1

要使用Convert.ToDateTime功能String轉換爲DateTime,在String必須在一個特定的格式。如果您String有不同的格式,需要使用DateTime.ParseExact功能將其轉換:

DateTime.ParseExact(strDateOfBirth, "MM/d/yyyy", CultureInfo.InvariantCulture); 
0

試試這個:

objVivah.BirthDate = DateTime.ParseExact(strDateOfBirth, "MM/dd/yyyy", null); 

你可能想看看的TryParse爲好。

0

好了,我不會創建開始與字符串 - 如果你已經有每個部分,您可以分析那些作爲整數(使用int.Parse),然後創建一個日期時間。或者對於下拉列表,您甚至可以避免使用字符串值開始,這將是理想的。 (使與每個項目相關的只是一個整數,這可能是不可行的,這取決於您使用的是什麼UI技術 - 您還沒有說過是否是WinForms,ASP.NET,WPF等)

使用DateTime.ParseExact與適當的格式字符串是第二好的方法,但我沒有看到創建一個字符串,然後解析它的任何意義。

相關問題