How to import large CSV file to SQL server using .Net Core API (C#)
I have tried with below code , it's working for small amount of data but how can I import large amount of data (around 1000000 records in csv file) in chunks.
public void LoadFile()
{
string filePath = @"F:\Test\Book1.csv";
using (var reader = new StreamReader(filePath))
using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
{
var records = csv.GetRecords<SalesRecord>();
foreach (var record in records)
{
SalesRecord _salesRecord = new SalesRecord();
_salesRecord.Region = record.Region;
_salesRecord.Country = record.Country;
_salesRecord.ItemType = record.ItemType;
_salesRecord.SalesChannel = record.SalesChannel;
_salesRecord.OrderPriority = record.OrderPriority;
_salesRecord.OrderDate = record.OrderDate;
_salesRecord.OrderID = record.OrderID;
_salesRecord.ShipDate = record.ShipDate;
_salesRecord.UnitsSold = record.UnitsSold;
_salesRecord.UnitPrice = record.UnitPrice;
_salesRecord.UnitCost = record.UnitCost;
_salesRecord.TotalRevenue = record.TotalRevenue;
_salesRecord.TotalCost = record.TotalCost;
_salesRecord.TotalProfit = record.TotalProfit;
_context.SalesRecords.Add(_salesRecord);
}
_context.SaveChanges();
}
SqlBulkCopy. There are various libraries that promise to make interacting with it simpler, though if you have any method of creating aDataReaderfrom your input it's simple enough already.IDbDataReader.