【发布时间】:2012-02-07 06:22:19
【问题描述】:
我有一些 SQL 查询需要将结果写入 CSV 文件。
我目前将结果存储在 DataSet 中。
将每个表(使用用户定义的文件名)保存为自己的 CSV 文件的最佳方法是什么?
我正在使用 C#。
【问题讨论】:
-
另外看看 Stackoverflow 的问题:stackoverflow.com/questions/888181/…
我有一些 SQL 查询需要将结果写入 CSV 文件。
我目前将结果存储在 DataSet 中。
将每个表(使用用户定义的文件名)保存为自己的 CSV 文件的最佳方法是什么?
我正在使用 C#。
【问题讨论】:
您可以遍历数据集(表、行、字段)
C# 示例:
StringBuilder str = new StringBuilder();
foreach (DataTable dt in tempDataDS.Tables)
{
foreach (DataRow item in dt.Rows)
{
foreach (object field in item.ItemArray)
{
str.Append(field.ToString() + ",");
}
str.Replace(",", Environment.NewLine, str.Length - 1, 1);
}
}
try
{
File.AppendAllText("C:\\temp\\tempData.csv", str.ToString(), Encoding.UTF8);
}
catch (Exception ex)
{
Console.WriteLine("Error while writing content to csv file. \nException details: {0}", ex.ToString());
}
【讨论】:
您可以将数据集转换为 CSV 文件,如下所示:
代码sn-p:
StringBuilder str = new StringBuilder();
foreach (DataRow dr in this.NorthwindDataSet.Customers)
{
foreach (object field in dr.ItemArray)
{
str.Append(field.ToString + ",");
}
str.Replace(",", vbNewLine, str.Length - 1, 1);
}
try
{
My.Computer.FileSystem.WriteAllText("C:\\temp\\testcsv.csv", str.ToString, false);
}
catch (Exception ex)
{
MessageBox.Show("Write Error");
}
希望这会有所帮助! 干杯!
【讨论】:
SQL Server可以自己导出为csv,看看
编辑:这个解决方案对需要在 csv 中转义的字符不是很宽容,花了几分钟来编写一个破坏测试。换句话说,请谨慎使用。
【讨论】:
每当我需要导出为 CSV 时,我都会使用 http://www.filehelpers.com。
【讨论】: