1

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

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

我知道第一步很容易做到,我正在努力寻找第二步和第三步的方法。

4

2 回答 2

4

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

下面的示例对 DataTable 执行此操作:

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

于 2013-05-06T13:25:22.423 回答
0

我想出了一个简单有效的方法来做到这一点:

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

对于前两个步骤,我使用了Dapper.NET,它负责数据库部分和格式化。 Dapper 帮助将 SQL 结果转换为LIST我满足文件规范的结果。

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

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

希望它会帮助某人。

于 2013-09-25T04:00:23.913 回答