2013-08-30 67 views
0

我有一個DatePicker,我試圖插入到SQL Server表的日期字段中。輸入字符串與DateTime格式不正確

tbl_leave_student updateStdLeave = new tbl_leave_student{ 
       leave_from=Convert.ToDateTime(dpLeaveFromStd.SelectedDate.GetValueOrDefault()) 
      }; 
      db.tbl_leave_students.InsertOnSubmit(updateStdLeave); 
      db.SubmitChanges(); 

這使得與消息

輸入字符串的不正確的格式

我試過沒有Convert.ToDateTime,也dpLeaveFromStd.SelectedDate (without the .GetValueOrDefault())插入格式異常,得到了相同錯誤。任何理由?

+0

你必須指定日期的格式,就像'yyyy-MM-dd'一樣。 – Rahul

+0

指定你的輸入字符串 – Ehsan

+0

我猜你正在使用Nullable DatePicker,所以你應該得到DateTime的值,所以試試只是使用'SelectedDate.GetValueOrDefault(DateTime.Now);' – V4Vendetta

回答

0

您應該始終使用D ateTime.TryParseExact

string[] formats = { "dddd, dd MMMM yyyy" }; //your format here 
DateTime dt; 
if (DateTime.TryParseExact(dpLeaveFromStd.SelectedDate.GetValueOrDefault(), formats, CultureInfo.InvariantCulture, DateTimeStyles.None, out dt)) 
{ 

} 
0

我猜你使用的是可空的DatePicker,也許你會得到一個空值,

所以,你應該儘量修改代碼,

leave_from = dpLeaveFromStd.SelectedDate.GetValueOrDefault(DateTime.Now); 

所以這將設置默認爲今天如果該值爲空

1

你可以做如下

leave_from = dpLeaveFromStd.SelectedDate ?? DateTime.Now;