【问题标题】:Export SQL Server Data into CSV file on desktop data contain commas将 SQL Server 数据导出到桌面数据上的 CSV 文件中包含逗号
【发布时间】:2020-07-20 10:18:04
【问题描述】:

我正在尝试将数据从 SQL 服务器导出到 CSV 文件。此链接 (Export SQL Server Data into CSV file) 中的代码正在与一些例外一起使用。在某些包含逗号的行中,表格排列不正确。我尝试过的代码

using (var connection = ConnectionToSqlServer.GetConnection())
{
    connection.Open();

    SqlCommand sqlCmd = new SqlCommand("Select * from  dbo.Test", connection);
    SqlDataReader reader = sqlCmd.ExecuteReader();

    string fileName = "test.csv";
    StreamWriter sw = new StreamWriter(fileName);
    object[] output = new object[reader.FieldCount];

    for (int i = 0; i < reader.FieldCount; i++)
    {
         for (int i = 0; i < reader.FieldCount; i++)
         {

           if (reader.GetName(i).Contains(","))
           {
              output[i] = "\"" + reader.GetName(i) + "\"";
            }
            else
            output[i] = reader.GetName(i);
           }
    }

    sw.WriteLine(string.Join(",", output));

    while (reader.Read())
    {
        reader.GetValues(output);
        sw.WriteLine(string.Join(",", output));
    }

    sw.Close();
    reader.Close();
    connection.Close();
}

【问题讨论】:

  • 可能是因为数据中包含逗号。尝试引用这些值。

标签: c# sql sql-server excel


【解决方案1】:

我建议您考虑以下选项:

  1. 引用这些值,以生成正确的 CSV。如果 CSV 内容中包含 ,,则生成的 CSV 可能有问题。
while (reader.Read())
{
    reader.GetValues(output);
    sw.WriteLine(string.Join(",", $"\"{output}\""));
}
  1. 你可以考虑使用像CSVHelper这样的库

【讨论】:

    猜你喜欢
    • 2021-01-24
    • 2012-03-22
    • 1970-01-01
    • 2023-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多