How to remove rows from DataGridView?

samj28 picture samj28 · Jun 29, 2012 · Viewed 73.1k times · Source

I have a winform with preloaded DataGridView over it...I want to remove rows from datagridview on selecting or highlighting the rows and clicking over the button...

Also want to clear all the columns....

Currently i used

foreach (DataGridViewRow dgvr in dataGridView2.Rows)
{
    if (dgvr.Selected == true)
    {
        dataGridView2.Rows.Remove(dgvr);
    }
}

but it is throwing an exception that "rows or not commited" or something....it would be appreciable if any one have any better suggestions....

Answer

Adam picture Adam · Jul 1, 2012

If you have AllowUserToAddRows enabled on your DataGridView then you might be accidently deleting the empty row at the bottom of the DataView which is a placeholder for the next user created row. Try disabling this option if not required, otherwise try using code like this:

foreach (DataGridViewRow row in dataGridView1.SelectedRows)
{
    if(!row.IsNewRow)
       dataGridView1.Rows.Remove(row);
}