使用C#将平面文件导入SQL Server

时间:2011-11-24 21:21:51

标签: c# sql-server file-import

我想在C#中创建一个程序,将两种类型的文件导入SQL Server:制表符分隔和固定列。实际上,我需要每天下载一个文件并将该文件导入我的数据库。我可以用批处理脚本制作一个控制台应用程序我看到了一些像this这样的例子,但我不知道它是否是最好的面向对象的方法。

我可以使用StreamReaderRegex等等,但我不想重新发明轮子。

PS: 在VBA中,我使用了“QueryTables.Add”。

4 个答案:

答案 0 :(得分:2)

您可以通过SqlBulkCopy导入完全托管代码;您需要做的就是将SqlBulkCopy传递给处理TSV的IDataReader。幸运的是,codeproject上的FastCsvReader可以做到这一点。

答案 1 :(得分:1)

如果您不想重新发明轮子,那么您应该查看SQL Server为此提供的本机工具,即bcpHere是有关bcp的常见问题解答列表。

答案 2 :(得分:0)

对于SQL Server Integration Services(SSIS)来说,这听起来很完美。您可以在SSIS中轻松定义数据导入任务,然后使用SQL作业安排它运行。

答案 3 :(得分:0)

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]