以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何把A数据源的数据保存到B数据源?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=106704)

--  作者:huangxueyao
--  发布时间:2017/9/14 11:05:00
--  如何把A数据源的数据保存到B数据源?
系统正在连接A数据源,想要把数据更新到B数据源上,是用什么代码?
类似http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=13283&replyID=&skin=1帖子中说到的问题。

下面这个代码是把B数据源更新到连接中的A数据源。
Dim mg As New Merger
mg.C \'指定数据源名称
mg.SourceTableName = "基础资料表" \'指定要合并的表
mg.DataTableName = "基础资料表" \'指定接收数据的表
mg.Merge() \'开始合并

--  作者:有点甜
--  发布时间:2017/9/14 11:27:00
--  

参考代码

 

http://www.foxtable.com/webhelp/scr/2137.htm

 


--  作者:huangxueyao
--  发布时间:2017/9/14 11:43:00
--  
这里都是合并外部数据源到本地数据源,我的问题是合并本地数据源到外部数据源。
--  作者:有点甜
--  发布时间:2017/9/14 11:46:00
--  

反过来写代码

 

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.ConnectionName = "数据源名称"
cmd.CommandText = "SELECT * From {员工} where 1=2"
dt = cmd.ExecuteReader(True)
For Each dr As DataRow In DataTables("员工").DataRows
    If dt.Find("身份证号码 = \'" & dr("身份证号码") & "\'") Is Nothing Then
        Dim nr As DataRow = dt.AddNew()
        For Each dc As DataCol In DataTables("员工").DataCols
            nr(dc.name) = dr(dc.name)
        Next
    End If
Next
dt.save

[此贴子已经被作者于2017/9/14 11:49:20编辑过]

--  作者:huangxueyao
--  发布时间:2017/9/14 11:48:00
--  
明白了,谢谢,我看了代码还没测试,我以为dt = cmd.ExecuteReader()只是相当于查询,没想到还能反写,谢谢~
--  作者:huangxueyao
--  发布时间:2017/9/14 14:45:00
--  

反过来写代码

 

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.ConnectionName = "数据源名称"
cmd.CommandText = "SELECT * From {员工} where 1=2"
dt = cmd.ExecuteReader(True)
For Each dr As DataRow In DataTables("员工").DataRows
    If dt.Find("身份证号码 = \'" & dr("身份证号码") & "\'") Is Nothing Then
        Dim nr As DataRow = dt.AddNew()
        For Each dc As DataCol In DataTables("员工").DataCols
            nr(dc.name) = dr(dc.name)
        Next
    End If
Next
dt.save

画个重点收藏下