我想对文章进行更新,我需要跟踪最后修改日期。我将datetime2数据类型的上述错误转换转换为datetime数据类型。
以下是我的articlesController的代码
[HttpGet]
public ActionResult Update()
{
EditArticlesVM model = new EditArticlesVM();
return View(model);
}
[HttpPost]
public ActionResult Update(EditArticlesVM model)
{
try
{
article objArticle = new article
{
articleID = model.articleID,
articleTitle = model.articleTitle,
articleContent = model.articleContent,
lastmodified = DateTime.Now
};
objBs.articleBs.Update(objArticle);
TempData["Msg"] = "Article Updated Successfully!";
return RedirectToAction("Edit");
}
catch (DbEntityValidationException dbEx)
{
var sb = new StringBuilder();
foreach (var validationErrors in dbEx.EntityValidationErrors)
{
foreach (var validationError in validationErrors.ValidationErrors)
{
sb.AppendLine(string.Format("Entity:'{0}' Property: '{1}' Error: '{2}'",
validationErrors.Entry.Entity.GetType().FullName,
validationError.PropertyName,
validationError.ErrorMessage));
}
}
//throw new Exception(string.Format("Failed saving data: '{0}'", sb.ToString()), dbEx);
TempData["Msg"] = sb.ToString();
return RedirectToAction("Edit");
}
}
答案 0 :(得分:1)
似乎你不打算显示Article
模型的代码。这是我目前的通用答案。
您必须确保“开始”大于或等于SqlDateTime.MinValue (January 1, 1753)
。如果您未设置默认日期,则默认情况下为DateTime.MinValue (January 1, 0001)
。
所以SQL datetime
数据类型无法处理该值。这就是为什么它显示上面的错误。你有2个解决方案。一个是,设置{{1} datetime
属性的默认日期model.second选项是,将SQL数据类型更改为Article
。