我有一个主数据库。我将一些数据提取到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
答案 0 :(得分:0)
这里很遗憾没有回复通知。我通过其他论坛的推荐解决了这个问题。它需要从主数据库读取,然后从客户端读取并在最后合并。然后将删除重复的记录。