wpf System.Data.SqlClient.SqlException:'TextBox:'附近的语法不正确[已关闭]

hsvhsicv  于 2023-05-08  发布在  其他
关注(0)|答案(1)|浏览(197)

**关闭。**这个问题是not reproducible or was caused by typos。目前不接受答复。

此问题是由打印错误或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这一个是解决的方式不太可能帮助未来的读者。
2小时前关闭
Improve this question
System.Data.SqlClient.SqlException:'TextBox:'附近的语法不正确。
已声明标签“TextBox”。标签名称在查询批处理或存储过程中必须唯一。'
出现此错误。我试着修复它很多次,但找不到我犯了什么错误。
代码:

private void add_Click(object sender, RoutedEventArgs e)
{
    Connect.con.Open();
    String add_query = "INSERT INTO Products(ProductName,Price,Quantity) VALUES ('" + productxt + "'," + pricetxt + "," + quanttxt + ")";

    SqlCommand cmd = new SqlCommand(add_query, Connect.con);
    cmd.ExecuteNonQuery();

    int rowsAffected = cmd.ExecuteNonQuery();

    if (rowsAffected > 0)
    {
        MessageBox.Show("Product added");
    }
    else
    {
        MessageBox.Show("Failed to add product");
    }
}

它应该向DataTable添加数据。

8ulbf1ek

8ulbf1ek1#

productxtpricetxtquanttxt很可能是TextBox * 控件 * 的名称,而不是字符串值。
首先,您需要使用Text属性来获取字符串形式的文本。尝试打印整个TextBox对象将打印类型的名称,这不是您要查找的。
其次,不要使用字符串连接来创建SQL查询。最好的情况下,这会导致此错误,最坏的情况下,会导致SQL注入。Learn more
第三,你运行了两次ExecuteNonQuery()。你应该只运行一次。

String add_query = "INSERT INTO Products(ProductName,Price,Quantity) VALUES (@ProductName, @Price, @Quantity)";
SqlCommand cmd = new SqlCommand(add_query, Connect.con);
cmd.Parameters.Add("ProductName", DbType.NVarChar).Value = productxt.Text;
cmd.Parameters.Add("Price", DbType.NVarChar).Value = pricetxt.Text;
cmd.Parameters.Add("Quantity", DbType.NVarChar).Value = quanttxt.Text;
int rowsAffected = cmd.ExecuteNonQuery();

调整参数DBType以匹配您的列,并包括精度。

相关问题