如何使用C#清除DataGridView中的行?

此行中出现以下错误。

datagridview1.Rows.Clear() 

但这一行给出了错误:

无法清除此列表。

当我在将数据绑定到DataTable之后尝试清除DataGrid的DataSource时,我也遇到了类似的问题:

 DataTable DT = ... ; // fill it datagridview1.DataSource = DT; 

当我尝试使用以下代码稍后清除它的行时:

 datagridview1.DataSource = null 

我收到此错误:

 ERROR: Object reference not set to an instance of an object 

此对象引用ERROR问题已在此处解决。 但我设法用这段代码解决了我自己的问题(清除DataGridView行):

 DataTable DT = (DataTable)datagridview1.DataSource; if (DT != null) DT.Clear(); 

我知道很久以前就问过这个问题,但我希望我的解决方案可以解决某些问题。

 private void button_Limpar_Click(object sender, EventArgs e) { DataTable DT = (DataTable)dataGridView_Cidade.DataSource; if (DT != null) DT.Clear(); } #endregion 

你的DataGridView是否绑定到DataSource ,我认为这就是为什么它不允许你清除它,因为它绑定到底层的DataTableList

您可以尝试将DataSource属性设置为null

datagridview1.DataSource = null; 清除

您必须清除数据源而不是datagridview行。

 datagridview1.DataSource = null; 

另一种方式是

1)不要将直接数据源分配给gridview。 从datatable添加行到gridview

  foreach (DataRow row in dataTable.Rows) { var dataGridRow = new DataGridViewRow(); dataGridRow.CreateCells(datagridview1); for (int i = 0; i < row.ItemArray.Length; i++) { dataGridRow.Cells[i].Value = row.ItemArray[i]; } datagridview1.Rows.Add(dataGridRow); } 

然后用

 datagridview1.Rows.Clear() 

只需在活动开始时添加此行:

 dgv_nameOfGridView.DataSource=false; 

现在每次点击它都会删除dgv ..

你可以使用这个简单的方法:

首先清除DataTable,然后刷新DataGridView

 dataTable.Clear(); dataGridView.Refresh(); 

希望这有帮助

简单的解决方案是清除DataSet。 ds.Clear();

由于您使用的是绑定网格,您是否尝试过两次调用加载函数并validation数据是否加倍?

由于它是绑定的,加载两次不应该重复数据。

http://www.vbforums.com/showpost.php?s=aa5f116586c00a2d9ea15e3727fc5c2f&p=2841192&postcount=9

首先清除DataSource然后清除DataGridView

在VB中

  datagridview1.DataSource = Nothing datagridview1.Rows.Clear() 

希望有所帮助

如果使用参数加载DataGridView,则可以向其发送空参数。 这将清除您的DataGridView,而不必将其DataSet设置为null。

例如,当我填充TextBox时,我用代码加载我的DataGridView。

 this.dataTable1TableAdapter.Fill(this.ds_MyDataSet.DataTable1, TextBox1.Text); 

如果我想清除它的内容,那么

 this.dataTable1TableAdapter.Fill(this.ds_MyDataSet.DataTable1, ""); 

我遇到了与许多解决方案一样的问题。

最后,我意识到如果我们使用它的属性“DGV.Datasource”我们无法清除DataGridView,因为DGV从数据集中获取数据,因此您需要清除DataTable行

 Dataset.Tables["TableName"].Rows.Clear(); 

如果在表单的加载中使用此function,则需要添加条件

 if (DataSet.Tables["TableName"] !=null) Dataset.Tables["TableName"].Rows.Clear(); 

或者你会得到这个错误

你调用的对象是空的。