DataGridView 清空时出现System.ArgumentException:“不能清除此列表。”
原因是DataGridView 绑定了数据源,如果说数据源不需要了,就把数据源取消即可。如下代码:
dataGridView4.DataSource = null;
如果需要数据源,就需要改变代码(以下代码及方式未验证过,来自CSDN 博主:qiuyu6958334)
DataGridView .datasource = ds.Tables["expert"];
解决办法如下: 删除这样的代码,采用 foreach 循环填入的方式,
DataSet ds = ExcelToDataSet(resultFile, out strMsg); DataTable dt = ds.Tables["expert"]; if (dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { Dgv_Expert.Rows.Add(false, dr["code"].ToString(), dr["name"].ToString(), dr["sex"].ToString(), dr["birthDay"].ToString(), dr["phone"].ToString(), dr["tel"].ToString(), dr["aid"].ToString(), dr["idcard"].ToString(), dr["company"].ToString(), dr["mid"].ToString(), dr["rid"].ToString(), dr["note"].ToString()); } }