首页 > 解决方案 > 使用 vb.net 从数据集或数据表中选择数据不存在于另一个数据库中的数据

问题描述

我想将数据从远程 MSSQL 数据库插入到本地 MSSQL 数据库。但是应该有一个条件,只有那些在我的本地 database.table 中不存在的数据才会被选择插入。我可以从远程数据中填充数据集或数据表并更新本地数据表。但第一次成功插入后出现错误。错误与重复数据插入有关。那么有什么方法可以让我从填充的数据集或数据表中只选择那些在我的本地 database.table 中不存在的数据?我的代码如下。

Imports System.Data
Imports System.Data.Sql
Imports System.Data.SqlClient
Imports System.Data.DataTable
Imports System.Data.DataSet
Class MainWindow
Dim dsl As New DataSet()
Dim dal As New SqlDataAdapter()
Dim conr As String = ("Data Source=MOONLOADER\MSSQLSERVER2005;Initial Catalog=SSBYM;User ID=sa;Password=sasa;")
Dim cnr As New SqlConnection(conr)
Dim conl As String = ("Data Source=MOONLOADER\MSSQLSERVER2005;Initial Catalog=SSBY;User ID=sa;Password=sasa;")
Dim cnl As New SqlConnection(conl)
Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
    Try
        'UPDATING URNLIST
        dal.SelectCommand = New SqlCommand("select URN from TxnEnrollment", cnr)
        dal.AcceptChangesDuringFill = False
        dal.Fill(dsl, "URNLIST")
        Dim dar As New SqlDataAdapter("select * from URNLIST", cnl)
        Dim U As SqlCommandBuilder = New SqlCommandBuilder(dar)
        dar.Update(dsl, "URNLIST")
        'UPLOADING ENROLLMENT DATA
        dal.SelectCommand = New SqlCommand("select * from TxnEnrollment where Personalized='1' and URN not in (SELECT URN FROM URNLIST)", cnl)
        dal.AcceptChangesDuringFill = False
        dal.Fill(dsl, "TxnEnrollment")
        Dim dar0 As New SqlDataAdapter("select * from TxnEnrollment where Personalized='0'", cnr)
        Dim U0 As SqlCommandBuilder = New SqlCommandBuilder(dar0)
        dar0.Update(dsl, "TxnEnrollment")
        'UPLOADING DEPENDENT DATA
        dal.SelectCommand = New SqlCommand("select * from TxnDependents where Enrolled='1' and URN not in (SELECT URN FROM URNLIST)", cnl)
        dal.AcceptChangesDuringFill = False
        dal.Fill(dsl, "TxnDependents")
        Dim dar1 As New SqlDataAdapter("select * from TxnDependents where Enrolled='0'", cnr)
        Dim U1 As SqlCommandBuilder = New SqlCommandBuilder(dar1)
        dar1.Update(dsl, "TxnDependents")
        cnl.Close()
        cnr.Close()
        MessageBox.Show("Uploaded Successfully")
    Catch ex As Exception
        MessageBox.Show(ex.Message.ToString())
    End Try
End Sub

End Class

标签: vb.netdatatabledatasetsqldataadapter

解决方案


推荐阅读