[英]Delete and minus data at specific cell from database
我正在創建一個表單頁面,該頁面需要在數據網格視圖中顯示數據。 當用戶從網格視圖添加任何項目時,應從庫存中減去該項目,並在用戶按下添加按鈕時更新庫存。
我正在使用的代碼給了我這個例外:
附加信息:'='附近的語法不正確。
我的代碼:
private void btnMoveItem_Click(object sender, EventArgs e)
{
SqlConnection con2 = new SqlConnection(@"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=Northwind;Integrated Security=True");
con2.Open();
String Query1= "DELETE FROM Inventory WHERE id = " + tbID.Text + "";
SqlCommand sqlcmd1 = new SqlCommand(Query1, con2);
sqlcmd1.ExecuteNonQuery();
SqlCommand sqlcmd = new SqlCommand("UPDATE Inventory SET Quantity = @Quantity" +"WHERE id= " + tbID, con2);
sqlcmd.Parameters.AddWithValue("@Item", this.nudQuantity.Text);
sqlcmd.ExecuteNonQuery();
con2.Close();
}
錯誤是您將兩個字符串連接在一起而沒有空格。
但是還有許多其他錯誤。
所有用戶值都應是具有正確類型的sql參數。 必須解析/驗證nudQuantity.Text
。 也許id
了。
string connectionString = @"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=Northwind;Integrated Security=True";
using (var con2 = new SqlConnection(connectionString))
{
con2.Open();
var Query1 = "DELETE FROM Inventory WHERE id = @id";
var sqlcmd1 = new SqlCommand(Query1, con2);
sqlcmd1.Parameters.AddWithValue("@id", tbID.Text);
sqlcmd1.ExecuteNonQuery();
var sqlcmd = new SqlCommand("UPDATE Inventory SET Quantity = @Quantity WHERE id=@id", con2);
sqlcmd.Parameters.AddWithValue("@id", tbID.Text);
sqlcmd.Parameters.AddWithValue("@Quantity", int.Parse(nudQuantity.Text));
sqlcmd.ExecuteNonQuery();
}
您也可以將這兩個查詢合並為一個查詢。
該查詢應該更像您所需要的。
UPDATE Inventory SET Quantity = Quantity-@Quantity WHERE id=@id;
DELETE FROM Inventory WHERE id = @id AND Quantity <= 0;
但是這里沒有檢查產品的可用性。 如果@Quantity大於Quantity,則不會引發任何錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.