Импортировать плоский файл на сервер SQL с помощью C # - PullRequest
1 голос
/ 25 ноября 2011

Я хочу создать программу на C #, которая импортирует файлы двух типов в SQL Server: столбцы с разделителями и фиксированные столбцы.На самом деле, мне нужно загружать файл каждый день и импортировать этот файл в свою базу данных.Я мог бы сделать консольное приложение с пакетным скриптом.Я видел несколько примеров, таких как this , но я не знаю, является ли это лучшим объектно-ориентированным способом сделать это.

Я мог бы использовать StreamReader, Regex и т. Д., но я не хочу заново изобретать колесо.

PS: в VBA я использовал "QueryTables.Add".

Ответы [ 4 ]

2 голосов
/ 25 ноября 2011

Вы можете импортировать полностью управляемый код через SqlBulkCopy ;все, что вам нужно сделать, это передать SqlBulkCopy IDataReader, который обрабатывает TSV.К счастью, FastCsvReader на codeproject может сделать именно это.

1 голос
/ 25 ноября 2011

Если вы не хотите заново изобретать колесо, вам следует взглянуть на встроенные средства, которые SQL Server предоставляет для этого, а именно bcp . Здесь - список часто задаваемых вопросов о bcp.

0 голосов
/ 08 апреля 2013
bulk insert [dbo].[CoursesTemp]

из 'C: \ Users \ Public \ Downloads \ Courses.csv'

with (fieldterminator = ',', rowterminator = '\n')
go
insert [dbo].[Courses]
  (code, description, instructor, date, venue, duration)
select 
   code, description, instructor, cast(date as date), venue,
   duration
from [dbo].[CoursesTemp]
0 голосов
/ 25 ноября 2011

Похоже, идеальная работа для служб интеграции SQL Server (SSIS).Вы можете легко определить задачу импорта данных в SSIS, а затем запланировать ее выполнение с помощью задания SQL.

...