[英]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.