2013-04-02 2 views
1

У меня есть файл CSV, который я хочу быть источником данных для datagridview, но перед заголовками столбцов есть 3 случайные строки, которые не нужны и не влияют на таблицуИспользование CSV в качестве источника данных для datagridview в C#

Например:

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 для таблицы , но del ete первые 3 строки текста. Есть ли способ сделать это как запрос?

+0

Вы упомянули заголовки столбцов так dt.Rows.RemoveAt (индекс) не будет работать для вас. Вы должны прочитать этот файл, удалить первые 3 строки и сохранить его как новый файл (если у вас есть разрешения), а затем прочитать данные из нового файла. – Kashif

+0

Правильно, Kashif, удаление строк будет работать, если бы не заголовки столбцов на 4-й строке –

ответ

0

Вставьте следующие строки после того, как вы заполните DataTable и прежде, чем назначить его источник данных вашего GridView в:

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

Как насчет имен столбцов таблицы данных? – Kashif

+0

Это будет работать, чтобы избавиться от нежелательных строк, но имена столбцов таблицы находятся на 4-й строке, а затем удаленные строки не решают проблему заголовков столбцов. Разве они не добавляются вручную перед началом работы? –

2

Вы могли бы использовать .NET txtReader for Text files

Он поддерживает следующие варианты ConnectionString, которые могут пригодиться для вы

  • Пропустить Ряды
  • имеет заголовок
  • Игнорировать пустые строки

Вот строка Пример подключения:

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; 
Смежные вопросы