2012-12-12 4 views
0

안녕하세요, 데이터 소스에 대한 연결을 설정하고 정보를 추출하여 표보기로 표시하려고합니다. 문제는 내가 항상 ada에 대해 null 값을 얻는다는 것입니다. 쿼리를 잘못 입력했거나 어댑터에 문제가 있습니까?Im 내 OleDb 연결을 설정하는 데 어려움이 있습니다.

또한 하나 이상의 파일을 처리하기 때문에 다른 데이터 소스를 삽입하기 위해 myInt 변수를 사용하고 있습니다. 아마도 문제가 될 수 있습니다.

try 
      { 
       //establish connectioin 
       OleDbConnection conn = new OleDbConnection(("provider=Microsoft.Jet.OLEDB.4.0; " + ("data source=" + myInt + ";" + "Extended Properties=Excel 8.0;"))); 

       OleDbDataAdapter ada = new OleDbDataAdapter("SELECT * FROM MarkingSheet$]", conn); 

       DataSet ds = new DataSet(); 

       ada.Fill(ds); 
       dataGridView1.DataSource = ds.Tables[0].DefaultView; 

       conn.Close(); 
      } 

답변 는

"SELECT * FROM [MarkingSheet$]" 

누락 된 여는 괄호가 이후

OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + myPath + ";Excel 12.0;HDR=YES;"); ; 
       conn.Open(); 
       OleDbDataAdapter ada = new OleDbDataAdapter("select * from [Marking Sheet$]", conn); ; 
       DataSet ds = new DataSet(); 
       ada.Fill(ds); 

답변

0

변경에 대한 SQL을했다 그게 문제.

+0

하지만 여전히 작동하지 않습니다. –

+0

'null'이란 무엇이며, 'myInt'에는 무엇이 들어 있습니까? (이름은 int를 제안합니다. 물론 작동하지 않는 것은 무엇입니까?) –

+0

실제 Excel 파일에 대한 경로를 수정했습니다. @Tim Schmelter 어댑터에 null 값이 있습니다. –

0

코드의 오류는 어댑터를 채울 때 연결을 열지 않았기 때문입니다. 귀하의 SQL 문도 잘못되었습니다. 당신은 또한 다음과 같이 너무 DataGridView에에 DataTable에 바인딩 할 완 수 -

try 
    { 

     OleDbConnection conn = new OleDbConnection(("provider=Microsoft.Jet.OLEDB.4.0; " + ("data source=" + myInt + ";" + "Extended Properties=Excel 8.0;"))); 

     OleDbDataAdapter ada = new OleDbDataAdapter("SELECT * FROM [MarkingSheet$]", conn); 

     DataSet ds = new DataSet(); 

     conn.Open();    

     ada.Fill(ds.Tables[0]); 

     conn.Close(); 

     BindingSource bs = new BindingSource(); 
     bs.Datasource = ds.Tables[0]; 

     dataGridView1.DataSource = bs; 

     } 
    catch(OledbException x) 
     { 
     // Handle Exception 
     } 

편집 * *

에 연결 문자열을 변경 시도 : - 나는 그것을 수정

string connString = "provider=Microsoft.Jet.OLEDB.4.0;Data source=" + myInt + ";Extended Properties=Excel 8.0;HDR=Yes;IMEX=1\";"; 
+0

아직도 일하지 않을 것이다. conn.Open()에서 중단됩니다. –

+0

내 편집을 참조하십시오. 잘못하면 연결 문자열이 잘못되었습니다. – Derek

관련 문제