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