代码脚本:
For each dr in 网格部件1.DataTable.Rows If isnull(dr["数量"]) then ShowInformation("数量不能为空") end end if next |
如上图所示这样的循环判断,如果在对网格部件1的数据进行过删除操作,也就是调用过:网格部件.DeleteFocusedRow()这样的方法,那么就会引发错误提示:不能通过已删除的上不能访问改行的信息。
分析原因:
删除时调用了DeleteFocusedRow()方法,数据已被标记成Deleted(Deleted=8)。
该行已通过 System.Data.DataRow 的 System.Data.DataRow.Delete() 方法被删除。
Deleted =8
解决办法:
循环里添加判断,判断该行是否被删除,在进行访问该行的数据:
For eachdr in网格部件1.DataTable.Rows
if dr.RowState<>8 then
if isnull(dr["人员ID"]) then
ShowInformation("请选择所有关系类型的关系人,不需要的可以右键删除。")
end
end if
end if
next
说明:判断dr的RowState属性可以判断当前访问行是否被标记为删除。