2016-06-09 6 views
2

두 프로그램은 서로 관련이 없지만 Excel 파일에서 행을 읽는 방법은 동일합니다.읽기를 시도하는 두 프로그램이 하나의 Excel에서 성공 하나의 코드에서 오류가 발생했습니다.

프로그램 1

public DataTable GetExcelInfo(string filepath) 
    { 
     DataTable datatab = new DataTable(); 
     try 
     { 
      string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filepath + ";Excel 8.0;IMEX=1;HDR=NO;TypeGuessRows=1;ImportMixedTypes=Text\\"; 
      using (OleDbConnection conn = new OleDbConnection(connectionString)) 
      { 
       conn.Open(); 
       OleDbCommand cmd = new OleDbCommand("SELECT Format([F1], \"#\"), Format([F2], \"#\"), Format([F3], \"#\") FROM [Sheet1$]", conn); 
       OleDbDataReader reader = cmd.ExecuteReader(); 
       while (reader.Read()) 
       { 
        string[] values = new string[3];       
        values[0] = reader.GetString(0); 
        values[1] = reader.GetString(1); 
        values[2] = reader.GetString(2); 

        DataRow dr = datatab.NewRow(); 
        dr.ItemArray = values; 
        datatab.Rows.InsertAt(dr, i); 
        i++; 
       } 
      } 
     } 
    } 

프로그램이

private static DataTable GetInvoiceItems(string filepath) 
{ 
     DataTable dt = new DataTable(); 
     string excelConString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filepath + ";Excel=8.0;IMEX=1;HDR=NO;TypeGuessRows=1;ImportMixedTypes=Text\\"; 
     using (OleDbConnection conn = new OleDbConnection(excelConString)) 
     { 
      OleDbDataAdapter ada = new OleDbDataAdapter("SELECT [F1], [F2], [F3], [F4], [F5] FROM [Sheet1$]", conn); 
      conn.Open(); 
      ada.Fill(dt); 
     } 
     return dt; 
} 

이제 이상한 점은 두 번째 프로그램이 더 설치할 수 없다라는 오류를 느끼는 동안 첫 번째 프로그램은 완벽하게 동일한 PC에서 실행되는 작품입니다 PC에 ISAM. 어떤 제안?

+0

bin 디렉토리에 DLL이 있습니까? Msexcl ##. dll, 또는 Mspdbe ##. dll과 같은 M으로 시작하는 이름이있을 수 있습니다. 하나가 있고 다른 하나는 그렇지 않으면 복사를 시도합니다. – Dispersia

답변

7

당신의 주장에도 불구하고 그들은 둘 다 똑같습니다. 1

"... Excel 8.0;IMEX=1;HDR=NO;TypeGuessRows=1;ImportMixedTypes=Text\\" 

프로그램

프로그램 ... 연결 문자열에서 봐 2

"... Excel=8.0;IMEX=1;HDR=NO;TypeGuessRows=1;ImportMixedTypes=Text\\" 

프로그램 2에 Excel 8.0에는 =이 없어야합니다

+0

나는 바보 같은 느낌이 든다. .... 지적 해 주셔서 고맙습니다. –