C# 读取tsv文件时,Datatable不显示行

C# 读取tsv文件时,Datatable不显示行,c#,datatable,C#,Datatable,我正在读取.tsv文件,该文件大约有3500列和1000行,当我将行添加到数据表中时,行成功添加到数据表中,我看到datatable.rows.Count正在增加,但数据表没有显示任何数据。我参考了各种文章,仍然看到相同的问题,任何建议都会对我有所帮助 static void Main(string[] args) { DataTable datatable = new DataTable(); StreamReader streamreader = ne

我正在读取.tsv文件,该文件大约有3500列和1000行,当我将行添加到数据表中时,行成功添加到数据表中,我看到datatable.rows.Count正在增加,但数据表没有显示任何数据。我参考了各种文章,仍然看到相同的问题,任何建议都会对我有所帮助

static void Main(string[] args)
    {
        DataTable datatable = new DataTable();
        StreamReader streamreader = new StreamReader(@"C:\Users\Latest PM File.tsv");
        char[] delimiter = new char[] { '\t' };
        string[] columnheaders = streamreader.ReadLine().Split(delimiter);
        foreach (string columnheader in columnheaders)
        {
            datatable.Columns.Add(columnheader); // I've added the column headers here.
        }

        while (streamreader.Peek() > 0)
        {
            DataRow datarow = datatable.NewRow();
            datarow.ItemArray = streamreader.ReadLine().Split(delimiter);
            datatable.Rows.Add(datarow);
        }
}

如果有帮助的话,我无法重现您的问题:

此简化版本也不会将第一行视为标题:

下面是我使用的稍微简单一点的代码:

class Program
{
    static void Main(string[] args)
    {
        DataTable dt = new DataTable();
        for (int i = 0; i < 3; i++)
            dt.Columns.Add("col" + i);

        foreach (var line in File.ReadAllLines(@"C:\temp\a.tsv"))
            dt.Rows.Add(line.Split('\t'));

        int c = dt.Rows.Count; //not necessary, just makes for an easy place to put a breakpoint
    }
}
您应该可以看到数组呈现为文本:

如果是,请继续编码;datatable包含数据—只是由于某种原因,可视化工具没有显示它


聚苯乙烯;我通过指向datatable进入可视化工具,然后单击工具提示中的放大镜,以回应您对我的另一个答案的评论:

您的TSV包含5735列。我的数据集可视化工具停止崩溃??在655列之后。数据在那里;可以在即时窗口中看到:

此屏幕截图上的注释:

某些列标题相同,导致列已属于表错误。我在名称的末尾添加了一个递增的数字来解析这个突出显示的黄色hdr变量 您可以在可视化工具的第四个剪报中看到,它已到达第655 0-654列并崩溃/停止 以及进一步的观察:


您发布的测试文件似乎包含的数据不超过57列。如果整个文件都是这样,则可能需要进行一些数据修复。正如所观察到的,列标题列表包含重复项;如果数据被破坏成对角表示,则为应位于现有列中的数据添加新列,您可能需要付出更多努力,将其恢复到最小列数。一个拥有近6000列的数据表将是一个非常麻烦的查询问题

您是否尝试过用更少的行数来检查它是否有效?您所说的数据表不显示任何数据是什么意思?它是否绑定到某个不显示任何数据的UI?尝试使用较少的行,但没有luck@PriyankPanchal@Rex添加了一段datatable@Venkat,不确定如何使用DS visualizer进行;但是,如果只是出于调试目的,您可能只想动态地将dataTable/dataset写入xml文件,以查看内容是否存在。通常,当您正忙于插入内存中的对象时,如果您使用任何类型的visual insepctor,您可能看不到任何东西,因为UI绑定在大多数情况下不会自动刷新。所以我建议您尝试不同的方法来检查内容,这就是为什么我建议您尝试将内容保存到xml…该测试文件包含重复的列名称。它引发了一个异常,其中questionDataset visualizer使用DataGridView控件中发布的代码有其局限性。
?datatable.Rows[0].ItemArray