2012-06-08 21 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 
相关问题