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

本文关键字:格式 不正确 DateTime 字符串 输入 | 更新日期: 2023-09-27 18:29:40

我有一个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())的情况下插入,但也出现了同样的错误。为什么?

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

我猜您使用的是一个可为null的DatePicker,可能会得到一个null值,

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

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

因此,如果值为null

,则会将其设置为Today的默认值

您可以执行以下

leave_from = dpLeaveFromStd.SelectedDate ?? DateTime.Now;

您应该始终使用DateTime.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))
{
}