希望有人可以提供帮助,
背景:有一个旧机器将数据放入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
答案 0 :(得分:0)
在SQL中,您需要创建一个Table变量,然后在VB.net中创建一个DataTable变量(并定义列),然后首先将数据放入DataTable变量中。
然后将DataTable变量传递给一个SQL查询,该查询将SELECTS从Table变量插入到INSERT到您的Table中,或者使用一个接受Table变量的参数创建存储过程。
如果您不知道如何执行此操作,以后可以共享一些代码。