【问题标题】:Best way to save DataSet to a CSV file将数据集保存到 CSV 文件的最佳方法
【发布时间】:2012-02-07 06:22:19
【问题描述】:

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

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

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

我正在使用 C#。

【问题讨论】:

标签: c# sql dataset


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    您可以将数据集转换为 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");
    }
    

    希望这会有所帮助! 干杯!

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

      • 如果他使用 sql server 2008 R2 为例,这也会帮助他吗?
      • 工作于 2008 年(非 R2),但它对于需要在 CSV 中转义的字符很狡猾。更新了答案以反映这一点。
      【解决方案4】:

      每当我需要导出为 CSV 时,我都会使用 http://www.filehelpers.com

      【讨论】:

        猜你喜欢
        • 2019-04-12
        • 2014-07-12
        • 2012-06-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多