以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于DataRowDeleted的错误  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=140021)

--  作者:2327153574
--  发布时间:2019/8/27 18:05:00
--  关于DataRowDeleted的错误

我在租金实缴明细表的DataRowDeleted事件中加入以下代码:


\'当我们在实缴明细表输入实缴金额时,应缴明细表/合同信息表的数据会自动更新
If e.DataRow.IsNull("实缴金额") = False AndAlso e.DataRow.IsNull("缴费号") = False Then
    Dim pr1 As DataRow = DataTables("租金应缴明细表").find("缴费号 = \'" & e.DataRow("缴费号") & "\'") \'找出对应的父行    
    DataTables("租金应缴明细表").DataCols("实缴金额").RaiseDataColChanged(pr1)
    DataTables("租金应缴明细表").DataCols("欠缴金额").RaiseDataColChanged(pr1)    
End If

 

但是在删除行时,出现以下错误:

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2019.7.8.1
错误所在事件:表,租金实缴明细表,DataRowDeleted
详细错误信息:
调用的目标发生了异常。
此行已从表中移除并且没有任何数据。BeginEdit() 将允许在此行中创建新数据

请问是什么原因?



--  作者:有点蓝
--  发布时间:2019/8/27 20:13:00
--  
去掉判断

    Dim pr1 As DataRow = DataTables("租金应缴明细表").find("缴费号 = \'" & e.DataRow("缴费号") & "\'") \'找出对应的父行    
    DataTables("租金应缴明细表").DataCols("实缴金额").RaiseDataColChanged(pr1)
    DataTables("租金应缴明细表").DataCols("欠缴金额").RaiseDataColChanged(pr1)   

--  作者:2327153574
--  发布时间:2019/8/28 8:21:00
--  
去掉判断还是报同样的错误,检查了一下,发现对于新增的行,如果缴费号没有,直接删除就会出错,如果缴费号有,就不会出错,不管加不加判断都会出同样的错误



--  作者:有点蓝
--  发布时间:2019/8/28 8:42:00
--  
Dim pr1 As DataRow = DataTables("租金应缴明细表").find("缴费号 = \'" & e.DataRow("缴费号") & "\'") \'找出对应的父行    
if pr1 isnot nohing then
    DataTables("租金应缴明细表").DataCols("实缴金额").RaiseDataColChanged(pr1)
    DataTables("租金应缴明细表").DataCols("欠缴金额").RaiseDataColChanged(pr1)   
end if

--  作者:2327153574
--  发布时间:2019/8/28 8:47:00
--  
我试过的,还是一样报错
[此贴子已经被作者于2019/8/28 8:55:36编辑过]

--  作者:有点蓝
--  发布时间:2019/8/28 9:39:00
--  
上传实例说明