找不到名称中的数据表中的数据列

时间:2018-10-12 08:21:31

标签: c# datatable datacolumn

我正在从CSV文件读取,其中第一行是标题行。读取所有列名并将其放入如下表中:

foreach (var item in lines[0].Split(';').Where(s => !string.IsNullOrEmpty(s)))
        {
            table.Columns.Add(item.Trim(), typeof(string));
        }

除我尝试再次从表中读取内容外,其他所有内容均正确无误。 除一列外,大多数列均已读取。

我已经尝试调试和编写此列的消息,但是它没有进入该函数(请参见下图)。 (if语句返回false)

enter image description here

我现在已经尝试了所有事情,包括检查表上的区域设置。

标题行:

document title;DocRef;DocRevNo;DocRevDt;RevisionObject;TransRef;Trans Status;DocOrigin;DocRefClient;RespActualDt;First TransDate;Last Update

编辑:

我发现第一个字节是一个奇怪的...

[0]: 65279 ''
[1]: 100 'd'
[2]: 111 'o'
[3]: 99 'c'
[4]: 117 'u'
[5]: 109 'm'
[6]: 101 'e'
[7]: 110 'n'
[8]: 116 't'
[9]: 32 ' '
[10]: 116 't'
[11]: 105 'i'
[12]: 116 't'
[13]: 108 'l'
[14]: 101 'e'

有人知道如何删除该字节(如果存在)吗?

1 个答案:

答案 0 :(得分:0)

这是解决方案。 该行的开头包含一个隐藏的字符(65279)。通过此功能运行文本,可以解决问题:

    protected string CleanInput(string input)
    {
        var imp = (input ?? "");
        var removeChars = new Char[] { (Char)65279 };
        imp = new String(imp.ToCharArray().Where(c => !removeChars.Contains(c)).ToArray());
        return imp;
    }