调用网格部件.DeleteFocusedRow()循环访问.DataTabel时报错

‘访问DataTable时提示:已删除行不能访问for each dr in 网格部件1.DataTable.Rows   
    if isnull(dr["ID"]) then
        ShowInformation("ID不能为空")
        end
    end if   
next

如上图所示这样的循环判断,如果在对网格部件1的数据进行过删除操作,也就是调用过:网格部件.DeleteFocusedRow()这样的方法,那么会引发错误:已删除的上不能访问
解决办法,添加判断,判断该行是否被删除,在进行访问该行的数据:
for each dr in 任务关系人.DataTable.Rows
    if dr.RowState<>8  then
        if isnull(dr["人员ID"]) then
            ShowInformation("请选择所有关系类型的关系人,不需要的可以右键删除。")
            end
        end if
    end if
next

判断dr的RowState属性可以判断。
RowState属性注解:
        //     该行已被创建,但不属于任何 System.Data.DataRowCollection。System.Data.DataRow 在以下情况下立即处于此状态:创建之后添    加到集合中之前;或从集合中移除之后。
        Detached = 1,

//     该行自上次调用 System.Data.DataRow.AcceptChanges() 以来尚未更改。
        Unchanged = 2,

//     该行已添加到 System.Data.DataRowCollection 中,System.Data.DataRow.AcceptChanges() 尚未调用。
        Added = 4,

//     该行已通过 System.Data.DataRow 的 System.Data.DataRow.Delete() 方法被删除。
        Deleted = 8,

//     该行已被修改,System.Data.DataRow.AcceptChanges() 尚未调用。
        Modified = 16,

原文地址:http://bbs.delit.cn/thread-654-1-1.html

转载请注明出处;

撰写人:度量科技http://www.delit.cn

时间: 2024-08-07 07:05:30

调用网格部件.DeleteFocusedRow()循环访问.DataTabel时报错的相关文章

在平台中调用网格部件.DeleteFocusedRow()后在循环访问网格部件.DataTabel时报错

'访问DataTable时提示:已删除行不能访问for each dr in 网格部件1.DataTable.Rows       if isnull(dr["ID"]) then        ShowInformation("ID不能为空")        end    end if   next 如上图所示这样的循环判断,如果在对网格部件1的数据进行过删除操作,也就是调用过:网格部件.DeleteFocusedRow()这样的方法,那么会引发错误:已删除的上不

Sass for循环中编译%时报错解决方案

sass功能强大,特别是支持for循环,节省大量开发时间,但是在开发时遇到一个问题,直接使用%时没有问题,当有变量时再加% 单位在编译时报错: 这样没有问题: @for $width from 0 to 10{ .wp#{$width}{ width:$width px; } } 但是这样就有问题了: @for $width from 0 to 10{ .wp#{$width}{ width:$width%; } } 或者这样: @for $width from 0 to 10{ .wp#{$w

网站访问游览时报错(一)

1.如果遇到网站访问时报错,首先看下asp.net state service是否开启,默认系统装好是手动开启的,改为自动启动.如下图遇到的报错就是通过这个方式解决.

访问项目时报错org.apache.jasper.JasperException: java.lang.NullPointerException

错误信息:org.apache.jasper.JasperException: java.lang.NullPointerException 原因:项目依赖的jar包和tomcat容器的依赖jar包有重复,一般为servlet-api.jar.jsp-api.jar 解决方式: 如果是非maven项目,在/WEB-INF/lib中找出servlet-api.jar.jsp-api.jar删除 如果是maven项目就把pom.xml中的servlet依赖注释掉 如下: <!-- 添加servlet

python 访问网站时报错:requests.exceptions.SSLError: HTTPSConnectionPool

解决该错误的正确姿势是更新pyOpenSSL库.输入命令: 1 pip install pyopenssl 参见: https://github.com/requests/requests/issues/4246 原文地址:https://www.cnblogs.com/mcgill0217/p/10357003.html

网格部件和树型部件查找并定位焦点

在网格和树型部件中,经常遇到需要根据某字段值或关键值查找网格或树型中的某一行数据并定位焦点,如何实现这样的功能呢?1.网格部件查找定位:在网格部件中,我们可以根据显示数据的行数,进行循环,获取值与查找值进行对比,代码如下: for i=1 to 网格部件1.GridView.RowCount      if cstr(网格部件1.GetFieldValueByRowHandle(i-1,"姓名"))="张三" then        网格部件1.FocusedRow

度量快速开发平台:网格部件批量更新数据

在快速开发平台中,如何批量更新网格部件数据?今天给大家介绍平台下的2种方法: 方法一: 利用快速开发平台自身的智能向导,快速构建数据的批量更新功能. 批量更新数据函数:SetColumnValue(stringfiledName,objectvalue,intscope) 作用 获取焦点行的字段的值. 参数 参数一:fieldName      string类型,字段名称. 参数二:value     object类型,更新的值. 参数三:scope     int类型,更新的范围.     更

度量快速开发平台网格部件批量删除

我们在构建项目的时候,往往需要构建删除数据的功能,一般来说都是一条数据一条数据的删除,但是有些时候我们可能需要批量删除无用的数据这时候该怎么实现呢?首先我们将网格部件中的显示标识列属性勾选上,如下图所示: 然后在功能管理中构建一个批量删除的功能,如下图所示: 上图中的代码调用了网格部件中的获取标识行方法: 原文地址:http://bbs.delit.cn/thread-697-1-1.html 转载请注明出处; 撰写人:度量科技www.delit.cn

网格部件判断字段不能为空

在最近的开发中,发现上一次发的网格部件判断字段不能为空的代码,还存在不足:如果在保存前将网格中某条数据用下面代码删除: if showquestion("确定要删除焦点行吗?") then         采购计划打分详细.DeleteFocusedRow() end if 那么在执行上一贴中代码时,就会报错. 改进示例: '提交单元和数据到行采购计划打分详细.PostEditor()'提交行数据到DataTable采购计划打分详细.GridView.UpdateCurrentRow(