使用WebMatrix和Razor保存DateTime

rid*_*nsb 6 c# asp.net webmatrix razor sql-server-ce-4

我正在开发一个具有DateTime字段的项目.

在其中我使用jQuery为用户选择日期格式'dd/MM/yyyy'考虑到日期不是必填字段.

如何保存WebMatrix和Razor中不需要的DateTime字段?

我试图做这样的事情:

我只在这里找到我认为重要的代码来完成代码

@{
//Get data
string TaskForecastCompletion= Request["txtForecastCompletion"];
string TaskCompletedIn= Request["txtCompletedIn"];

                    DateTime dtForecastCompletion = default(DateTime);
                    if (!Request["txtForecastCompletion"].IsEmpty() && !DateTime.TryParse(Request["txtForecastCompletion"], out dtForecastCompletion))
                    {
                            ModelState.AddError("PrevisaoFinalizacao", "Data de previsão de finalização é inválida. Formato: dd/mm/aaaa");
                    }


                                    sql = @"update Tasks set Title = @0 ,Description = @1 ,ProjectID = @2 ,ForecastCompletion = @3 ,RequestBy = @4 ,CompletedIn = @5 ,Modified = getdate() ,Priority = @6 where ID = @7";
                                    db.Execute(sql, TaskTitle,TaskDescription, ProjectID, dtForecastCompletion, TaskRequestBy, dtTaskCompletedIn, TaskPriority, TaskID);
}
Run Code Online (Sandbox Code Playgroud)

尝试更改时出错

转换为datetime时发生溢出.描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息:System.Data.SqlServerCe.SqlCeException:转换为datetime时发生溢出.

来源错误:

第62行:{第63行:
sql = @"更新任务集标题= @ 0,描述= @ 1,ProjectID = @ 2,ForecastCompletion = @ 3,RequestBy = @ 4,CompletedIn = @ 5,Modified = getdate(),优先级= @ 6,其中ID = @ 7"; 第64行:
db.Execute(sql,TaskTitle,TaskDescription,ProjectID,dtForecastCompletion,TaskRequestBy,dtTaskCompletedIn,TaskPriority,TaskID); 第65行:
}第66行:

GvS*_*GvS 4

如果数据库中的日期字段可为空(未标记为 NOT NULL),则可以将 C# 中的数据类型更改为可为空的 DateTime

 DateTime? dtForecastComplete = null;
Run Code Online (Sandbox Code Playgroud)

现在您可以向数据库传递(并检索)空值。