Foxtable(狐表)用户栏目专家坐堂 → [求助]关于操作记录的语句写法


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

主题:[求助]关于操作记录的语句写法

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


加好友 发短信
等级:幼狐 帖子:51 积分:577 威望:0 精华:0 注册:2018/4/4 8:37:00
[求助]关于操作记录的语句写法  发帖心情 Post By:2018/5/17 14:48:00 [只看该作者]

有一个总表比较重要,需要详细记录他的变更记录,因此复制了一个表结构完全一样的变更记录表,专门记录主表的每一次改动(包括更改和删除、不包括新增)

我现在是这样的写的,如下:

datacolchanged事件里面


Select Case e.DataCol.name

Case "A","B","C"………(总列数为80几条,需要监控变化的列为十几条)

   If  e.newvalue <> e.OldValue Then

      Dim dr As DataRow = DataTables("变更记录").AddNew

            dr("A")= e.DataRow.OriginalValue("A")

            dr("B")= e.DataRow.OriginalValue("B")

            dr("C")= e.DataRow.OriginalValue("C")

          .

          .

          .  

        End If

End Select


因为要迁移到变更记录表的数据列有80多条,请问有什么比较简洁的写法???

可以使变更记录表里面对应列的值等于主表里面对应列(列名一样)变化之前的值????

[此贴子已经被作者于2018/5/17 15:12:19编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/17 15:14:00 [只看该作者]


Dim cs As String() = { "A","B","C"}
If array.indexof(cs, e.DataCol.name) >= 0 Then
    If  e.newvalue <> e.OldValue Then
        Dim dr As DataRow = DataTables("变更记录").AddNew
        For Each c As String In cs
            dr(c)= e.DataRow.OriginalValue(c)
        Next
    End If
End If


 回到顶部