1

我有一个 CSV 文件,我想作为 datagridview 的数据源,但在列标题之前有 3 条随机行,它们不需要并且会影响表格

例如:

Username: 01   
Date: 04/02/13   
*blank*            
Source, file, date, time

我用来获取 CSV 并将其用作 datagridview 的代码:

{
   string conStr = @"Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" + Path.GetDirectoryName(Path.GetFullPath(path)) + ";Extensions=csv,txt";
   OdbcConnection conn = new OdbcConnection(conStr);

   OdbcDataAdapter da = new OdbcDataAdapter("Select * from [" + Path.GetFileName(path) + "]", conn);
   DataTable dt = new DataTable(path);
   da.Fill(dt);

   dataGridView1.DataSource = dt;

   da.Dispose();
   conn.Close();
   conn.Dispose();
}

所以基本上,我需要阅读表格的所有 CSV,但删除文本的前 3 行。有没有办法作为查询来做到这一点?

4

2 回答 2

2

您可以将.NET txtReader 用于文本文件

它支持以下可能对您有用的连接字符串选项

  • 跳过行
  • 有标题
  • 忽略空行

这是一个示例连接字符串:

 Data Source='C:\MyFolder';Delimiter=',';Has Quotes=True;Skip Rows=0;Has Header=True;
 Comment Prefix='';Column Type=String,String,String,Int32,Boolean,String,String;
 Trim Spaces=False;Ignore Empty Lines=True;
于 2013-04-03T00:51:19.510 回答
0

在填充数据表之后并将其分配给 gridview 的数据源之前插入以下行:

 dt.Rows[0].Delete();
 dt.Rows[1].Delete();
 dt.Rows[2].Delete();
 dt.AcceptChanges();
于 2013-04-02T16:35:56.450 回答