1

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

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

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

4

4 回答 4

2

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

于 2011-11-24T21:34:45.803 回答
1

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

于 2011-11-24T21:31:57.940 回答
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]
于 2013-04-08T06:14:32.493 回答
0

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

于 2011-11-24T21:32:41.560 回答