校对.每行CSV



CSVHelper和FileHelper不是选项

我有一个.csv导出,我需要检查其结构的一致性,如下面的

参考、日期、条目ID

2015年9月23日星期三

2015年9月23日星期四

XYZ987/2015/09125

QWE456,2016年9月8日,126

我可以使用ReadLineRealAllLines.Split,它们给我整个行/列,但我需要选择每一行,然后遍历每个属性(用","分隔(进行格式检查

我在这里遇到了问题。我不能单独列出一行中的每个值进行此检查。它可能是上简单的东西

 class Program
{
    static void Main(string[] args)
    {
        string csvFile = @"proof.csv";
        string[] lines = File.ReadAllLines(csvFile);

        var values = lines.Skip(1).Select(l => new { FirstRow = l.Split('n').First(), Values = l.Split('n').Select(v => int.Parse(v)) });
        foreach (var value in values)
        {
            Console.WriteLine(string.Format("{0}", value.FirstRow));
        }
    }
}

或者我走错了路,我的搜索涉及拉特定的行或列(而不是检查相关的单个值(

上面的数据样本有一个突出显示的例子:日期是明年,我希望能够证明这个值(只是一个例子,因为它可能在出现错误的任何一列中(

我不能单独列出一行中的每个值

那是因为你在n上分了两次。一行中的值用逗号(,(分隔。

我不确定LINQ应该做什么,但就这么简单:

string[] lines = File.ReadAllLines(csvFile);
foreach (var line in lines.Skip(1))
{
    var values = line.Split(',');
    // access values[0], values[1] ...
}

不是将其作为文本读取,而是由OLEDB对象读取,因此CSV文件的数据将出现在数据表中,您不需要吐出它。

要读取csv文件,您可以使用OLEDB 的这些对象

System.Data.OleDb.OleDbCommand 
System.Data.OleDb.OleDbDataAdapter
System.Data.OleDb.OleDbConnection

System.Data.DataTable

相关内容

  • 没有找到相关文章

最新更新