2013-08-30 62 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;