以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 两个外部数据源A和B,其中有名称为C和D的两个外部数据表,结构相同,怎么复制他们的数据? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=46959) |
-- 作者:小刚 -- 发布时间:2014/3/2 8:33:00 -- 两个外部数据源A和B,其中有名称为C和D的两个外部数据表,结构相同,怎么复制他们的数据? 两个外部数据源A和B,其中有名称为C和D的两个外部数据表,结构相同,怎么复制他们的数据? |
-- 作者:qianqian1530 -- 发布时间:2014/3/2 8:39:00 -- 在菜单的“数据表”功能区,单击下面的按钮,可以复制表 复制表只复制数据列,不复制表达式列。
|
-- 作者:小刚 -- 发布时间:2014/3/2 8:59:00 -- 看都不看,你这个是内部数据表。我说的是外部数据源、外部数据表。 |
-- 作者:小刚 -- 发布时间:2014/3/2 9:04:00 -- 自行编码合并外部数据 我们知道,用Merger可以合并外部数据到表中,不过Merger没有排除重复内容的选项,有时不能满足我们的要求。 例如项目中有一个员工表,要从一个外部文件中合并数据到这个员工表中,希望在合并过程中检查身份证号码,如果员工表已经存在相同身份证号码的行,则跳过此行。 Dim cmd As New SQLCommandDim dt As DataTable cmd.ConnectionName = "数据源名称" cmd.CommandText = "SELECT * From {员工}" dt = cmd.ExecuteReader() For Each dr As DataRow In dt.DataRows If DataTables("员工").Find("身份证号码 = \'" & dr("身份证号码") & "\'") Is Nothing Then Dim nr As DataRow = DataTables("员工").AddNew() For Each dc As DataCol In dt.DataCols nr(dc.name) = dr(dc.name) Next End If Next 可见要自己设计一个功能更强的Merger,其实是件很简单的事情。 如果两个表的结构不同,可以参考下面的代码: Dim cmd As New SQLCommandDim dt As DataTable Dim sCols() As String = {"列名1", "列名2", "列名3"} Dim dCols() As String = {"列名A", "列名B", "列名C"} cmd.ConnectionName = "数据源名称" cmd.CommandText = "SELECT * From {员工}" dt = cmd.ExecuteReader() For Each dr As DataRow In dt.DataRows Dim nr As DataRow = DataTables("员工").AddNew() For i As Integer =0 To sCols.Length -1 nr(dCols(i)) = dr(sCols(i)) Next Next
这个是一个外部数据源吧 两个数据源怎么更改代码? |
-- 作者:有点甜 -- 发布时间:2014/3/2 21:16:00 -- 回复4楼,不论几个数据源,外部表的数据,都是可以相互复制的。只要把它们都引用在狐表里。 你直接用fill就行了 http://www.foxtable.com/help/topics/0680.htm
|