将数据从一个表提取到另一个表

时间:2013-08-07 19:22:46

标签: vb.net ms-access

我有一个主数据库。我将一些数据提取到DataTable,然后需要使用这些数据更新私有数据库,避免加倍。当我使用Update命令时,数据在私有数据库中加倍,在Fill的情况下根本没有任何事情发生。

这里是代码:

Dim Table As New DataTable
cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Main.mdb;Jet OLEDB:Database Password=123")
cmd = New OleDb.OleDbCommand With {.Connection = cn}
cn.Open()
cmd.CommandText = "SELECT * FROM Catalogue"
DA = New OleDbDataAdapter(cmd)
DA.AcceptChangesDuringFill = False
DA.Fill(Table)
DA.Dispose()
cn.Close()
'--------------
cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=private.mdb;Jet OLEDB:Database Password=123"
cmd = New OleDb.OleDbCommand With {.Connection = cn}
cn.Open()
cmd.CommandText = "SELECT * FROM Catalogue"
DA = New OleDbDataAdapter(cmd)
MyBuilder = New OleDbCommandBuilder(DA)
DA.Fill(Table) 'ADD NO DATA
DA.Update(Table) 'DOUBLING DATA
DA.Dispose()
cn.Close()

如您所知,当我谈论数据加倍时,这意味着我已经在私有数据库中存在一些数据,它们可能与主数据库中的数据相同。

问题可视化:

Begining

Main database, table 1 data
 1
 2
 3

Private database, table 1 data
 1
 2

结束

What I need:
 Private database, table 1 data
 1
 2
 3

What I get:
 Private database, table 1 data
 1
 2
 1
 2
 3

1 个答案:

答案 0 :(得分:0)

这里很遗憾没有回复通知。我通过其他论坛的推荐解决了这个问题。它需要从主数据库读取,然后从客户端读取并在最后合并。然后将删除重复的记录。