Кнопка удалить выдаёт ошибку, в чем может быт проблема 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);
→ Ссылка