SqlBulkCopy Class
Это способ быстрее, чем отдельные insert
операторы.
Вы должны увеличить свое собственное значение поля идентификатора дляосновной ключ.Чтобы сделать это, сначала возьмите последнее значение поля идентификатора, где вы остановились:
select top 1 id_customer
from customers
order by id_customer desc
Затем увеличивайте переменную int
, пока вы просматриваете DataSet
.
Или вместо этого можно использовать GUID для столбца первичного ключа .
Пример кода для использования SqlBulkCopy:
public static void BulkLoadDataTable(DataTable table, string destinationTable)
{
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(_connectionString))
{
bulkCopy.BulkCopyTimeout = 1200;
bulkCopy.DestinationTableName = destinationTable;
bulkCopy.WriteToServer(table);
}
}
Сильно типизированный DataTable:
using System;
using System.Data;
public class CustomersDataTable : DataTable
{
public CustomersDataTable() : base()
{
base.TableName = "Customers";
Columns.Add(new DataColumn("id_customer", typeof(int)));
Columns.Add(new DataColumn("first_name", typeof(string)));
Columns.Add(new DataColumn("last_name", typeof(string)));
Columns.Add(new DataColumn("active", typeof(bool)));
}
}