datagridview清空数据

最近做的winform程序使用了DataGridView,在清除DataGridview的数据时遇到个问题。我想要清空DataGridview的数据,用了DataGridview.Rows.Clear(),这时就出错了,提示“不能清除此列表”。以前也遇到过,那时的解决办法就是重新绑定数据,也没细为什么不能Rows.Clear()。
       于是搜索了下,用数据源绑定的DataGridView不能用Rows.Clear()清除,手动添加的是能够用clear()的。所以将datasource设置为null就可以清空数据,但是这不是我要的效果,这样会将DataGridView的列也删掉。想要保持原有的列用如下代码就可以了,就是重新绑定一个没有数据的datatable。

 

DataTable dt = (DataTable)dgvData.DataSource;
           dt.Rows.Clear();
           dgvData.DataSource = dt;

 

如果用DataGridview.Rows.Clear()也能清空数据,和设置datasource为NULL(this.datagridview.datasoucre="null";)的效果是一样的。

 

ds.Tables["dtCustomerInfo"].Rows.Clear();//清空数据
this.DataGridView.DataSource = ds.Tables["dtCustomerInfo"];//清空数据后依然保持DataTable结构模式,所以不会改变。

 

 

 

 

你可能感兴趣的:(ASP.NET)