如何从绑定的Datagridview中删除行

时间:2014-12-10 09:10:18

标签: c# datagridview delete-row

我有一个绑定的datagridview,我希望通过单击一个按钮删除所有行(不是从数据库只是从datagridview添加新行),我尝试了两个不同的代码,但它只删除了一半的行,例如,如果我有10只删除5。 这是我尝试的第一个代码:

for (int i = 0; i < dataGridView2.Rows.Count - 1 ; i++)
        {
            dataGridView2.Rows.RemoveAt(i);
        }

这是第二个:

foreach(DataGridViewRow r in dataGridView2.Rows)   
        {
            if (!r.IsNewRow)
            {
                dataGridView2.Rows.Remove(r);
            }
        }

任何人都可以解决这个问题吗?

提前致谢..

3 个答案:

答案 0 :(得分:1)

使用 RemoveAt 从集合中删除项目时,后续项目的索引会下降一个,这就是为什么要跳过for int 循环。所以你不应该增加i,或者你应该向后浏览列表。

不递增:

while (dataGridView2.Rows.Count > 0)
{
    dataGridView2.Rows.RemoveAt(0);
}

倒退:

for (int i = dataGridView2.Rows.Count - 1; i >= 0; --i)
{
    dataGridView2.Rows.RemoveAt(i);
}

答案 1 :(得分:1)

dataGridView2.DataSource = null;

答案 2 :(得分:0)

你可以做到:

dataGridView2.Items.Clear();