使用c#winforms将大量数据从文本文件导入到sql

时间:2014-03-20 16:08:59

标签: c# sql-server

我想添加将大量CSV文件导入数据库中的表的功能。我已经构建了一个SSIS包,但我只是想确保这是正确的方法。

文本文件是数百万行,包含50列。它们很多时候都没有在记事本或记事本++中打开。 SSIS包处理它们没有问题,并导入所有内容。 SSIS是解决这个问题的正确方法吗?我只需要将文件位置参数传递给作业并执行它吗?我有一种更容易忽视的方式吗?

1 个答案:

答案 0 :(得分:2)

  

文本文件是数百万行,有50列

小。为何选择SSIS包?

  

他们没有在记事本或记事本++中打开

因为它们都打开它们 - 没有必要打开它们并将它们全部加载到内存中,正确的应用程序可以逐行读取它们。

  

SSIS是解决这个问题的正确方法吗?

没有。因为标题是:使用c#winforms

将大量数据从文本文件导入到sql中

由于Winforms可以有效地做到这一点 - 我将大约100.000行插入到数据库中 - 在C#中使用quit eeasy编码(除了一些页面和一天让sqlbulkcopy正常工作)并且你没有说任何转换,SSIS只是是另一种不需要的技术并且使事情变得复杂(如:更多要安装,或者在服务器上有一个包装,但随后找到服务器可以到达的文件的位置等。

我全力以赴SSIS,如果你拥有更大的SSIS基础设施或进行大量处理等,它在更大的背景下具有建筑意义 - 是的。但问题是,没有其他原因 - 绝对不是。

哎呀,由于SQL Server具有一些CSV处理功能,因此很有可能将一个命令中的所有内容加载到SQL服务器中:

http://blog.sqlauthority.com/2008/02/06/sql-server-import-csv-file-into-sql-server-using-bulk-insert-load-comma-delimited-file-into-sql-server/