我知道当我在新服务器上部署我的应用程序时,我一遍又一遍地遇到这个问题,因为我正在使用这个驱动程序连接到 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。
在我收到此错误消息Error: "Could Not Find Installable 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”。它已被其他用户独占打开,或者您需要权限才能查看和写入其数据。这告诉我我离解决它不远了。
也许有另一个进程同时打开了文件,我所要做的就是重新启动,一切都会按预期顺利运行。