更新只是不起作用

时间:2011-07-07 16:56:31

标签: c# .net sql sql-server razor

我正在尝试更新我的表格。我有一个只有一个TextBox的页面,用户可以在其中输入数量,但它不会更新。没有任何错误或任何错误。而且,我们只是说列中已经有'1',然后我更新它说'6',然后我回到表中,那个特定的行现在变成了'0'。我不明白。

当我查看url的Query String部分时。无论我发布什么值的表单,它总是说0是查询字符串。

这就是我所拥有的:

    var UpdateQuantityQuery = "";
    if(Request.Form["IsBoxed"].AsBool() == true)
    {
        UpdateQuantityQuery = "UPDATE Cart SET Boxes = '" + Request.Form["quantity"].AsInt() + "' WHERE PartNumber = '" + Request.Form["PartNumber"] + "' AND IsBoxed = 'True' AND OrderId = '" + Session["OSFOID"] + "'";
        database.Execute(UpdateQuantityQuery);

        // Redirect back to their SHopping Cart now.
        Response.Redirect("~/Account/Cart.cshtml");
    }
    else
    {
        UpdateQuantityQuery = "UPDATE Cart SET Units = '" + Request.Form["quantity"].AsInt() + "' WHERE PartNumber = '" + Request.Form["PartNumber"] + "' AND IsBoxed = 'False' AND OrderId = '" + Session["OSFOID"] + "'";
        database.Execute(UpdateQuantityQuery);

        // Redirect back to their SHopping Cart now.
        Response.Redirect("~/Account/Cart.cshtml");
    }

表单代码是:

<form method="post" action="EditQuantity.cshtml?Update=OK&PartNumber=@Request["PartNumber"]&IsBoxed=@Request["IsBoxed"]">
    <fieldset>
        <legend>Edit Quantity</legend>
        <label for="quantity">
                @Message
        </label>
        <input type="text" name="quantity" title="Edit Quantity" />
        <input type="submit" value="Confirm" title="Confirm Change" />
    </fieldset>
</form>

我在这里做错了什么可能会导致这种共谋?

2 个答案:

答案 0 :(得分:2)

你应该使用

if(Request.QueryString["IsBoxed"].AsBool() == true)

不是表单,您通过查询字符串发送此信息而不是表单元素

答案 1 :(得分:1)

只是一个猜测,但是在您的更新查询中,您是否正在使用字符串更新整数类型?看起来你用单引号将你正在转换的值包装成整数。我想这一切都取决于数据库中类型的定义方式。如果它们被定义为整数,请尝试删除单引号。如果它们被定义为字符串,则没有理由将它们转换为整数。只是一个猜测。