如何在mvc.net中更新sqlserver数据库

时间:2016-06-01 09:40:31

标签: asp.net-mvc

我正在使用sql server database在mvc .net中创建一个数据库应用程序。我有一个表名称seatplans,其中包含字段id,layout_id,seat_no,seat_id,预订我想用控制器动作中的以下问题更新数据库< / p>

update seatplanes set booked=1 where seatid=seat_id and layoutid=layout_id

我的控制器操作如下,但我无法更新数据库

 [HttpPost]
    public ActionResult Seatbook(String seat_id, String seat_no, int layout_id)
    {
        //  int id = 10;
        SeatPlans S = new SeatPlans();
        S.seat_id = seat_id;
        S.seat_no = seat_no;
        S.layout_id = layout_id;
        S.booked = 1;
        if (ModelState.IsValid)
        {
            var OldInsObj = db.SEATPLAN.Find(seat_id,layout_id);
            S.Id = OldInsObj.Id;
            //var OldInsObj = db.SEATPLAN.Find(d=>d.seat_id==seat_id , d=>d.layout_id==layout_id).ToList();
             db.Entry(S).State = EntityState.Modified;
            db.SaveChanges();
            //  return RedirectToAction("Index");
        }


        return View("Index");
    }

我可以在不使用存储过程的情况下更新数据库。

1 个答案:

答案 0 :(得分:1)

首先,我想您想阅读实体框架的documentation,它可以帮助您满足所有需求。

但是,要回答您的问题以更新数据库条目,您首先要获得条目:

var OldInsObj = db.SEATPLAN.Where(s => s.seat_id == seat_id 
    && s.layout_id == layout_id).FirstOrDefault();

使用find仅在搜索主键时有效,当您想要搜索其他字段时,您需要使用Linq,如上所示。

然后更新

OldInsObj.booked = 1;

最后,您可以将您的工作保存到数据库中:

db.SaveChanges();