Vb.net SQL批量插入/复制

时间:2018-11-27 13:20:07

标签: sql vb.net datatable sqlbulkcopy

希望有人可以提供帮助,

背景:有一个旧机器将数据放入MS访问文件中,我们需要将该表导入到SQL表中,访问数据库会连续存储3天的数据,然后删除较旧的数据,其目的是每天早上执行一项任务,将新记录插入sql,忽略现有记录,以便我们可以在一年中建立图表。

我已经从MS访问中提取了数据到称为“表”的数据表中,并在匹配的SQL表中创建了列名,我已经阅读了有关SQL Bulkcopy的信息,但是我看到的所有示例都在C#中,但是任何代码转换器都会出错,并且不是100%会在以后执行即时操作。

有人可以帮忙吗? 皮特

Dim count As Integer = 0
    Dim table As DataTable = New DataTable
    Dim accConnection As New OleDb.OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0; Data Source='C:\Machine.mdb';User Id=admin; Password=;")
    Dim sqlConnection As New SqlClient.SqlConnection("Data Source=10.75.24.94;Initial Catalog=CTData;User ID=sql;Password=")
    Try
        'Import the Access data
        accConnection.Open()
        Dim accDataAdapter = New OleDb.OleDbDataAdapter("SELECT * FROM Slot_Vision_Counters_table", accConnection)
        accDataAdapter.Fill(table)
        accConnection.Close()
        'Export to MS SQL
        For Each row As DataRow In table.Rows
            row.SetAdded()
            count = count + 1
        Next


Code for inserting the data to SQL?


    Catch ex As Exception
        If accConnection.State = ConnectionState.Open Then
            accConnection.Close()
        End If
        If sqlConnection.State = ConnectionState.Open Then
            sqlConnection.Close()
        End If
        MessageBox.Show("Import failed with error: " & Environment.NewLine & Environment.NewLine _
        & ex.ToString)
    End Try

1 个答案:

答案 0 :(得分:0)

在SQL中,您需要创建一个Table变量,然后在VB.net中创建一个DataTable变量(并定义列),然后首先将数据放入DataTable变量中。

然后将DataTable变量传递给一个SQL查询,该查询将SELECTS从Table变量插入到INSERT到您的Table中,或者使用一个接受Table变量的参数创建存储过程。

如果您不知道如何执行此操作,以后可以共享一些代码。