2016-09-29 69 views
-1

我想对文章进行更新,并且需要跟踪上次修改日期。我将datetime2数据类型的上述错误转换为datetime数据类型。将datetime2数据类型转换为日期时间数据类型导致超出范围值。该声明已被终止

下面是我的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

你能显示'文章'模型的代码吗? – Sampath

回答

1

看来你不打算以显示Article model.This的代码是我的通用的答案只是暂时的代码。

您必须确保“开始”大于或等于SqlDateTime.MinValue (January 1, 1753)。如果您未设置默认日期,那么默认情况下它将采用DateTime.MinValue (January 1, 0001)

所以SQL datetime数据类型不能处理value.That就是为什么会出现上述error.You有2 solutions.One是,设置一个默认的日期为datetime性能上的Article model.second选项,更改SQL数据类型为datetime2

+0

我认为OP必须定义datetime可为空DateTime?' –

+0

对此有任何反馈? – Sampath

+1

直到OP不显示模型'文章'我们不能得到实际的问题,你是正确的答案,其结论*为什么发生这种异常* –

相关问题