http://bailingewei.blog.163.com/blog/static/51277413201092242941797/
最近做的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的效果是一样的。