将datetime2数据类型转换为datetime数据类型导致一个超出范围的值。

196

我在HomeController中有以下代码:

public ActionResult Edit(int id)
{
    var ArticleToEdit = (from m in _db.ArticleSet where m.storyId == id select m).First();
    return View(ArticleToEdit);
}

[ValidateInput(false)]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(Article ArticleToEdit)
{
    var originalArticle = (from m in _db.ArticleSet where m.storyId == ArticleToEdit.storyId select m).First();
    if (!ModelState.IsValid)
        return View(originalArticle);

    _db.ApplyPropertyChanges(originalArticle.EntityKey.EntitySetName, ArticleToEdit);
    _db.SaveChanges();
    return RedirectToAction("Index");
}

这是Edit方法的视图:

<% using (Html.BeginForm()) {%>

    <fieldset>
        <legend>Fields</legend>
        <p>
            <label for="headline">Headline</label>
            <%= Html.TextBox("headline") %>
        </p>
        <p>
            <label for="story">Story <span>( HTML Allowed )</span></label>
            <%= Html.TextArea("story") %>
        </p>
        <p>
            <label for="image">Image URL</label>
            <%= Html.TextBox("image") %>
        </p>
        <p>
            <input type="submit" value="Post" />
        </p>
    </fieldset>

<% } %>

当我点击提交按钮时,出现错误:{"将datetime2数据类型转换为datetime数据类型导致值超出范围。\r\n语句已终止。"} 有什么想法吗? 我假设编辑方法正在尝试将数据库中的发布值更新为编辑值,但由于某种原因它不喜欢它...虽然我不明白为什么日期涉及其中,因为在编辑控制器方法中没有提到。


1
modelBuilder.Entity<WorldInfo>().Property(d => d.CurrentTime).HasColumnType("datetime2"); - Anthony Nichols
24个回答

0

你需要将日期字段的输入格式与所需实体格式匹配,即 yyyy/mm/dd。


1
还有其他答案可以回答提问者的问题,而且它们是一段时间之前发布的。当您发布答案时,请确保添加一个新的解决方案或更加详细的解释,特别是在回答旧问题时。参见:如何撰写好的答案? - help-info.de

0

很可能是其他问题,但对于未来的读者,请检查您的日期时间格式。我曾经有过14个月。


0

尝试将您的属性设置为可空。

    public DateTime? Time{ get; set; }

对我有用。


0

我认为在这方面最合乎逻辑的答案是将系统时钟设置为相关功能。

 [HttpPost]
        public ActionResult Yeni(tblKategori kategori)
        {
            kategori.CREATEDDATE = DateTime.Now;
            var ctx = new MvcDbStokEntities();
            ctx.tblKategori.Add(kategori);
            ctx.SaveChanges();
            return RedirectToAction("Index");//listele sayfasına yönlendir.
        }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接