在平台中调用网格部件.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

转载请注明出处:

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

 
时间: 2024-10-06 18:43:32

在平台中调用网格部件.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()这样的方法,那么会引发错误:已删除的上不

Why? 在C++中调用被C编译后的函数,要在声明的前面加extern &quot;C&quot;

在C++程序中调用被C编译器编译后的函数,为什么要在声明的前面加extern "C"? 答:c语言不支持重载,C++支持重载 为了告诉编译器这个函数是C的编译风格,所以在找这个函数的时候也要按照C的风格去找 比如:在C++中写一个add函数 int add(int n1,  int  n2) 它找到的是?[email protected]@[email protected] ?函数名@@YA参数参数返回值@Z H代表int  M代表float @@YA表示开始      @Z表示结束

虚拟化平台中对于linux系统克隆后无法使用网卡现象的处理

当我们在虚拟化平台中对各个linux服务器进行克隆后会出现网卡无法使用的情况,解决这一问题的方法: 红帽6.0删除/etc/udev/rules.d/70-persistent-net.rules,更改网卡配置文件/etc/sysconfig/network-scripts/ifcfg-eth0中的mac地址项 红帽5.5则是删除/et/udev/rules.d/60-pcmcia.rules,更改网卡配置文件中的MAC地址项.

idea中tomcat启动时报错

之前的项目是用MyEclipse 10 写的项目,之后转移到idea上去,各种配置都弄好后,部署好tomcat启动项目时报错: java.lang.UnsatisfiedLinkError: Can't load AMD 64-bit .dll on a IA 32-bit' platform   从错误信息中大致可以知道是跟计算机的32位和64位相关的问题,后面查阅资料之后知道是jdk和tomcat冲突了,应该是一个是32位一个是64位所以会显示这个错误 可是在cmd中输入java -vers

针对Android平台我们需要学习如何在Unity中调用Android的JAVA代码。

Unity for Android 比较特殊,Unity for IOS 打包是将XCODE工程直接交给开发者,开发者可以在工程的基础上继续添加新的视图,最后由开发者自行打包生成IPA包,发布程序.而Unity for Android打包直接生成APK包,等于说源代码开发者是看不到的,但是Unity的自身确实有些局限,针对Android平台我们需要学习如何在Unity中调用Android的JAVA代码.本章我们的目标是使用Unity的脚本打开Activity.首先我们创建一个普通的Android

eclipse编译生成APK如何可以调用平台中的系统函数

我们在使用eclipse开发三方的APK时,有时候可能会遇到这样的问题,有些功能需要调用平台中的系统函数.但是在将应用导出的平台中运行时,会出现权限问题报错,那么我们就需要使用如下的方法,给三方应用签名,使之能够调用平台的系统函数: 1.我们需要去平台系统源码中获取如下两个秘钥文件和签名工具的jar包 签名jar包:out/host/linux-x86/framework/signapk.jar 秘钥文件:build\target\product\security\platform.x509.p

linux平台学x86汇编(十六):在汇编语言中调用C库函数

[版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet,文章仅供学习交流,请勿用于商业用途] 其实在汇编语言中也是可以使用C库函数的,这一节我们来看一下如何在汇编语言中调用C库函数以使得我们的程序看上去很方便地和用户交互. C库包括C程序通用的喝多函数,如printf和exit等,下面我们紧接着上一节的知识来实现一个两整数想加的计算并输出计算结果的程序. # libc.s .section .data output: .asciz "The result is %d.

平台中配置网格列表样式报:ORA-01461错误

今天有客户反映,在创建表单工作流程,配置网格列表样式时,报ORA-01461:仅能绑定要插入LONG列的LONG值错误:错图截图如下: 在网上查询了下错误原因为:数据库表中有字段长度超过4000:但是通过排查发现表中没有长度超过4000的字段,那又是什么原因导致报这个错误呢? 个人估计为创建的表字段太多造成(该表一共创建了380多个字段),果然在删除一部分字段后,再配置网格列表样式时就不会报错 在此建议在创建数据库表字段时,尽可能的不要超过254个字段 原文地址:http://bbs.delit

Struts2中使用execAndWait后,在 Action中调用getXXX()方法报告java.lang.NullPointerException异常的原因和解决方法

使用 Struts2 编写页面,遇到一个要长时间运行的接口,因此增加了一个execAndWait ,结果在 Action 中调用 getContext()的时候报告异常 1 ActionContext context = ActionContext.getContext(); 2 ServletContext servletContext = (ServletContext) context.get(ServletActionContext.SERVLET_CONTEXT); //抛空指针异常