Foxtable(狐表)用户栏目专家坐堂 → 合并外部数据


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

主题:合并外部数据

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/4/1 9:33:00 [显示全部帖子]

以下是引用jygyyl在2014-4-1 9:29:00的发言:
我有两张表(sfzxxcj和jmsfzxx),均是外部数据表,我用上述代码将 sfzxxcj的记录合并到 jmsfzxx,要求排除身份证(GB011)重复,在表jmsfzxx加载所有数据时,可以达到不合并已有数据的目的,但如果表jmsfzxx不加载数据时,不能实现目的。我的代码如下:

 

用sqlfind 代替 find 方法

 

http://www.foxtable.com/help/topics/2911.htm

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/4/1 9:41:00 [显示全部帖子]

 不过,既然是两表不重复内容的合并,建议先用sql语句查询出数据,然后把数据插入就行了。

 

 连接查询,sql语句,得到的jmsfzxx没有的行,如:

 

 select a.*, b.GB011 from {sfzxxcj} as a left join {jmsfzxx} as b on a.GB011 = b.GB011 where b.GB011 is null


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/4/1 10:01:00 [显示全部帖子]

以下是引用jygyyl在2014-4-1 9:59:00的发言:
谢谢您的指点,但是我很菜,不会写,能否帮忙写一下?再次感谢!

 

如果不会写,就用7楼的方法,就行了。也可以用。

 

DataTables("sfzxxcj").Save()
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SELECT * From {sfzxxcj}"
dt = cmd.ExecuteReader()
For Each dr As DataRow In dt.DataRows
    If DataTables("jmsfzxx").SQlFind("GB011 = '" & dr("GB011") & "'") Is Nothing Then
        Dim nr As DataRow = DataTables("jmsfzxx").AddNew()
        For Each dc As DataCol In dt.DataCols
            nr(dc.name) = dr(dc.name)
        Next
    End If
Next
DataTables("jmsfzxx").Save()

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/4/1 10:03:00 [显示全部帖子]

 或者

 

DataTables("sfzxxcj").Save()
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "select a.* from {sfzxxcj} as a left join {jmsfzxx} as b on a.GB011 = b.GB011 where b.GB011 is null"
dt = cmd.ExecuteReader()
For Each dr As DataRow In dt.DataRows
    Dim nr As DataRow = DataTables("jmsfzxx").AddNew()
    For Each dc As DataCol In dt.DataCols
        nr(dc.name) = dr(dc.name)
    Next
Next
DataTables("jmsfzxx").Save()

 回到顶部