2013-08-20 2 views
2

Эй, поэтому я использую драйвер OleDB для запроса файла CSV, а затем загружаю его в datatable. Независимо от того, что я делаю, он всегда пропускает первую строку. Вот что я получил:Заполнение DataTable и Losing First Row

string connStr = @"Driver={Microsoft Text Driver (*.txt; *.csv)};" + 
      "Dbq=C:/test;Extensions=csv,txt"; 


OdbcConnection objCSV = new OdbcConnection(connStr); 
objCSV.Open(); 

OdbcCommand testCmd = new OdbcCommand("Select * from test.csv", objCSV); 

OdbcDataAdapter testDA = new OdbcDataAdapter(testCmd); 

DataTable testDT = new DataTable(); 

testDA.Fill(testDT); 

Так, глядя на некоторых выборочных данных, как это:

"IDX", "FirstName", "LastName", "Email" 
"340", "John", "Smith", "[email protected]" 
"341", "Johnny", "Smithee", "[email protected]" 

Я всегда только получаю 1 запись, проиграв первый, независимо от того, сколько записей находятся там. Есть идеи?

ответ

3

Попробуйте сказать провайдер, что есть строка заголовка, например:

string connStr = @"Driver={Microsoft Text Driver (*.txt; *.csv)};" + 
     "HDR=Yes;Dbq=C:/test;Extensions=csv,txt"; 
+0

Спасибо, я действительно узнал, что моя проблема была с Неверным форматом данными в формате CSV, я сцепляюсь заголовки для моего вопроса, но окончательный заголовок был пропуская конечную цитату, чтобы все это прочь. Тем не менее я не знал о HDR, и это действительно полезно для меня, так спасибо! – KJ3