Foxtable(狐表)用户栏目专家坐堂 → merger合并


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

主题:merger合并

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


加好友 发短信
等级:狐神 帖子:6833 积分:43228 威望:0 精华:0 注册:2009/3/2 14:07:00
merger合并  发帖心情 Post By:2010/9/14 16:28:00 [只看该作者]

merger合并,增加“逻辑型,是否排除重复内容,默认为True;如果设为False,将不会排除重复内容,也不会排除已有内容和空白值。”

就是同filler一样使用。


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/9/14 16:58:00 [只看该作者]

以后再考虑吧

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


加好友 发短信
等级:狐神 帖子:6833 积分:43228 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2010/9/26 11:45:00 [只看该作者]

以下是引用狐狸爸爸在2010-9-14 16:58:00的发言:
以后再考虑吧
贺老师,考虑好了没有?

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/10/21 17:05:00 [只看该作者]

我们知道,用Merger可以合并外部数据到表中,不过Merger没有排除重复内容的选项,有时不能满足我们的要求。

例如项目中有一个员工表,要从一个外部文件中合并数据到这个员工表中,希望在合并过程中检查身份证号码,如果员工表已经存在相同身份证号码的行,则跳过此行。
假定被合并的表和员工表的结构相同,代码如下:

 

Dim cmd As New SQLCommand
Dim
dt As DataTable
cmd.ConnectionName =
"test"
cmd.CommandText =
"SELECT * From {表A}"
dt = cmd.ExecuteReader()

For
Each dr As DataRow In dt.DataRows
    If
DataTables("表A").Find("身份证号码 = '" & dr("身份证号码") & "'") Is Nothing Then
        Dim
nr As DataRow = DataTables("表A").AddNew()
        For
Each dc As DataCol In dt.DataCols
            nr(dc.name) = dr(dc.name)

        Next
    End
If
Next

 

可见要自己设计一个功能更强的Merger,其实是非常简单的事情。

如果两个表的结构不同,可以参考下面的代码:

 

Dim cmd As New SQLCommand
Dim
dt As DataTable
Dim
sCols() As String = {"列名1", "列名2", "列名3"}
Dim
dCols() As String = {"列名一", "列名而", "列名三"}
cmd
.ConnectionName = "test"
cmd
.CommandText = "SELECT * From {表A}"
dt
= cmd.ExecuteReader()
For Each
dr As DataRow In dt.DataRows
    Dim
nr As DataRow = DataTables("表A").AddNew()
    For
i As Integer =0 To sCols.Length -1
       
nr(dCols(i)) = dr(sCols(i))
    Next
Next


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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/10/21 18:23:00 [只看该作者]

"列名而"应该改成"列名二",这样才匹配。

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/10/21 21:02:00 [只看该作者]

图片点击可在新窗口打开查看

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/10/21 21:10:00 [只看该作者]

其实也可以先 Importer 再用数据填充器 因为Filter可以设置条件, ,


 回到顶部