我想在C#中创建一个程序,将两种类型的文件导入SQL Server:制表符分隔和固定列。实际上,我需要每天下载一个文件并将该文件导入我的数据库。我可以用批处理脚本制作一个控制台应用程序我看到了一些像this这样的例子,但我不知道它是否是最好的面向对象的方法。
我可以使用StreamReader
,Regex
等等,但我不想重新发明轮子。
PS: 在VBA中,我使用了“QueryTables.Add”。
答案 0 :(得分:2)
您可以通过SqlBulkCopy导入完全托管代码;您需要做的就是将SqlBulkCopy传递给处理TSV的IDataReader。幸运的是,codeproject上的FastCsvReader可以做到这一点。
答案 1 :(得分:1)
答案 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]