以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 外部数据的操作日志代码不执行问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=184553) |
-- 作者:lgz518 -- 发布时间:2022/12/13 15:23:00 -- 外部数据的操作日志代码不执行问题 For Each dt As DataTable In DataTables dt.GlobalHandler.DataColChanged = True dt.GlobalHandler.DataRowAdded = True Next If e.DataTable.Name <> "操作日志" Then \'”数据操作日志“是表名 If e.DataRow.RowState = 2 Then Return Else Dim dr As DataRow = DataTables("操作日志").AddNew dr("ID") = e.DataRow("_Identify") \' dr("用户") = User.Name 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 = "" For Each c As DataCol In e.DataTable.DataCols str += c.Name & "=" & e.DataRow(c.Name) & "|" Next dr("原行数据") = str End If End If If e.DataTable.Name <> "操作日志" Then Dim dr As DataRow = DataTables("操作日志").AddNew dr("ID") = e.DataRow("_Identify") \' dr("用户") = User.Name dr("用户") = _User.Name dr("涉及表") = e.DataTable.Name dr("涉及列") = Nothing dr("涉及行") = e.DataRow("_Identify") dr("时间") = Date.Now dr("操作") = "增加了一行" Dim str As String = "" For Each c As DataCol In e.DataTable.DataCols str += c.Name & "=" & e.DataRow(c.Name) & "|" Next dr("原行数据") = str End If 上面代码在内部执行可以,到外部数据源就不行,是哪里错?请帮处理
|
-- 作者:有点蓝 -- 发布时间:2022/12/13 15:50:00 -- 外部表没有加载 |
-- 作者:lgz518 -- 发布时间:2022/12/13 16:03:00 -- 我查找外部数据库也没有内容 |
-- 作者:lgz518 -- 发布时间:2022/12/13 16:04:00 -- 是上面代码执行无效,在内表是可以,在外表就不行 |
-- 作者:有点蓝 -- 发布时间:2022/12/13 16:08:00 -- 下面代码只针对已经加载的表,没有加载的表不会执行到的。如果是动态加载的表,或者是sqltable等,在加载后重新调用下面代码 For Each dt As DataTable In DataTables dt.GlobalHandler.DataColChanged = True dt.GlobalHandler.DataRowAdded = True Next |