作者:不会做饭的我 | 来源:互联网 | 2023-09-08 20:12
今天在做删除操作的时候发现一个以前还没遇到的错误,就是循环访问DataTable,报错:不能通过已删除的行访问该行的信息。
看图:
代码删除是:gridView1.DeleteSelectedRows();
DataTable dt=gridControl1.DataSource as DataTable
foreach(DataRow dr in dt.Rows)
{
string id=dr["ID"].ToString();
}
以上代码会报错,不能通过已删除的行访问该行的信息。如下图:
会发现你的DataTable里有一行带红色感叹号的空行,所以循环访问的时候提示:不能通过已删除的行访问该行的信息。
解决办法:
DataTable dt=gridControl1.DataSource as DataTable
foreach(DataRow dr in dt.Rows)
{
if (dr.RowState == DataRowState.Deleted) //跳过删除状态的行
continue;
string id=dr["ID"].ToString();
}
加上 下面代码就可以了。 if (dr.RowState == DataRowState.Deleted) //跳过删除状态的行
continue;