Обновление просто не будет работать - PullRequest
0 голосов
/ 07 июля 2011

Я пытаюсь обновить свою таблицу.У меня есть страница с одним TextBox, где пользователь может ввести количество, но оно не обновляется.Там нет ошибок или что-нибудь.И, давайте просто скажем, что в столбце уже было «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>

Я что-то здесь не так делаю, что может вызывать сожительство?

Ответы [ 2 ]

2 голосов
/ 07 июля 2011

Вы должны использовать

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

не форма, вы отправляете эту информацию через строку запроса, а не как элемент формы

1 голос
/ 07 июля 2011

Просто предположение, но может ли быть так, что в ваших запросах на обновление вы обновляете целочисленные типы строками?Кажется, вы заключаете значения, которые вы приводите, в целые числа в одинарные кавычки.Я думаю, все зависит от того, как типы определены в базе данных.Если они определены как целые числа, попробуйте удалить одинарные кавычки.Если они определены как строки, то нет смысла приводить их к целым числам.Просто предположение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...