求教清空DataGridView及数据库表相关数据的问题
下面代码是清除按钮,之前已经在查找事件中把SQL查询结果放进DataGridView里了。现在全部删除(清除)后会提示这一句: this.d_report.Rows.RemoveAt(0);错误“无法删除未提交的新行”
但是其实数据已经被删除了,虽然可以用try catch屏蔽这个错误。不过解决根本问题。求教大家这个错误为什么出现,怎么解决呢?
--------------------编程问答-------------------- 大概是因为,每一次删除后,第一行就变了,所以才会,下一次要删除的是新提交的行。
DialogResult clear_up = MessageBox.Show("您真的要清除所有记录吗?",
"提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
switch (clear_up)
{
case DialogResult.Yes:
SqlCommandBuilder delete = new SqlCommandBuilder(find_do);
for (int i = d_report.Rows.Count; i > 0; i--)
{
this.d_report.Rows.RemoveAt(0);
find_do.Update(ds, "rs");
}
MessageBox.Show("号码已经全部删除!", "提示",
MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
break;
case DialogResult.No:
break;
}
要不然你试试,在循环外面定义一个row,每次删除后,把第一行赋给这个row,然后删除的时候用Remove(row),不用RemoveAt。 --------------------编程问答--------------------
好像应该是在count == 0 的时候出的问题
--------------------编程问答-------------------- 你是要把 dgv的数据 全部 清空 吗?
如果全部清空的话 可以这样
datatable dtClone = dgv.datasource as datatable;
dgv.datasource = dtClone --------------------编程问答-------------------- datatable dtClone = (dgv.datasource as datatable).Clone();
补充:.NET技术 , C#