MySqlCommand Параметр не работает
В следующем коде, используемом для получения списка продуктов в определенной строке, команда возвращает результаты только при жестком коде (конкатенация) productLine
в SQL. Подстановка параметров никогда не происходит.
+ "lineName = '@productLine' "
+ "and isVisible = 1 ";
MySqlDataAdapter adap = new MySqlDataAdapter(sql, msc);
adap.SelectCommand.Parameters.Add("@productLine", productLine);
4 ответа
Решение
+ "lineName = ?productLine "
+ "and isVisible = 1 ";
MySqlDataAdapter adap = new MySqlDataAdapter(sql, msc);
adap.SelectCommand.Parameters.Add("?productLine", productLine);
- Уберите апострофы (').
- Замените @ на?, Который является префиксом параметров в запросах MySql.
Удалить апострофы (правописание?). Вокруг параметра. Они не должны быть необходимы.
Это правильно, это никогда не случается у вас
- "lineName = '@productLine' "
пытаться
- "lineName = @productLine " вместо этого, поскольку @productLine уже будет объявлен как строковый тип, кавычки будут добавлены тайно. Однако вы фактически передаете строку @productLine, а не значение переменной.
Как он сказал
+ "lineName = '@productLine' "
должно быть
+ "lineName = @productLine "