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行:
如果数据库中的日期字段可为空(未标记为 NOT NULL),则可以将 C# 中的数据类型更改为可为空的 DateTime:
DateTime? dtForecastComplete = null;
Run Code Online (Sandbox Code Playgroud)
现在您可以向数据库传递(并检索)空值。