最近做的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";)的效果是一樣的。