SQL Server 2000 - массовая вставка из набора данных / или коллекции C # - PullRequest
0 голосов
/ 14 сентября 2011

Я знаю, что SQL Server 2000 имеет массовую вставку . Поддерживает ли массовая вставка из коллекции C #, например, набора данных?

Мне нужно вставлять 30 строк за раз, довольно регулярно.Я не хочу создавать 30 соединений с БД для этого, если мне не нужно.

Ответы [ 2 ]

2 голосов
/ 14 сентября 2011

Взгляните на SqlBulkCopy (имеет поддержку форумов SQL 2000). Это просто в использовании. По сути, просто предоставьте ему таблицу данных (или средство чтения данных), и она скопирует строки из этого источника в вашу таблицу назначения.

0 голосов
/ 14 сентября 2011

Вы можете вставить с помощью DataSet в SQL 2000, я никогда не пробовал, потому что я никогда не использую DataSets.

http://www.dotnet247.com/247reference/msgs/3/16570.aspx имеет хороший пост:

(Из статьи)

Используемые шаги 1.Создать SqlDataAdapter с правильным оператором выбора

2.Создать набор данных и заполнить набор данных SqlDataAdapter

3.Добавить строки втаблица в наборе данных (для всех действий, которые вы сказали выше, например, для переключателя выбран, переключатель включен)

4. Используйте вспомогательный объект SqlCommandBuilder для генерации UpdateStatements.Это очень простой в использовании командный строитель.Всего один вызов конструктора SqlCommandBuilder.

5. Как только вы закончите добавление строк в таблицу данных в вызове набора данных SqlDataAdapter.update и передаете измененный набор данных в качестве параметра.Это должно автоматически добавить строки из набора данных в базу данных (если ошибка базы данных не возникает)

Рассматривали ли вы XML?

Работа с XML в SQL 2000 не так хорошакак в 2008 году, но это все еще выполнимо:

http://www.codeproject.com/KB/database/insxmldatasqlsvr.aspx

http://www.codeproject.com/KB/database/generic_OpenXml.aspx

http://support.microsoft.com/default.aspx?scid=kb;en-us;315968

Другой вариант, на который вы могли бы взглянутьбыть:

Открыть соединение.
Итерация по вставкам

Закрыть соединение.

...