c# - 如何从具有多个表的数据集中生成多个 csv 文件

标签 c# csv io dataset filestream

我想从 Dataset 生成多个不同的 .csv 文件(里面有很多表)

我试过如下但不知道生成不同 csv 的代码。

 public string GenerateCSVfiles(List<DataSet> dataSets)
        {
               //create csv file
            foreach (DataRow row in dataTable.Rows)
            {
                for (int i = 0; i < dataTable.Columns.Count; i++)
                {
                    result.Append(row[i].ToString());
                    result.Append(i == dataTable.Columns.Count - 1 ? "\n" : ",");
                }
            }

            return result.ToString();

            }

            //return Files in .zip;
        }

最佳答案

试试这个代码:csv 文件名是使用数据表名称生成的:

public void GenerateCSVfiles(DataSet dataSets)
{
    //create csv file
    StreamWriter sw = null;
    StringBuilder sb = new StringBuilder();
    foreach (DataTable dataTable in dataSets.Tables)
    {
        sw = new StreamWriter(string.Format(@"C:\Temp\{0}.csv", dataTable.TableName));

        for (int i = 0; i < dataTable.Rows.Count; i++)
        {
            sb.Clear();

            for (int j = 0; j < dataTable.Columns.Count; j++)
            {
                sb.Append(dataTable.Rows[i][j]);
                if (j != (dataTable.Columns.Count - 1)) sb.Append(",");
            }
            sw.WriteLine(sb.ToString());
        }
        sw.Close();
    }
}

关于c# - 如何从具有多个表的数据集中生成多个 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24568999/

相关文章:

regex - Go中的http Get请求(获取几行)

c# - 如何使用 XElement 在 C# 中使用 List 序列化对象?

c# - WebClient 超时花费的时间比预期的要长(使用 : Rx, Try Catch,任务)

char * 或 char ** 可以伪装成 FILE * 吗?

c# - 更改 HttpPostedFileBase.SaveAs 目标目录

csv - 是否可以在 csv 中包含列名,并在 Snowflake 中将其复制到语句中?

c# - Autofac 和通用类型工厂,如 CaSTLe Windsor

c# - 获取 System.Drawing.Font 宽度?

python - Pandas 按组聚合排序并计算两列的总和

python - 在 Python 中使用 xlrd 将数字 Excel 数据读取为文本