【发布时间】:2021-04-03 13:57:35
【问题描述】:
我正在使用 .NET 并使用 sqldataadapter 从一个数据源获取数据并更新另一个数据源。但问题是每次在目标表中插入重复行。
Dim sqlconl As SqlConnection = New SqlConnection(conl) --LOCAL SQL CONNECTION
Dim sqlconr As SqlConnection = New SqlConnection(conr) --REMOTE SQL CONNECTION
Dim dsl As New DataSet() --DSL AS DATASET
Dim dal As New SqlDataAdapter() --DAL AS SQLDATAADAPTER
dal.SelectCommand = New SqlCommand("select * from TxnDependents where Personalized='1'", sqlconl)
dal.AcceptChangesDuringFill = False
dal.Fill(dsl, "TxnDependents")`
Dim dar1 As New SqlDataAdapter("select * from TxnDependents", sqlconr)
Dim U1 As SqlCommandBuilder = New SqlCommandBuilder(dar1)
dar1.Update(dsl, "TxnDependents")
dsl.Dispose()
dal.Dispose()
【问题讨论】:
-
这就是造成问题的所有代码吗?数据集的本地加载和远程连接上的更新之间是否有一些代码? AFAIK,您不应该使用此代码获得任何更新,因为所有行都处于未更改的行状态。
-
不,这就是我的全部。它正在工作,但每次使用新数据插入旧数据(之前已经插入)时。
-
我的问题是我无法设置任何条件,例如 dal.SelectCommand = New SqlCommand("select * from TxnDependents where Personalized='1' and URN not in (Select URN from txndependent,sqlconr)" , sqlconl)
-
在远程使用临时表来加载本地数据。 (您应该在每次新加载之前 TRUNCATE)然后您可以编写查询,使用相同的远程连接仅更新新记录
标签: vb.net dataset sqldataadapter