Удаление строки из sqlite3

Всем привет. Какой день бьюсь над написанием метода, который удаляет строку из sqlite3, данные которой находятся в dataGridView. Программа на Win Form.

Логика, если я правильно мыслю, такова: по клику на нужную строчку в dataGridView, я по идее должен в переменную записать id строки.

После этого выполнить запрос в базу на удаление:

string sql = "DELETE FROM Catalog WHERE id = @id";
            SQLiteCommand Command = new SQLiteCommand(sql, m_dbConn);
            Command.ExecuteNonQuery(); 

Никак не могу понять, как записать id выбранной мною строки из dataGridView в переменную. И есть ли какие-то особенности выделения в самом dataGridView? Можно выделить всю строку, а можно ячейку. Будет ли это считаться одним и тем же в данном случае? Пока смог изобразить такое:

int id_line = int.Parse(dataGridView.CurrentRow.Cells[0].Value.ToString());

Может есть уже у кого готовый пример метода? А то мозги кипят уже... Спасибо.


Ответы (1 шт):

Автор решения: mygedz

Нашел решение).

if (dataGridView.SelectedRows.Count > 0)
        {
            if (MessageBox.Show("Вы действительно хотите удалить запись? Это действие нельзя будет отменить", "Удаление записи", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
            {
                string id = dataGridView.SelectedRows[0].Cells[0].Value.ToString();
                SQLiteCommand cmd = new SQLiteCommand(@"DELETE FROM Catalog WHERE id = @id", m_dbConn);
                cmd.Parameters.AddWithValue("id", id);
                cmd.ExecuteNonQuery();
                MessageBox.Show("Запись была успешно удалена из базы данных", "Удаление записи", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

Чтоб выделялась вся строка, выставляем в свойствах dataGridView: SelectionMode в FullRowSelect;

→ Ссылка