【问题标题】:MySqlCommand Parameter not WorkingMySqlCommand 参数不起作用
【发布时间】:2010-09-20 00:27:43
【问题描述】:

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

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

【问题讨论】:

    标签: .net mysql


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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 如果它们的值是字符串。
      • 不得不标记备份,因为实际上海报是正确的,而 Stevenson-Leggett 先生是错误的
      • 这是关于参数的重要一点。您不必担心封装字符串或格式化日期等等。
      【解决方案3】:

      就像他说的

      + "lineName = '@productLine' " 
      

      应该是

      + "lineName = @productLine " 
      

      【讨论】:

        【解决方案4】:

        没错,你从来没有遇到过

        • "lineName = '@productLine'"

        试试

        • "lineName = @productLine" 代替 @productLine 将被声明为字符串类型,引号将被秘密添加。但是,您实际上传递的是字符串 @productLine 而不是变量值。

        【讨论】:

          猜你喜欢
          • 2014-07-04
          • 2016-11-30
          • 2011-09-17
          • 1970-01-01
          • 1970-01-01
          • 2013-12-19
          • 2012-11-18
          • 2019-07-06
          • 1970-01-01
          相关资源
          最近更新 更多