如何删除表单加载上的所有DataGridView行?

use*_*757 8 .net c# datagridview winforms

如何删除除列标题以外的所有datagridview行?

我试过了:

dataGridView1.Rows.clear();
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

我试图循环遍历行并使用该RemoveAt方法,但它不会删除所有行:

private void Form5_Load(object sender, EventArgs e)
{       
    dataGridView1.AutoGenerateColumns = true;
    SqlConnection con = new SqlConnection(@"Data Source=.\myserver;Initial Catalog=test;Integrated Security=True");
    adapter = new SqlDataAdapter("SELECT id as [#], description as [Description], unit as [Unit], amount as [Amount], unitPrice as [Unit Price], total as [Total] FROM tbl_poMaterials", con);
    adapter.SelectCommand.CommandType = CommandType.Text;
    DataTable tb = new DataTable();
    adapter.Fill(tb);
    SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
    dataGridView1.DataSource = tb;

    dataGridView1.Columns[0].Width = 30;
    dataGridView1.Columns[0].ReadOnly = true;
    dataGridView1.Columns[1].Width = 660;

    for (int i = 0; i < tb.Rows.Count; i++)
    {
        tb.Rows.RemoveAt(i);
    }
}
Run Code Online (Sandbox Code Playgroud)

小智 13

This worked for me:

do
{
   foreach (DataGridViewRow row in dataGridViewError.Rows)
   {
      try
      {
        dataGridViewError.Rows.Remove(row);
      }
      catch (Exception) { }
   }
} while (dataGridViewError.Rows.Count > 1);
Run Code Online (Sandbox Code Playgroud)


Ari*_*Ari 9

您需要清除DataSource或DataTable,而不是datagridview.

dataGridView.DataSource = null;
dataGridView.Refresh();
Run Code Online (Sandbox Code Playgroud)

要么

dataTable.Clear();
dataGridView.Refresh();
Run Code Online (Sandbox Code Playgroud)


Ste*_*oM5 8

我用

dataGridViewResult.Rows.Clear();
Run Code Online (Sandbox Code Playgroud)

清除每一行而不删除列.

  • 这对我有用,我的datagridview是手动填充的,没有datatable或其他源 (2认同)

ale*_*oot 3

如果您的网格绑定到 DataTable 或其他一些数据源,那么您需要清除它,而不是网格,否则 Rows.clear() 方法是正确且最好的方法。