2012-01-19 3 views
0

데이터 테이블에서 csv 파일을 읽는 중입니다.csv가 데이터 테이블로 읽으면 한 행에 열 이름이 표시됩니다.

여기

OpenFileDialog openFileDialog1 = new OpenFileDialog(); 
openFileDialog1.Filter = "CSV Files|*.csv"; 
openFileDialog1.Title = "Select a CSV File"; 
if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
     { 

      string connString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=Text;", System.IO.Path.GetDirectoryName(openFileDialog1.FileName)); 
      string cmdString = string.Format("SELECT * FROM {0}", System.IO.Path.GetFileName(openFileDialog1.FileName)); 
      OleDbDataAdapter dataAdapter = new OleDbDataAdapter(cmdString, connString); 
      DataTable tbl = new DataTable(); 
      dataAdapter.Fill(tbl); 
      TableBuilder b = new TableBuilder(tbl); 
      List<SingleTable> tablelist = b.TableList; 
     } 

를 읽고 난 비주얼의 데이터 테이블을 보면,이 !과 같은 정보 [대신 로우가되는 첫 번째 행, 열 헤더이다] [1]

은 원래 CSV이

처럼 보인다! [원래 CSV] [2]

DataTable의 첫 번째 RO 변환 왜 누군가가 말해 줄 수 컬럼에 넣으시겠습니까? 첫 번째 행을 보존하기 위해 내가해야 할 일은 무엇입니까?

답변

1

확실하지 않음 귀하의 질문에 뭔가 빠져 있습니다. 그러나 당신은 당신의 연결 문자열을 변경할 수 있습니다 : 첫 번째 행 머리글 행 아니라고 연결을 말할 것이다

string connString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=Text;HDR=No", System.IO.Path.GetDirectoryName(openFileDialog1.FileName)); 

이.

+0

"설치 가능한 ISAM을 찾을 수 없습니다." – Jeff

+0

다음을 확인하십시오 : http://support.microsoft.com/kb/209805. 아니면 최신 버전의 Jet http://support.microsoft.com/kb/239114를 설치해야합니다. – gabsferreira

1

시도는 파일이

Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=Text;HDR=no; 

을 더 헤더가없는 OLEDB 제공자에게 또는이 SO-대답 좀보고 : 이것은 당신이 보인다 원인이 필요한 경우 https://stackoverflow.com/a/4598862/284240

+0

"설치 가능한 ISAM을 찾을 수 없습니다." – Jeff

0

일반적으로 데이터에 여분의 ","가 삽입되어 있으면 모든 쉼표가 별도의 열로 처리됩니다. 내가이 일을 수행 할 때 발생했습니다. 열 데이터를 확인해야만했습니다. 필드 오프셋 .. 또한 거기에 헤더를 만들고 있습니다 ..?

관련 문제