Массовая вставка / копирование Vb.net SQL

Надеюсь, кто-то может помочь,

Предыстория: у вас есть старая машина, которая помещает данные в файл доступа MS, и нам нужно импортировать таблицу в таблицу SQL, база данных доступа сохраняет данные в течение 3 дней, а затем удаляет старые данные, идея состоит в том, чтобы запустить задачу каждое утро вставлять новые записи в sql, игнорировать существующие, чтобы мы могли построить график за год.

Я извлек данные из доступа MS в Datatable под названием «table» и создал имена столбцов в таблице 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

Возможный дубликат Массовая вставка на сервер Sql

Meta-Knight 27.11.2018 14:49

вам может быть лучше с работой SSIS или чем-то в этом роде

ADyson 27.11.2018 15:31

«все образцы, которые я видел, написаны на C#» - Значит, вы не смотрели документацию на Класс SqlBulkCopy? Если в правом верхнем углу этой страницы вы видите </>C#, щелкните по нему и выберите VB.

TnTinMn 27.11.2018 15:31

Я зависал над этой страницей, я не понимал, что вы можете изменить ее на VB, моя ошибка - я не был уверен, игнорирует ли она записи, которые будут такими же?

Peter James 27.11.2018 16:46
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
4
1 216
1

Ответы 1

В SQL вам нужно создать переменную таблицы, а затем в VB.net создать переменную DataTable (и определить столбцы) и сначала поместить данные в переменную DataTable.

Затем передайте переменную DataTable либо в SQL-запрос, который ВЫБИРАЕТ из переменной Table в INSERT в вашу таблицу, либо создайте хранимую процедуру с параметром, который принимает переменную Table.

Я могу поделиться кодом позже, если вы не поймете, как это сделать.

Другие вопросы по теме