导入到Datatable C#时,验证CSV文件中的标头

很快,我正在尝试将csv文件导入datatable。 我正在添加像这样的列

DataTable data = new DataTable();

data.Columns.Add("ID",typeof(string));
data.Columns.Add("Name",typeof(string)).MaxLength = 150;
data.Columns.Add("Last name",typeof(string));

然后:

using (var reader = new StreamReader(file.InputStream))
{

    DataRow row;

    var headers = reader.ReadLine();

    while (!reader.EndOfStream)
    {
        string line = reader.ReadLine();
        string[] value = line.Split(',');



        if (value.Length == data.Columns.Count)
        {
            row = data.NewRow();

            row.setfield(0,ParseInt(value[0]));
            row.setfield(1,value[1]);
            row.setfield(2,value[2]);



//and so on 
}

如果硬编码的标头与导入的文件相同,请提供一种有助于验证标头的方法吗? PS对长度的验证效果不好。有时,如果CSV中的最后一列为空,则不计算最后一列。

jiangxue2913 回答:导入到Datatable C#时,验证CSV文件中的标头

在阅读第一行之后,难道不能只是对标题进行拆分,然后循环查找标题的长度并使用相应的datatable列标题检查标题值吗?

如果由于最后一列为空而文件头较少,则可以,因为没有任何数据要添加到数据表的该列中,所以很好,但是像这样检查应确保该行中的值数据文件将进入数据表中名称与标题匹配的列。

本文链接:https://www.f2er.com/3127508.html

大家都在问