Windows 10笔记本电脑x64位
我有Microsoft Access 2010
安装的驱动程序:
-Microsoft Office Access数据库引擎2007(我认为是32位)
-Microsoft Access数据库引擎2010(我认为是64位)
我最近在大三的时候继承了一个C#项目(我想是.net 4.0),但我在正确设置代码时遇到了问题,据我所知,这是由于该项目使用了(受密码保护的)Microsoft Access数据库。最初它是由一个主要的开发人员处理的,然后交给我
安装2007Microsoft驱动程序有助于解决"注册问题",但我发现该程序无法访问数据库。
运行代码时,我在下面得到一个错误。
System.Data.OleDb.OleDbException:无法打开数据库"。应用程序可能无法识别该数据库,或者该文件可能已损坏。
我发现,如果我打开Microsoft Access 2010,创建一个空数据库,从原始数据库导入所有内容,然后在没有密码的情况下保存,则将显示为运行良好。但当涉及到密码时,它会停止的工作
我的应用程序配置文件:
<add key ="exampletest"
value ="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:testtestDB.accdb;" />
在我的accesshelper文件中:
Public static readonly string ConnectionString =
ConfigurationManager.AppSettings["exampletest"].ToString() +
"Jet OLEDB:Database Password=Abc1234;";
Using (OleDbConnection conn = new OleDbCommection(connectionString))
{
...
If (con.State !=ConnectionState.Open)
conn.Open();
...
}
该代码与原始开发人员配合良好,但如果没有诸如删除密码之类的变通方法(代码(Abc1234)上的密码是正确的),我似乎无法重现同样的成功。我知道,因为如果我在Microsoft Access 2010中打开数据库;我必须键入密码)
找到解决方案我研究的问题似乎是32位/64位Microsoft数据库驱动程序之间的兼容性/冲突问题
(作为参考,我有:Microsoft Access 2010 64位Microsoft Office Access数据库引擎2007(32位驱动程序)Microsoft Access数据库引擎2010(64位驱动程序))
驾驶员侧,我不确定两者都需要。但2007年的司机是我的必备
现在是分辨率:
在visual studio中,我只需要右键单击项目,在构建部分,我只需选择"Any CPU"作为平台目标(与选择Any CPU进行调试/发布不同