Я связал свою базу данных с моей формой окна, я поместил значения столбца таблицы базы данных в список, и я хочу сделать следующее: когда я выбираю элемент из списка, другой столбец таблицы появится в другом текстовом поле. Чтобы быть более конкретным, имена напитков появляются в списке (эспрессо, вода и т. Д.), И я хочу, чтобы их цена отображалась в текстовом поле, когда они выбраны из списка. Я использовал следующий код, чтобы сделать это:Как решить эту «ошибку в синтаксисе SQL»
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string constring = "datasource=localhost;port=3306;username=root;password=root;";
string Query = "select * from apps.drinks where drink_name is ='" + listBox1.Text + "'; ";
MySqlConnection conDatabase = new MySqlConnection(constring);
MySqlCommand cmdDatabase = new MySqlCommand(Query, conDatabase);
MySqlDataReader myReader;
conDatabase.Open();
myReader = cmdDatabase.ExecuteReader();
while (myReader.Read())
{
string dprice = myReader.GetString("drink_price");
pricebox.Text = dprice;
}
}
После того как я отладка моего проекта, он успешно показывает пункты в ListBox, но когда я выбираю их я получаю эту ошибку «Вы имеете ошибку в вашем синтаксисе SQL; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса для использования вблизи «=» Эспрессо «» в строке 1"
код из базы данных выглядит следующим образом:
DROP TABLE IF EXISTS `apps`.`drinks`;
CREATE TABLE `apps`.`drinks` (
`drink_name` varchar(45) NOT NULL,
`drink_price` varchar(45) NOT NULL,
PRIMARY KEY (`drink_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into apps.drinks (drink_name,drink_price)
values ('Nes','1'),('Espresso','1'), (...)
Пожалуйста, вы можете помочь меня??
параметризуйте свой запрос, в противном случае вы запрашиваете [it] (https://www.owasp.org/index.php/SQL_Injection) – GolfWolf