从文本文件中填充数据表

Dja*_*ama 4 c# datatable file

我有这个代码块读取文本文件[Tab分隔]并返回一个数据表.但问题是它将文件或记录的第一行视为标题,并将剩余的行显示为记录,减去记录的数量 - 1所以现在我希望代码将文件的所有内容读作记录.

这是代码:

streamReader reader = new streamReader (filePath);
string line = reader.readLine();
Datatable dt = new Datatable ();
DataRow row;
string[] value = line.Split('\t');

foreach(string dc in value)
{
 dt.columns.add(New DataColumn(dc));
}

while(!reader.endofStream)
 {
  value = reader.ReadLine().split('\t');

  if (value.Length == dt.Columns.Count)
 {
  row = dt.NewRow();
  row.ItemArray = value;
  dt.Rows.Add(row);
 }

 }

 return dt;
Run Code Online (Sandbox Code Playgroud)

当我试图删除

foreach(string dc in value)
{
 dt.columns.add(New DataColumn(dc));
}
Run Code Online (Sandbox Code Playgroud)

和所有依赖它的行代码,dt什么都不返回.

我怎么解决呢?

Tim*_*ter 5

如果你知道那里没有标题,我认为你不知道列的名称,不是吗?然后,您需要添加"匿名"列:

DataTable dt = new DataTable();
while (reader.Peek() >= 0)
{
    string line = reader.ReadLine();
    string[] fields = line.Split('\t');
    if (dt.Columns.Count == 0)
    {
        foreach (string field in fields)
        {
            // will add default names like "Column1", "Column2", and so on
            dt.Columns.Add(); 
        }
    }
    dt.Rows.Add(fields);
}
Run Code Online (Sandbox Code Playgroud)