2015-10-21 4 views
0

Как вставить данные в файл, полный данных, вместе в таблице с помощью команды SQL?вставить данные файла в таблицу SQL

Я уже делаю это, используя foreach, но что делать, если я не хочу вставлять строки за строкой, но все вместе?

+0

Какая СУБД для этого? Добавьте тег, чтобы указать, используете ли вы 'mysql',' postgresql', 'sql-server',' oracle' или 'db2' - или что-то еще. –

ответ

0

Если это SQL Server, то лучшим выбором будет SqlBulkCopy (с транзакцией или без нее, как вам нужно); для источника вы можете либо загрузить все данные из файла в DataTable, или, в некоторых случаях вы можете создать небуферизованный IDataReader, который по мере необходимости передает данные через файл. Подход IDataReader является более эффективным и быстрым, но более сложным, если для ваших входных данных уже существует удобная реализация IDataReader (например, CsvReader для данных с разделителями). Подход DataTable требует, чтобы все данные сначала буферизовались в памяти, а медленнее, но часто более удобны.

+0

В качестве примечания: одна вещь, которую следует иметь в виду с массовой копией: Если одна из строк не может быть вставлена, например, из-за проблемы с дублирующимся ключом, вся вставка отменяется. – Thomas

+0

Я делаю это с помощью public MYTYPE [] res {get; задавать; } FileHelperEngine engine = новый FileHelperEngine (typeof (MYTYPE)); а затем res = engine.ReadFile (имя_файла) как MYTYPE []; , а затем с помощью 'res' Я буду читать строки за строкой и вставить. Можете ли вы помочь мне написать его? – laila