DateTime的输入字符串格式不正确

时间:2013-08-30 04:21:45

标签: c# .net datetime

我有一个DatePicker,我试图将其值插入到SQL Server表的 Date 字段中。

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

这给出了带有消息

的格式异常
  

输入字符串的格式不正确

我尝试在没有Convert.ToDateTimedpLeaveFromStd.SelectedDate (without the .GetValueOrDefault())的情况下插入,但也遇到了同样的错误。有什么理由吗?

3 个答案:

答案 0 :(得分:1)

你可以这样做

leave_from = dpLeaveFromStd.SelectedDate ?? DateTime.Now;

答案 1 :(得分: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))
{

}

答案 2 :(得分:0)

我猜你使用的是Nullable DatePicker,可能你会得到一个空值,

所以你应该尝试将代码修改为

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

因此,如果值为null,则将其设置为今天的默认值