Альтернатива SQL BULK INSERT

Мне нужно импортировать файл .csv формы данных в таблицу базы данных (MS SQL Server 2005). SQL BULK INSERT кажется хорошим вариантом, но проблема в том, что мой сервер БД находится не в том же ящике, что и мой WEB-сервер. Этот вопрос описывает ту же проблему, однако я не контролирую свой сервер БД и не могу делиться какими-либо папками на нем.

Мне нужен способ программно импортировать файл .csv (C#), есть идеи?

РЕДАКТИРОВАТЬ: это часть веб-сайта, где пользователь может заполнять таблицу содержимым .csv, и это будет происходить еженедельно, если не чаще.

Ответов (4)

Решение

Я закончил использовать CSV Reader . Я видел ссылку на него в одном из ответов @Jon Skeet, не могу найти его снова, чтобы поместить на него ссылку

Насколько велики ваши наборы данных? Если они не очень большие, вы можете обойтись параметризованными операторами вставки. Вы можете сначала загрузить в промежуточную таблицу для спокойствия или из соображений производительности.

У вас есть несколько вариантов:

  1. SSIS
  2. DTS
  3. индивидуальное приложение

Любой из этих подходов должен выполнять свою работу. Если это всего лишь скретч, может быть лучше написать одноразовое приложение на вашем любимом языке, просто чтобы получить данные. Если это должно быть долговременное решение, вы можете изучить SSIS или DTS, поскольку они созданы для такого типа ситуации.

Попробуйте Rhino-ETL, это движок ETL с открытым исходным кодом, написанный на C#, который может даже использовать BOO для простых сценариев ETL, поэтому вам не нужно постоянно его компилировать.

Код можно найти здесь: https://github.com/hibernating-rhinos/rhino-etl

Парень, который это написал: http://www.ayende.com/blog

В списках групп есть некоторые обсуждения по этому поводу, на самом деле я недавно добавил массовую вставку для сценариев boo. http://groups.google.com/group/rhino-tools-dev http://groups.google.com/group/rhino-tools-dev/browse_thread/thread/2ecc765c1872df19/d640cd259ed493f1

Если вы загружаете код, есть несколько примеров, также проверьте список групп Google, если вам нужна дополнительная помощь.