C# 如何按ID更新单个数据库记录

C# 如何按ID更新单个数据库记录,c#,asp.net-mvc,database,record,C#,Asp.net Mvc,Database,Record,我一直在浏览ASP.NETMVC电影数据库教程,但一直在尝试做一些小改动,以帮助了解bits的作用。我要补充一点,我完全是个初学者 我有一个带有小表单和按钮的页面,当我填写表单并单击“提交”时,表单中的数据将更新数据库表中的预定记录 在控制器代码中,如何指定单个记录?假设该表中只有一条记录,而这条记录将定期使用新信息更新 我想这与代码中的这两行有关: db.Entry(data).State = EntityState.Modified; db.S

我一直在浏览ASP.NETMVC电影数据库教程,但一直在尝试做一些小改动,以帮助了解bits的作用。我要补充一点,我完全是个初学者

我有一个带有小表单和按钮的页面,当我填写表单并单击“提交”时,表单中的数据将更新数据库表中的预定记录

在控制器代码中,如何指定单个记录?假设该表中只有一条记录,而这条记录将定期使用新信息更新

我想这与代码中的这两行有关:

            db.Entry(data).State = EntityState.Modified;
            db.SaveChanges();
我只是不知道如何单独指定记录以便更新它?记录将有一个ID号(例如,ID将为“1”)

执行当前更新的代码位:

// POST: /Data/Update/

    [HttpPost]
    public ActionResult Update(Data data)
    {
        if (ModelState.IsValid)
        {
            db.Entry(data).State = EntityState.Modified;
            db.SaveChanges();
            return RedirectToAction("Index");
        }
        return View(data);
    }

EF需要知道数据库中要更新的行。 如果“ID”属性未从请求绑定,则需要在代码中显式设置它:

    if (ModelState.IsValid)
    {
        data.Id = 1; //EF need to know which row to update in the database.
        db.Entry(data).State = EntityState.Modified;
        db.SaveChanges();
        return RedirectToAction("Index");
    }

EF需要知道数据库中要更新的行。 如果“ID”属性未从请求绑定,则需要在代码中显式设置它:

    if (ModelState.IsValid)
    {
        data.Id = 1; //EF need to know which row to update in the database.
        db.Entry(data).State = EntityState.Modified;
        db.SaveChanges();
        return RedirectToAction("Index");
    }

请不要在标题前加上“C#MVC”之类的前缀。这就是标签的作用。什么教程?详细解释,请完成该教程。我有类似的问题(带答案)。请不要在标题前加上“C#MVC”之类的前缀。这就是标签的作用。什么教程?详细解释,请完成该教程。我有类似的问题(带答案)。谢谢你,Dmitry,不幸的是,由于某种原因,它没有更新记录(没有错误,单击按钮实际上没有做任何事情)。在VisualWebDeveloper中构建项目时也没有错误。我可以提供视图中使用的代码,如果这可能有帮助的话?(数据库名为“data.sdf”,数据库中包含记录的表名为“data”-抱歉,我知道这不对,但我仍在学习…)尝试运行调试器并在“if(ModelState.IsValid)”行设置断点以检查代码是否执行。使用调试器浏览代码,查看实体属性值​​. 它们正确吗?谢谢你,德米特里,你是对的,代码似乎没有被执行。我有一个名为“Update”的视图(它位于视图文件夹“Data/Update”中),其中包含HTML和表单,并带有一个提交更改的按钮,但是该按钮似乎没有任何作用。按钮上有这样的代码:似乎代码没有被调用。。。现在我真的迷路了!谢谢你的帮助,Dmitry,我找到了代码没有执行的原因(因为按钮的值不正确),上面的代码更改完美地更新了记录。再次非常感谢。谢谢你,Dmitry,不幸的是,由于某种原因,没有更新记录(没有错误,单击按钮实际上没有做任何事情)。在VisualWebDeveloper中构建项目时也没有错误。我可以提供视图中使用的代码,如果这可能有帮助的话?(数据库名为“data.sdf”,数据库中包含记录的表名为“data”-抱歉,我知道这不对,但我仍在学习…)尝试运行调试器并在“if(ModelState.IsValid)”行设置断点以检查代码是否执行。使用调试器浏览代码,查看实体属性值​​. 它们正确吗?谢谢你,德米特里,你是对的,代码似乎没有被执行。我有一个名为“Update”的视图(它位于视图文件夹“Data/Update”中),其中包含HTML和表单,并带有一个提交更改的按钮,但是该按钮似乎没有任何作用。按钮上有这样的代码:似乎代码没有被调用。。。现在我真的迷路了!谢谢你的帮助,Dmitry,我找到了代码没有执行的原因(因为按钮的值不正确),上面的代码更改完美地更新了记录。再次感谢。