0

我有一个主数据库。我确实将一些数据提取到 DataTable 中,然后需要用这些数据更新私有数据库以避免加倍。当我使用更新命令时,私有数据库中的数据加倍,如果填充没有任何反应。

这里的代码:

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()

正如你所理解的,当我谈到翻倍数据时,这意味着我已经在私有数据库中拥有了一些数据,它们可以与主数据库中的数据相同。

问题可视化:

开始

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
4

1 回答 1

0

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

于 2013-08-18T08:43:54.977 回答