Массовая вставка данных из GridView в базу данных postgresql в ASP.Net - PullRequest
0 голосов
/ 16 марта 2019

Как выполнить массовую вставку большого количества данных из таблицы сетки asp.net в базу данных postgresql, я пытался использовать оператор вставки, но для его завершения требуется много времени.

Я нашел пример кода для выполнения той же задачи на сервере SQL, но с postgresql я не понял, как это сделать.

это код для сервера sql, и он хорошо работает

Protected Sub Bulk_Insert(sender As Object, e As EventArgs)
    Dim dt As New DataTable()
    dt.Columns.AddRange(New DataColumn(1) {New DataColumn("CustomerId", GetType(Integer)), New DataColumn("CompanyName", GetType(String))})

    For Each row As GridViewRow In GridView1.Rows
        Dim CustomerId As Integer = Integer.Parse(row.Cells(1).Text)
        Dim CompanyName As String = row.Cells(2).Text
        dt.Rows.Add(CustomerId, CompanyName)
    Next
    If dt.Rows.Count > 0 Then
        Dim consString As String = ConfigurationManager.ConnectionStrings("constr").ConnectionString
        Using con As New SqlConnection(consString)
            Using sqlBulkCopy As New SqlBulkCopy(con)
                sqlBulkCopy.DestinationTableName = "destination2"

                sqlBulkCopy.ColumnMappings.Add("CustomerId", "CustomerId")
                sqlBulkCopy.ColumnMappings.Add("CompanyName", "CompanyName")
                con.Open()
                sqlBulkCopy.WriteToServer(dt)
                con.Close()
            End Using
        End Using
    End If
    Response.Redirect("Default.aspx")
End Sub

пожалуйста, помогите

1 Ответ

0 голосов
/ 17 марта 2019

Отказ от ответственности : я являюсь владельцем Массовых операций

Эта библиотека не является бесплатной.

Аналогично SqlBulkCopy, но для PostgreSQL эта библиотека позволяет легко выполнять массовые операции, такие как:

  • Массовая вставка
  • Массовое обновление
  • Массовое удаление
  • BulkMerge
* * Пример тысяча двадцать-один: * * 1 022
var bulk = new BulkOperation(connection);
bulk.ColumnMappings.Add("CustomerId", "CustomerId")
bulk.ColumnMappings.Add("CompanyName", "CompanyName")
bulk.BulkInsert(dt);
...