【问题标题】:Vb.net SQL bulk insert/copyvb.net SQL 批量插入/复制
【发布时间】:2019-04-29 06:03:19
【问题描述】:

希望有人能帮忙,

背景:有一台旧机器将数据放入MS access文件中,我们需要将表导入SQL表,access数据库保持滚动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

【问题讨论】:

  • 你可能会更好地从事 SSIS 工作或类似的工作
  • “我见过的所有示例都在 C# 中” - 所以您没有查看 SqlBulkCopy Class 的文档?如果您在该页面的右上角看到</>C#,请单击它并选择VB
  • 我悬停在那个页面上,我没有意识到你可以将其更改为 VB,我的错误 - 我不太确定它是否会忽略相同的条目?

标签: sql vb.net datatable sqlbulkcopy


【解决方案1】:

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

然后将 DataTable 变量传递给一个 SQL 查询,该查询从表变量中选择以插入到您的表中,或者创建一个带有接受表变量的参数的存储过程。

如果你不知道怎么做,我可以稍后分享一些代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-21
    • 1970-01-01
    • 2010-09-24
    • 2016-01-31
    • 2013-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多