MySqlCommand参数不起作用

时间:2008-10-30 15:28:50

标签: .net mysql

在下面的代码中,用于获取特定行中的产品列表,该命令仅在我硬编码(连接)productLine到SQL时返回结果。参数替换永远不会发生。

            + "lineName = '@productLine' "                       
            + "and isVisible = 1 ";
        MySqlDataAdapter adap = new MySqlDataAdapter(sql, msc);
        adap.SelectCommand.Parameters.Add("@productLine", productLine);

4 个答案:

答案 0 :(得分:7)

        + "lineName = ?productLine "                       
        + "and isVisible = 1 ";
    MySqlDataAdapter adap = new MySqlDataAdapter(sql, msc);
    adap.SelectCommand.Parameters.Add("?productLine", productLine);
  1. 删除撇号(')。
  2. 将@更改为?,这是MySql查询中参数的前缀。

答案 1 :(得分:2)

删除撇号(拼写?)。 '围绕参数。不应该需要它们。

答案 2 :(得分:0)

像他说的那样

+ "lineName = '@productLine' " 

应该是

+ "lineName = @productLine " 

答案 3 :(得分:0)

这是正确的,它永远不会发生

  • “lineName ='@ productLine'”

  • “lineName = @productLine”而不是@productLine已经被声明为字符串类型,将秘密添加引号。然而,您实际上是传递字符串@productLine而不是变量值。