Кнопка удалить выдаёт ошибку, в чем может быт проблема C# mysql
private void Button2_Click(object sender, EventArgs e) {
DataTable data = Class1.select(@" DELETE FROM rabotnik WHERE name=" + dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[0].Value.ToString());
data = Class1.select(@"SELECT * FROM rabotnik");
dataGridView1.DataSource = data;
// ...
name и rabotnik, указаны правильно, в чем может быть проблема
Ответы (1 шт):
Автор решения: Михаил Ребров
→ Ссылка
В ошибке сказано, что MySQL не знает такой колонки: Aleksandr
Почему он мог так решить, ведь такую колонку в коде вы нигде не указываете?
Давайте внимательнее посмотрим на эту часть кода:
"DELETE FROM rabotnik WHERE name=" + dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[0].Value.ToString();
И скорее всего Вы выбрали в гриде запись Aleksandr
И составили следующий запрос:
DELETE FROM rabotnik WHERE name = Aleksandr;
Но вы забыли обернуть имя в кавычки, как строковый литерал.
В итоге MySQL пытается найти все записи где колонка name равна колонке Aleksandr, чтобы удалить их.
Не находит такую колонку, о чем и сообщает вам в ошибке
Решение:
Просто оберните имя в кавычки
String name = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[0].Value.ToString();
String sql = String.Format("DELETE FROM rabotnik WHERE name='{0}'", name);

