Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Импорт большого массива данных в БД / 4 сообщений из 4, страница 1 из 1
21.02.2011, 10:13
    #37127542
Philip S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт большого массива данных в БД
Добрый день уважаемые форумчане!
У меня возник следующий вопрос. Но сначала опишу исходные данные.

Имеется файл Excel - 100 столбцов, несколько десятков тысяч строк.
Он с помощью OleDb загружается в DataTable.
Имеется на MS SQL Server БД, в которой содержится 6 таблиц. Структура в принципе не очень важна, но могу дать, если надо.

Требуется импортировать все данные из одной DataTable в 6 таблиц на MSSQL.
При этом, например, если в таблице Продуктов, ранее отсутствовал продукт N, его необходимо создать, а в основную таблицу (Заказов) в столбец Продукт_ИД добавить соответственно ИД созданного, или имеющегося ранее в БД продукта.

Если делать данную операцию с помощью стандартных "Insert INTO" и вставлять построчно, время выполнения весьма велико.

Вопрос в том, как эту операцию можно провести максимально быстро?

п.с. Опыта работы с БД ранее практически не имел, поэтому если не очень сложно, буду рад услышать максимально развернутые советы

Заранее спасибо!
...
Рейтинг: 0 / 0
21.02.2011, 10:51
    #37127618
SolYUtor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт большого массива данных в БД
Philip S,

Курите тут .
...
Рейтинг: 0 / 0
21.02.2011, 20:20
    #37129168
Philip S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт большого массива данных в БД
SolYUtor,

Спасибо за ответ, но это немного не то, что мне нужно!
Так как в БД требуется заливать проверенную информацию, то при загрузке Excel файла, он заносится в DataTable.
В DataTable производится серия проверок правильности и ненужные строки удаляются из DataTable.

И уже проверенный массив данных, содержащийся в DataTable требуется отправить в БД. Желательно максимально быстро :)

Как лучше поступить в таком случае?
...
Рейтинг: 0 / 0
25.02.2011, 08:38
    #37134895
Gluck_13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт большого массива данных в БД
Philip S,

Создай DataReader, читающий получившийся DataTable, и скорми его SqlBulkCopy. Можно сначала во временную таблицу, которую потом растащить по таблицам БД посредством SQL.
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Импорт большого массива данных в БД / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]