.CSV в таблицу SQL CE? - PullRequest
       36

.CSV в таблицу SQL CE?

5 голосов
/ 15 июня 2011

Есть ли способ быстро импортировать данные из CSV-файла или таблицы с выделенным символом TXT в таблицу SQL Compact Edition 3.5?

У меня большой объем данных, которые нецелесообразно вводить вручную.

Я знаю, что могу использовать функцию BULK INSERT, если хочу импортировать в базу данных SQL на основе сервера, но этот метод не работает в SQL CE.

Я использую Visual Studio 2010, и у меня установлена ​​SQL Server Management Studio.

Любая помощь будет оценена!

Ответы [ 5 ]

5 голосов
/ 15 июня 2011

Вы можете использовать мою надстройку VS, которая генерирует операторы INSERT на основе файла CSV: http://sqlcetoolbox.codeplex.com

2 голосов
/ 15 июня 2011

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

var stuff = from l in File.ReadLines(filename)
            let x = l.Split(new [] {',', ' '}, StringSplitOptions.RemoveEmptyEntries)
                     .Skip(1)
                     .Select(s => int.Parse(s))
            select new
            {
                Sum = x.Sum(),
                Average = x.Average()
            };

см .: Считайте CSV, используя LINQ

1 голос
/ 15 июня 2011

Мой инструмент выбора при работе с csv - powershell, поскольку в него встроена команда import-csv. Это фантастический клей для такого рода вещей.

Вот ссылка, по которой разработчик импортирует csv и конвертируетэто к скрипту вставки.http://allen -mack.blogspot.com / 2008/02 / powershell-convert-csv-to-sql-insert.html

Запуск сценария по ссылке (примечание: powershellдает вам завершение табуляции, чтобы вы могли использовать его, чтобы помочь с путями к файлам во время ввода):

  1. Создайте файл с именем что-то вроде Import-File.ps1 и скопируйте содержимое скрипта по ссылкев нее.
  2. Запустите powershell
  3. Введите 'set-executepolicy remotesigned' (примечание: это немного ослабляет безопасность вашей системы; но настройки по умолчанию не позволят вам запускать какие-либо сценарии)
  4. Перейдите в каталог с вашим скриптом и файлом импорта
  5. Тип '. \ Import-file.ps1. \ Importfile.csv'
  6. Нажмите ввод;Вуаля, у вас должен быть SQL-скрипт вставки в том же каталоге (то есть, 'importfile.sql' в нашем случае)

Наконец, поскольку вы можете создавать экземпляры .net объектов из PowerShell, вы можете изменитьсценарий и делать ряд вещей, таких как вставка данных непосредственно в базу данных.

1 голос
/ 15 июня 2011

Нет прямого способа сделать это, вам придется читать каждую строку в файле и вставлять одну за другой в SQLCE. До этого там было несколько сообщений, люди, использующие программу C # для чтения файла в DataTable. Если вы знаете C #, его довольно просто установить и запустить.

Массовая вставка из DataTable в SQLCE DataSource

http://ruudvanderlinden.com/2010/10/13/bulk-insert-into-sql-ce-in-c/

Упс только что заметил, что c # является одним из тегов в вашем вопросе: D

1 голос
/ 15 июня 2011

Если у вас есть Microsoft Access, вы можете импортировать данные .csv или .txt с разделителями в виде новой таблицы, а затем увеличивать их размер до базы данных SQL.Также вы можете создать связанную таблицу и скопировать и вставить данные (скажем, из Microsoft Excel), и она будет эффективной и надежной (выбрасывая ошибки в отдельную таблицу, которую вы можете просмотреть).

...