在将其数据导出到数据库表时,从csv单元中转出逗号

问题描述 投票:0回答:1

我有一个csv文件,其中有一个包含逗号的字段。例如,在“办公地点”列下,我的值​​为xyz,即建筑物。当我通过调试器检查该值时,它仅显示“ \” xyz”。我尝试使用Replace(",","")Replace("\"","")来转义逗号和反斜杠,但失败了。另外,我在结果中得到了额外的\用红色圆圈标记。

我在调试时附加了图像,显示了csv行的结构。问题出在红色圆圈区域。

enter image description here

我也尝试过以下功能:

public static string RemoveColumnDelimitersInsideValues(string input)
    {

        const char valueDelimiter = '"';
        const char columnDelimiter = ',';

        StringBuilder output = new StringBuilder();

        bool isInsideValue = false;
        for (var i = 0; i < input.Length; i++)
        {
            var currentChar = input[i];

            if (currentChar == valueDelimiter)
            {
                isInsideValue = !isInsideValue;
                output.Append(currentChar);
                continue;
            }

            if (currentChar != columnDelimiter || !isInsideValue)
            {
                output.Append(currentChar);
            }

        }
        return output.ToString();
    }

请帮助解决问题。谢谢

c# .net csv datatable delimiter
1个回答
0
投票

您看到的\字符不在实际字符串中,只是在调试器视图中添加的转义字符。

单击放大镜以获取字符串的实际值。

enter image description here

希望有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.