0

我有一个 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.ToDateTimeand的情况下插入dpLeaveFromStd.SelectedDate (without the .GetValueOrDefault())并且得到了同样的错误。有什么理由吗?

4

3 回答 3

1

我猜你正在使用 Nullable DatePicker 并且可能你会得到一个空值,

因此,您应该尝试将代码修改为

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

因此,如果值为 null,这会将其设置为 Today 的默认值

于 2013-08-30T04:39:02.253 回答
1

你可以做如下

leave_from = dpLeaveFromStd.SelectedDate ?? DateTime.Now;
于 2013-08-30T04:56:20.517 回答
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))
{

}
于 2013-08-30T04:29:52.653 回答