将DataSet保存到CSV文件的最佳方法

时间:2012-01-10 20:28:39

标签: c# sql dataset

我有一些SQL查询需要将结果写入CSV文件。

我目前正在将结果存储在DataSet中。

将每个表(使用用户定义的文件名)保存为自己的CSV文件的最佳方法是什么?

我正在使用C#。

4 个答案:

答案 0 :(得分:3)

您可以将数据集转换为CSV文件,如下所示:

代码段:

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");
}

希望这有帮助! 干杯!

答案 1 :(得分:1)

我需要导出到CSV时随时使用http://www.filehelpers.com

答案 2 :(得分:0)

SQL Server可以自己导出到csv,看看

http://sqlserverpedia.com/blog/sql-server-2005/how-can-i-export-data-to-csv-format-in-sql-server-2005/

编辑:这个解决方案对于需要在csv中转义的字符不是很宽容,花了几分钟来编写破解测试。换句话说,请谨慎使用。

答案 3 :(得分:0)

您可以遍历数据集(表,行,字段)

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());
        }