使用CSV作为c#中数据网格视图的数据源

时间:2013-04-02 16:21:36

标签: c# csv datagridview datatable

我有一个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行。有没有办法将此作为查询?

2 个答案:

答案 0 :(得分:2)

您可以使用.NET txtReader for Text files

它支持以下可能派上用场的connectionstring选项

  • Skip Rows
  • 有标题
  • 忽略空行

以下是一个示例连接字符串:

 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;

答案 1 :(得分:0)

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

 dt.Rows[0].Delete();
 dt.Rows[1].Delete();
 dt.Rows[2].Delete();
 dt.AcceptChanges();