Foxtable(狐表)用户栏目专家坐堂 → [求助]复制表的问题


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

主题:[求助]复制表的问题

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


加好友 发短信
等级:幼狐 帖子:149 积分:1295 威望:0 精华:0 注册:2018/12/12 23:23:00
[求助]复制表的问题  发帖心情 Post By:2019/6/11 15:02:00 [只看该作者]


If e.DataCol.Name = "是否" AndAlso e.DataRow("是否") = True Then
    Dim nma() As String = {"一列","二列","三列","四列","五列","六列"} 'A表数据来源列
    Dim nmb() As String = {“一列","二列","三列","四列","五列","六列"} 'B表数据接收列
    Dim dr As DataRow = DataTables("B表").AddNew
    For i As Integer = 0 To nma.Length - 1
        dr(nmb(i)) = e.DataRow(nma(i))
    Next
End If

上面代码是A表有个逻辑列“是否”
如个=是则复制A表一到六列给B表
现在有个问题:逻辑列会重复操作,导致重复将数据复制到B表造成数据重复,如何解决?
[此贴子已经被作者于2019/6/11 15:01:57编辑过]

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


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

有没有关键的列?比如编号之类的,通过find查询一下表B是否有这个编号的数据,如果有就不添加:http://www.foxtable.com/webhelp/topics/0396.htm

或者判断是否有着6列值都一样的数据

Dim dr As DataRow = DataTables("B表").Find("一列 = '" & e.DataRow("一列")  & "' and 二 = '" & e.DataRow("二")  & "' and......")

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


加好友 发短信
等级:幼狐 帖子:149 积分:1295 威望:0 精华:0 注册:2018/12/12 23:23:00
  发帖心情 Post By:2019/6/12 9:36:00 [只看该作者]


Dim dr As DataRow = DataTables("B表").Find("B1 = '" & e.DataRow("A1")  & "' and B2 = '" & e.DataRow("A2")  & "' and......")

If e.DataCol.Name = "逻辑列名" AndAlso e.DataRow("逻辑列名") = True Then
    Dim nma() As String = {"A1","A2","A3","A4"
'A表数据来源列

    
Dim nmb() As String = {"B1","B2","B3","B4"} 'B表数据接收列
    
Dim dr As DataRow = DataTables("表B").AddNew
    
For i As Integer = 0 To nma.Length - 1
        dr(nmb(i)) = e.DataRow(nma(i))
    
Next
End
 If

这两段代码要怎样合在一起?下面复制行的代码应该在哪里加入比对合适,由于初学所以请指教

Dim dr As DataRow = DataTables("B表").Find("B1 = '" & e.DataRow("A1")  & "' and B2 = '" & e.DataRow("A2")  & "' and......")
)的比对时机在哪里合适?
初学请指教

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


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

If e.DataCol.Name = "是否"
    If e.DataRow("是否") = True Then
        Dim nma() As String = {"一列","二列","三列","四列","五列","六列"} 'A表数据来源列
        Dim nmb() As String = {"一列","二列","三列","四列","五列","六列"} 'B表数据接收列
        Dim dr As DataRow = DataTables("B表").AddNew
        For i As Integer = 0 To nma.Length - 1
            dr(nmb(i)) = e.DataRow(nma(i))
        Next
        dr("第十列") = e.DataRow("_Identify")
    Else
        DataTables("B表").deletefor("第十列='" & e.DataRow("_Identify") & "'")
    End If
End If

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


加好友 发短信
等级:幼狐 帖子:149 积分:1295 威望:0 精华:0 注册:2018/12/12 23:23:00
  发帖心情 Post By:2019/6/15 20:26:00 [只看该作者]

多谢蓝老师,受益了!

 回到顶部