我使用Visual Studio 2013和MVC 3 Razor。我能够上传和保存XLSB文件,并且我试图从上传的XLSB中读取数据。我有以下连接字符串和方法来初始化OleDbConnection:
strConStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Projects\Excel1.xlsb;Extended Properties='Excel 8.0;HDR=True'";
OleDbConnection connExcel = new OleDbConnection(strConStr);
connExcel.Open()发生错误。以下是错误消息:
类型' System.Data.OleDb.OleDbException'的例外情况发生在System.Data.dll中但未在用户代码中处理
其他信息:此文件是在以前的Excel 2007测试版中创建的。使用Excel 2007打开该文件,以便在Access 2007中打开文件之前将其保存为最新版本的Excel 2007文件格式。
我的PC上安装了AccessDatabaseEngine。在我的控制面板中,我有以下已安装的引擎信息:
名称:Microsoft Office Access数据库引擎2007(英文) ,大小:19.2 MB ,版本:12.0.4518.1031
我不确定这是否是读取XLSB文件的正确版本。顺便说一句,我的电脑是x64位。
我的同事也在他的PC上安装了相同类型的Microsoft Office Access数据库引擎2007,但他的版本是" 12.0.66XX",代码在他身边正常工作。
如果我需要安装其他版本的Access数据库引擎或其他任何方法来解决此错误,请与我们联系。
答案 0 :(得分:0)
除了我的计算机中已安装的Microsoft Office Access数据库引擎2007之外,我还下载并安装了Microsoft Access Database Engine 2010 Redistributable。
之后,我需要下载Microsoft Office Access Runtime and Data Connectivity 2007 Service Pack 2 (SP2)进行安装,然后重新启动我的计算机。
事后,一切都像魔术一样。
这是我的工作连接字符串:
strConStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Projects\Excel1.xlsb;Extended Properties='Excel 12.0;HDR=True'";