SQL语法错误(在Windows形式下,c#)
本文关键字:Windows 语法 错误 SQL | 更新日期: 2023-09-27 18:05:42
我想插入一些数据到我的表中这就是我想要做的
INSERT INTO OrdersDetail
Values (" + OrderId.Text + ", (SELECT IdProduct FROM Products WHERE ProductName = '" + listBox1.Text + "'), '" + TypeOfProductComboBox.Text + "', '" + OrderQuantity.TextAlign + "', '" + TotalCost.Text + "'");
和我得到错误,我认为我的语法是错误的,我使用查询查询中获取产品id。
列为:
OrderId (int)
ProductId(int)
ProductName(Nvarchar)
OrderQuantity(Nvarchar)
TotalCost(NvarChar)
谢谢
您将内部SELECT
设置在'
下。应该是:
var query = "INSERT INTO OrdersDetail Values (" + OrderId.Text + ", (SELECT IdProduct FROM Products WHERE ProductName = '"+ listBox1.Text + "'), '" + TypeOfProductComboBox.Text + "', '" + OrderQuantity.TextAlign + "', '" + TotalCost.Text + "')");
如果TotalCost.Text
是SQL中的数字数据类型,则使用
"..." + OrderQuantity.TextAlign + "', " + Convert.ToDouble(TotalCost.Text) + ")";
如p.s.w.g所述:这是对SQL注入开放的。用参数化的版本替换它!
我认为问题在于第一行和您的内部Select
。
应该可以
INSERT INTO OrdersDetail
Values ('" + OrderId.Text + "',(SELECT IdProduct FROM Products WHERE ProductName ='"+ listBox1.Text + "')," + TypeOfProductComboBox.Text + "','" + OrderQuantity.TextAlign + "','" + TotalCost.Text + "'");
问题是您缺少最后一个括号,查询应该以"')"
而不是"'"
完成。初始代码以左括号开始,这就是为什么你没有得到编译错误。