2012-06-08 20 views
1

我正在創建一個C#程序,我可以在C#中瀏覽並查看該文件到datagridview中。我已經測試了很多次,它運行良好。但昨天,當我試圖再次做一個錯誤消息顯示「提供程序= Microsoft.Jet.OLEDB.4.0;」。我測試的文件與之前使用的文件相同(沒有錯誤)。我沒有對文件做任何事情(excel文件)。當我試圖在C#程序中上傳文件時,出現「外部表格未處於預期格式」

這是錯誤信息的打印屏幕: enter image description here

這是我使用的代碼:

private void buttonUpload_Click(object sender, EventArgs e) 
    { 
     string OleDBConnection = String.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;""", textBoxFileName.Text); 

     string query = String.Format("select * from [{0}$]", "Sheet1"); 

     OleDbDataAdapter dataAdapter = new OleDbDataAdapter(query, OleDBConnection); 

     DataSet dataSet = new DataSet(); 

     dataAdapter.Fill(dataSet); 

     dataGridView1.DataSource = dataSet.Tables[0]; 

    } 
+2

請閱讀錯誤消息的話。 「外部表格不是預期的格式」非常清楚 - 你告訴數據提供者希望在連接字符串中使用某種格式的文件('Excel 8.0'),並且打開的文件不在正確的格式,可能是因爲'textBoxFileName.Text'中的文件不是受支持的文件。在你的問題中絕對沒有任何信息比這更有幫助 - 檢查你在'textBoxFileName.Text'中傳遞的文件。 –

回答

2
If Path.GetExtension(pth).ToLower().Equals(".xls") Then 
    strcon = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & pth & ";Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;""" 
Else 
    strcon = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & pth & ";Extended Properties=""Excel 12.0;HDR=YES;IMEX=1;""" 
End If 
相關問題