更新只是不工作

本文关键字:工作 更新 | 更新日期: 2023-09-27 18:01:33

我正在尝试更新我的表。我有一个只有一个文本框的页面,用户可以在其中输入数量,但它只是不更新。没有错误之类的。假设这一列中已经有1了,然后我更新它为6,然后我回到表中,这一行现在变成了0。我不明白。

当我看到url的查询字符串部分…无论我在表单中输入什么值,它总是说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>

我在这里做错了什么,可能会导致这个共聚?

更新只是不工作

你应该使用

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

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

只是一个猜测,但它可能是在你的更新查询你更新整数类型与字符串?似乎您正在将要转换为整数的值包装在单引号中。我想这完全取决于如何在数据库中定义类型。如果它们被定义为整数,试着去掉单引号。如果它们被定义为字符串,那么就没有理由将它们强制转换为整数。