单击按钮,使用ActionResult MVC更新ReceivedDate列

时间:2014-11-15 00:51:55

标签: sql asp.net-mvc asp.net-mvc-4 actionresult

我有一个"提交此批次"我的视图上的按钮,其中样品被输入到预定的批次中。

点击,我想做2次更新:

1 - 将批次ID =会话[" BatchID"]的所有记录更新为今天的日期。 (只有一个字段需要更新,但需要多行。)

2 - 将批次的状态更新为" C" (已关闭),在批次表中。

我很确定我是通过ActionResult这样做的,我知道我不会遇到问题:

<button onclick="location.href='@Url.Action("<ActionResultName>", "ControllerName")';return false;">Commit This Batch</button>

在我的ActionResult中,我总是画一个空白。这是来自Management Studio中的查询窗口的SQL,我想用尽可能少的代码模拟:

UPDATE dbo.BactiBatches SET BatchStatus= 'C'
WHERE BactiBatchID= <SessionValue>

UPDATE dbo.BactiBucket SET ReceivedDate = GetDate()
WHERE BactiBatchID= <SessionValue>

我使用EF和MVC4。

1 个答案:

答案 0 :(得分:0)

好的,不知道如何让我的问题更简单。但我发现这个答案瞧!作品。 https://stackoverflow.com/a/8566906/564810

以下是我的HomeController中的代码,当被调用时确实完全符合我的要求。不需要任何其他东西。当然,控制器会执行很多其他CRUD,因此EF声明位于顶部:

public class HomeController : Controller {

    DWS_Entities _db;


    public HomeController()
    {

        _db = new DWS_Entities();

    }

public ActionResult CommitThisBatch()
{
    _db.ExecuteStoreCommand("UPDATE dbo.BactiBatches SET BatchStatus = 'C' WHERE BactiBatchID= " + Session["ThisBatch"]);


    _db.ExecuteStoreCommand("UPDATE dbo.BactiBucket SET RecvDate = GetDate() WHERE Batch_ID= " + Session["ThisBatch"]);

    return RedirectToAction("AddColiform");

}