我正在嘗試更新我的表格。我有一個只有一個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&[email protected]["PartNumber"]&[email protected]["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>
難道我做錯了什麼在這裏,可能是造成這cojombulate?
也打印'UpdateQuantityQuery'來查看發送到數據庫的確切內容。 '.AsInt()'做了什麼? –
不回答你的問題,但看着你的代碼,你可能想了解SQL注入攻擊以及如何避免它們。您編寫查詢的方式是如何不在SQL查詢中使用用戶輸入的教科書示例。 http://msdn.microsoft.com/en-us/library/ff648339.aspx – David
我想提交一個帶有參數「PartNumber」的表單文章作爲''; DROP TABLE CART'您的代碼極易受SQL注入攻擊。緊急查找參數化查詢。 – spender