Удаление строки из 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 шт):
Нашел решение).
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;