以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 删除时代码报错,帮忙看一下 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=171743) |
-- 作者:夜点蚊香 -- 发布时间:2021/9/8 11:31:00 -- 删除时代码报错,帮忙看一下 教师签到表的DataRowDeleted 事件中有这样一个删除后重新统计的代码 签到表和教师签到表 是关联表关系 签到表.教师签到表 Dim pr As DataRow pr = DataTables("签到表").Find("签到表编号 = \'" & e.DataRow("签到表编号") & "\'") If pr IsNot Nothing Then pr("教师人数") = e.DataTable.compute("count(签到表编号)","签到表编号 = \'" & e.DataRow("签到表编号") & "\' and 教师工号 <> \'\'") pr.Save End If 问题。在新建行,然后还没有保存的时候,撤销并删除行的时候会报错。 报错代码如下 .NET Framework 版本:4.0.30319.42000 Foxtable 版本:2021.5.12.1 错误所在事件:表,教师签到表,DataRowDeleted 详细错误信息: 调用的目标发生了异常。 此行已从表中移除并且没有任何数据。BeginEdit() 将允许在此行中创建新数据 |
-- 作者:有点蓝 -- 发布时间:2021/9/8 11:39:00 -- 放到DataRowDeleting事件 Dim pr As DataRow dim bh as string = e.DataRow("签到表编号") pr = DataTables("签到表").Find("签到表编号 = \'" & bh & "\'") If pr IsNot Nothing Then e.DataRow("签到表编号") = nothing pr("教师人数") = e.DataTable.compute("count(签到表编号)","签到表编号 = \'" & bh & "\' and 教师工号 <> \'\'") pr.Save End If |
-- 作者:夜点蚊香 -- 发布时间:2021/9/8 14:02:00 -- 这样有点问题 删除时进行判断。如果之前有数据,删除的时候,最后统计的数值会是1. |
-- 作者:有点蓝 -- 发布时间:2021/9/8 14:11:00 -- 不可能,仔细看上面代码,看不懂请上传实例测试。 |
-- 作者:夜点蚊香 -- 发布时间:2021/9/9 19:08:00 -- 弄好了,我代码写错了。 |