C# 从数据库中的单元格中减去文本框
我有一个将产品添加到发票的按钮,我希望它也将产品从数据库中删除,如何编辑此查询,使其从数据库中删除 我想我的错误是因为我转换数量的方式。Text,有人能帮我解决吗C# 从数据库中的单元格中减去文本框,c#,C#,我有一个将产品添加到发票的按钮,我希望它也将产品从数据库中删除,如何编辑此查询,使其从数据库中删除 我想我的错误是因为我转换数量的方式。Text,有人能帮我解决吗 SqlCommand inventorycontrol = new SqlCommand("Update Product SET quantityAvailable=quantityAvailabe - '" + Convert.ToInt32(cmbQuantity.Text) + "' WHERE productName='" +
SqlCommand inventorycontrol = new SqlCommand("Update Product SET quantityAvailable=quantityAvailabe - '" + Convert.ToInt32(cmbQuantity.Text) + "' WHERE productName='" + cmbProdName.Text + "'", con);
如果没有错误消息,很难猜测 但乍一看,这里有一个输入错误:
quantityAvailable=quantityAvailable-
应该是quantityAvailable=quantityAvailab**l**e-
此外,您不能引用整数部分,因此“+quantityToRemove+”
变为“+quantityToRemove+”
。但最好是使用参数化,这将简化您的代码。看
尝试将对UI的访问与构建SQL分开:
int quantityToRemove = Convert.ToInt32(cmbQuantity.Text);
string productName = cmbProdName.Text;
string sqlUpdate = @"UPDATE Product
SET quantityAvailable = quantityAvailable - @quantityToRemove
WHERE productName= @productName";
SqlCommand inventorycontrol = new SqlCommand(sqlUpdate, con);
inventorycontrol .Parameters.AddWithValue("quantityToRemove", quantityToRemove);
inventorycontrol .Parameters.AddWithValue("productName", productName);
在这个问题中,您没有指定错误,但代码中可能会出现错误。我会向你澄清的
cmbQuantity.Text
转换为int时,您不需要传递双引号内的整数:-如果数量无效,我建议的答案将通过显示错误消息来帮助您处理此错误 int quantity;
if (int.TryParse(cmbQuantity.Text, out quantity))
{
SqlCommand inventorycontrol = new SqlCommand("Update Product SET quantityAvailable=quantityAvailabe - @Quantity WHERE productName=@prodName", con);
inventorycontrol.Parameters.AddWithValue("@Quantity",quantity);
inventorycontrol.Parameters.AddWithValue("@prodName", cmbProdName.Text);
//Execue command here
}
else
{
// show message invalid quantity
}
这个代码有什么问题?例外?没有更新?什么平台,你的桌子是什么布局?如何以及何时执行此命令?哦,天哪,SQL注入。我假设cmbProdName是一个文本框。现在我将擦除数据库:
1'--删除表产品代码>始终清理您的输入!为什么不int.TryParse()
我只是剪切并粘贴给定的代码。使用参数化查询是这段代码中的首要问题。在输入端处理错误案例之后,我认为OP需要一次一个建议:)非常感谢:)它是有效的,我同意这段代码离使用还有很长的路要走,但我刚刚开始使用c#,所以我没有研究注入之类的问题,也感谢反馈,我真的很困惑。OP的查询、SQL注入、问题编校、此答案和问题标题与^*任何东西*有什么关系?“从数据库中的单元格中减去一个文本框”,“我有一个按钮可以将产品添加到发票中,我希望它也可以从数据库中删除产品”,然后我们有一个看起来像库存移动的查询:-Owell基本上表单将产品添加到发票中,我使该部分正常工作,但它需要在添加到发票中后立即从库存中减去产品,此查询有助于做到这一点。我认为您希望将Convert.ToInt32()
替换为数量
。