我有一个我在c#上编写的软件,它读取和写入MS Access数据库(以.mdb格式)。此数据库位于同一安装文件夹中。它在Windows XP上运行良好。在Windows 7和8.1中,当我将程序的Windows兼容性设置为XP并将控制面板中的UAC安全设置设置为最低级别时,它也可以正常工作。我的问题是Windows 2008 R2。该软件运行但是当它尝试从数据库读取时,我得到一个异常(除#34之外没有特定消息;软件winUI.exe已停止工作")。 WinUI.exe是可执行文件的名称。
这绝对是数据库权限访问问题或可能需要安装的缺少组件,以便c#程序能够从数据库中读取。在Windows 2008 R2上,我尝试过:
将UAC设置为最低级别。 共享数据库文件所在的文件夹,允许所有人都可以使用。 设置数据库文件以允许用户读取和写入它。 编译软件以定位64位系统,因为这是Windows Server 2008 R2。 由于机器安装了Office 2010,我使用此连接字符串:Provider = Microsoft.ACE.OLEDB.12.0; Data Source = C:\ myFolder \ myAccessFile.mdb; Jet OLEDB:数据库密码= MyDbPassword; 我这样做是以管理员身份登录的。
这些措施都不起作用。如果有人见过这种问题,请告诉我还有什么可能遗漏的。感谢