Foxtable(狐表)用户栏目专家坐堂 → [求助] 全局表事件DataColChanged报错


  共有2340人关注过本帖树形打印复制链接

主题:[求助] 全局表事件DataColChanged报错

帅哥哟,离线,有人找我吗?
myjht
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:254 积分:1634 威望:0 精华:0 注册:2017/4/14 15:58:00
[求助] 全局表事件DataColChanged报错  发帖心情 Post By:2019/9/15 14:43:00 [只看该作者]

全局表事件,DataColChanged,报错如下:新增行没问题,克隆行和合并导入就报错。求指点

Exception has been thrown by the target of an invocation.
There is no Original data to access.

目标的异常被抛出的一个调用。
没有原始数据访问。

代码如下:
If e.DataTable.Name <> "WorkLogfile" Then
        If e.DataRow.RowState = 2 Then
            Return
        Else
            Dim dr As DataRow = DataTables("WorkLogfile").AddNew
            dr("ID") = e.DataRow("_Identify")
            dr("用户") = User.Name
            dr("涉及表") = e.DataTable.Name
            dr("涉及列") = e.DataCol.Name
            dr("涉及行") = e.DataRow("_Identify")
            dr("时间") = Date.Now
            dr("操作") = """" & e.OldValue &  """ 改成了 """ & e.NewValue & """"
            Dim str As String = ""
            Dim str1 As String = ""
            For Each c As DataCol In e.DataTable.DataCols
                str += c.Name & "=" & e.DataRow.OriginalValue(c.Name) & "】,【"
                str1 += c.Name & "=" & e.DataRow(c.Name) & "】,【"
            Next
            dr("原行数据") = str
            dr("改后数据") = str1
        End If
    End If


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105962 积分:538885 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/15 15:49:00 [只看该作者]

这里直接使用OldValue 即可

        For Each c As DataCol In e.DataTable.DataCols
            If e.OldValue IsNot Nothing
                str += c.Name & "=" & e.OldValue & "】,【"
            End If
            str1 += c.Name & "=" & e.DataRow(c.Name) & "】,【"
        Next

 回到顶部
帅哥哟,离线,有人找我吗?
myjht
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:254 积分:1634 威望:0 精华:0 注册:2017/4/14 15:58:00
[求助] 全局表事件DataColChanged报错  发帖心情 Post By:2019/9/15 17:28:00 [只看该作者]

感谢有点蓝,非常好用,不再报错,谢谢。

 回到顶部