今天在做删除操作的时候发现一个以前还没遇到的错误,就是循环访问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;