2011-04-12 2 views
2

그래서 내 코드 내 CSV의 첫 번째 행을하고 싶습니다인 OleDB이

String q = "SELECT * FROM "+"test.csv"; 
     try 
     { 
      OleDbConnection cn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\\;Extended Properties=\"Text;HDR=No;FMT=Delimited\""); 
      OleDbDataAdapter da = new OleDbDataAdapter(); 
      DataSet ds = new DataSet(); 
      OleDbCommand cd = new OleDbCommand(q, cn); 
      cn.Open(); 
      da.SelectCommand = cd; 
      ds.Clear(); 
      da.Fill(ds, "CSV"); 
      dataGridView1.DataSource = ds.Tables[0]; 
      cn.Close(); 
      } 
     catch (Exception ex) 
     { 
      MessageBox.Show("There was an issue: " + ex.Message); 
     } 

그러나 모든 벌금과 선한 현재 다음과 같습니다과 필드 이름으로 그것을 사용, 그래서 내가 선택 * 이외의 웹 쇼 아무것도에 대한 모든 예제를 참조 것과, 그러나

"select a.ID, a.SOMETHING_ELSE from test.csv a" 
where the CSV looks something like 
ID,SOMETHING_ELSE,DONT_WANT_THIS 
1,blah,I don't want to see this 

처럼 뭔가를 할 수 있고, 내가 헤더를 보여주기 위해 내 데이터 그리드를 싶습니다 선택한 필드 이름으로 F1, F2 .... 대신

어디서 구현 되었습니까?

+0

다른 사람의 코드를 복사하여 붙여 넣었으므로 HDR에서 아니오 = 아니오 –

답변

1
는 HDR을 포함하는 연결 문자열을 변경

= 예 (대신 HDR = 아니오의) : 인 OleDB를 들어

OleDbConnection cn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\\;Extended Properties=\"Text;HDR=Yes;FMT=Delimited\""); 

, 연결 문자열에 HDR 속성은 첫 번째 행에 열 이름이 포함되어 있는지 여부를 나타냅니다.

+0

감사합니다. 조금 더 검색하면 알았습니다. –