Лучший метод для импорта файла CSV или Excel в SQL Server 2005 с использованием .net MVC view - PullRequest
5 голосов
/ 13 октября 2009

Я ищу лучший способ для импорта файла CSV или Excel в SQL Server 2005 с использованием .net MVC.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 13 октября 2009

Есть действительно хорошая библиотека под названием FileHelpers , которая а) на 100% свободна, б) полностью в C # и может легко импортировать любой текстовый файл - разделенный запятыми, разделенный табуляцией , фиксированной ширины и пр.

У вас не должно возникнуть проблем с использованием этого для загрузки вашего CSV-файла в объекты в памяти и его сохранения в SQL Server с использованием ADO.NET.

В FileHelpers сначала необходимо иметь класс, описывающий ваши данные, например, класс «Клиент» (или что бы вы ни импортировали).

Затем вы можете импортировать файл, используя код примерно так:

FileHelperEngine<Customer> engine = new FileHelperEngine<Customer>();
Customer[] dataLoaded = engine.ReadFile(fileName);

Как только у вас есть массив клиентов, вы можете просто выполнить итерацию по нему и сохранить данные (обычно внутри транзакции), например, с помощью. хранимая процедура или специальный SQL-запрос:

using(TransactionScope ts = new TransactionScope())
{
   foreach(Customer c in dataLoadad)
   {
      SaveCustomer(c);
   }

   ts.Complete();
}

или вы можете преобразовать клиентский массив в DataTable и использовать SqlBulkCopy, чтобы массово вставить его в базу данных SQL Server - существует множество вариантов!

UPDATE:
У вас есть [DelimitedRecord] или другой из этих атрибутов в вашем BlackListDevice классе?

0 голосов
/ 14 октября 2009

Исправлено это путем добавления отдельного класса для загрузки файлов, работает как шарм с помощью FileHelper.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...