Імпорт CSV: чи хтось знає про які-небудь гарні інструменти імпортування CSV?

У мене є декілька файлів CSV, які потрібно імпортувати в моїх таблицях C# до SQL Server. Я зробив це раніше, але вважав це досить нудним і виснажливим.

Хто-небудь знає про будь-які інструменти чи методи для прискорення цього процесу?

Дякую всім!

0

6 Відповіді

Якщо вам потрібно це зробити через C#, подивіться на FileHelpers або http://www.codeproject.com/KB/cs/CsvReaderAndWriter.aspx .

Якщо ви хочете зробити це через SQL (BULK INSERT), то перегляньте покроковий огляд (включаючи джерело) тут http://blog.sqlauthority.com/2008/02/06/sql-server-import-csv-file-to-sql-server-using-bulk-insert-load-comma-delimited-file-to-sql-server/ (посилання на MSDN http://msdn.microsoft.com/en-us/library/ms188365.aspx ).

Існує простий варіант, проте, використовуючи Майстер імпорту SQL Server в інтерактивному режимі для невелика кількість файлів.

2
додано

Ви бажаєте виконати оператор BULK INSERT .

Швидка Google пропонує ці сайти:

1
додано

SQL Server Management Studio, on the database under Right Click -> Tasks -> Import Data... can consume CSV files.

Якщо вам потрібно це зробити через C#, тут є багато читачів та письменників CSV:

http://www.codeproject.com/KB/cs/CsvReaderAndWriter.aspx

Звідси це лише короткий перехід до DataTable і SqlBulkCopy .

1
додано

Припускаючи, що csv структуровано таким чином:

  • Один рядок - це один запис
  • Спліт-символ для поділу полів знаходиться в першій позиції кожного рядка.

Я зробив би це таким чином:

var lines = File.ReadAllLines("");

foreach (string line in lines)
{
    var values = line.Split(new[] { line[0] }, StringSplitOptions.None);
}
0
додано
однак, це не дійсно додає записи до дБ.
додано Автор Daren Thomas, джерело
@ ДаренТомас ти правий, я не читав цього.
додано Автор Fischermaen, джерело

Бібліотека FileHelpers є фантастичною для виконання такого роду речей за допомогою коду.

0
додано

Служба інтеграції SQL Server (SSIS) - це інструмент ETL для Microsoft і обробляє файли CSV легко.

0
додано
var chat = new Chat();
var chat = new Chat();
642 учасників

Обсуждение вопросов по C# / .NET / .NET Core / .NET Standard / Azure Сообщества-организаторы: — @itkpi — @dncuug