我知道在将应用程序部署到新服务器上时会反复遇到此问题,因为我正在使用此驱动程序连接到Excel文件。所以这就是我最近正在做的事情。
有一个Windows Server 2008 R2,我为x64位计算机安装了Access驱动程序,并且摆脱了此消息,这让我很高兴能碰到另一个。
下面的代码可以在我的开发机上出色地工作,但是即使在安装了最新的ODBC驱动程序后,在服务器上也给我一个错误,我认为这是问题所在,但这就是我解决的方法。
private const string OledbProviderString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\\OlsonWindows.xls;Extended Properties=\"Excel 8.0;HDR=YES\"";
我将如下所示替换为新的提供程序:
private const string OledbProviderString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\OlsonWindows.xlsx;Extended Properties='Excel 12.0;HDR=YES;';";
但是当我这样做时,您应该注意一件事。使用.xlsx文件扩展名和Excel版本是12.0。
在遇到此错误消息错误:“找不到可安装的ISAM”之后,我决定对内容进行如下更改:
private const string OledbProviderString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\OlsonWindows.xls;Extended Properties='Excel 8.0;HDR=YES;';";
是的,我已经完成了该讨厌的事情,但是在这里,我又收到一条消息,Microsoft Access数据库引擎无法打开或写入文件“ time_zone”。它已经由另一个用户独占打开,或者您需要权限才能查看和写入其数据。这告诉我我离解决它不远。
也许还有另一个进程同时打开了文件,而我要做的就是重新启动,并且所有启动都会按预期顺利运行。