【发布时间】: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