【问题标题】:How to remove rows from a bound Datagridview如何从绑定的 Datagridview 中删除行
【发布时间】:2014-12-10 09:10:18
【问题描述】:

我有一个绑定的 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);
            }
        }

谁能解决这个问题??

提前谢谢..

【问题讨论】:

  • 如何绑定数据源?您需要清除数据源中的行或将 DataSource 设置为 null
  • 谢谢这是解决方案

标签: c# datagridview delete-row


【解决方案1】:
dataGridView2.DataSource = null;

【讨论】:

    【解决方案2】:

    当您使用 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);
    }
    

    【讨论】:

      【解决方案3】:

      你可以简单地做:

      dataGridView2.Items.Clear();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-04-28
        • 1970-01-01
        • 1970-01-01
        • 2020-10-30
        • 2010-12-08
        • 2023-03-16
        • 2019-10-13
        相关资源
        最近更新 更多