Reputation: 41
How can I delete a selected row on keyboard delete key press ( remove from dataGridView and delete from the database ) ?
here how I populate the dataGridView :
private void GetDate()
{
SqlDataAdapter adapter = new SqlDataAdapter("SELECT id as [ID],description as [Description],unit as [Unit], qty as [Quantity],unitRate as [Unit Rate], amount as [Amount], _datetime as [Date] FROM tbl_BOQ WHERE projectId = "+id, conn);
adapter.SelectCommand.CommandType = CommandType.Text;
DataTable table = new DataTable();
table.Clear();
adapter.Fill(table);
dataGridView1.DataSource = table;
}
Upvotes: 4
Views: 20403
Reputation: 15299
I use the DataGridView's KeyDown event, and in the handler determine if it was the Delete key that was pressed:
if e.KeyCode == Keys.Delete...
Then find which item/row to delete by getting the SelectedRows property if your DataGridView is on FullRowSelect or RowHeaderSelect mode, else you can determine the row with something like this:
i = SelectedCells[0].RowIndex
then:
DataGridView.Rows[i].DataBoundItem
You would then simply need to delete the corresponding record from the database, and possibly refresh the DataGridView depening on how its tied in...
Upvotes: 9
Reputation: 4249
Have you tried using the KeyPress event of the DataGridView?
Then you could use the SelectedRows property of your DataGridView.
Upvotes: 2