从数据库中获取数据并将其导出到.csv文件

时间:2013-05-06 13:12:25

标签: c# .net ado.net

我正在尝试从数据库中获取数据并将其导出为.csv文件格式,类似于ETL process。但我想在C#中这样做。

  1. SQL Query从数据库中获取数据。
  2. 将数据格式化为指定的文件规范。
  3. 将其转换为.csv文件。
  4. 我知道第一步很容易做到,我很难找到第二步和第三步的方法。

2 个答案:

答案 0 :(得分:4)

我无法对文件规范发表评论,因为您没有对其进行描述,但编写CSV文件非常简单。与XML等不同,格式非常简单,您可以使用WriteLine直接写入StreamWriter。您所需要的只是输出包含用逗号分隔的列名的第一行,然后对于从SQL查询返回的每一行,以逗号分隔的相同顺序写入列值。唯一真正的问题是逃避,例如处理逗号,引号等,用引号括起每个值并转义值中的任何引号。

以下示例仅针对DataTable:

http://dotnetguts.blogspot.co.nz/2007/01/exporting-datatable-to-csv-file-format.html

答案 1 :(得分:0)

我想出了一种简单而有效的方法:

1.SQL查询从数据库中获取数据  2.将数据格式化为指定的文件规范。

  

对于前两个步骤,我使用了 Dapper.NET   负责数据库部分以及格式化。 Dapper帮助将SQL结果转换为LIST,通过该结果我实现了文件规范

3.将其转换为.csv文件。

  

为了将SQL结果转换为CSV文件,我使用了FileHelpers Library,这比我预期的要简单。

希望它会对某人有所帮助。