如何使用c#windows应用程序读取10GB .csv文件

时间:2015-10-12 06:59:18

标签: c#

我尝试读取10GB .csv文件并导入我们的数据库。但是当我通过数据适配器读取此文件来填充数据集或数据表时,它会给出内存异常。

2 个答案:

答案 0 :(得分:2)

根据SqlDataAdapter类的MSDN文档:

  

表示一组数据命令和数据库连接   用于填充DataSet并更新SQL Server数据库。这个班   不能继承。

如果我们在哪里查看DataSet文档:

  

表示内存中的数据缓存。

因此,这意味着您需要有足够的内存来存储数据集。这个问题没有提供关于文件实际读取方式的详细信息,但为了实现这一点,您需要基本上:

  1. 一次迭代文件1行,不要加载整个文件,比如在内存中作为字符串。您可以使用TextReader阅读。

  2. 然后,您将使用SqlConnection一次一行地写入数据库。

  3. 这应该允许您基本上保留指向数据位置和需要去的位置的指针,因此它减少了您需要存储在内存中的数据量。

答案 1 :(得分:0)

您可以逐行读取文件并导入数据库。要解析CSV,请使用CsvHelper