Windows 10笔记本电脑x64位
我有Microsoft Access 2010
已安装驱动程序:
-Microsoft Office Access数据库引擎2007(我认为是32位)
-Microsoft Access数据库引擎2010(我认为是64位)
我最近还是初中继承了C#项目(我认为是.net 4.0),但是我无法正确设置代码,而我读到的代码却是由于该项目使用了(受密码保护的)Microsoft访问数据库。最初,它是由一位主要开发人员处理的,然后才交给我。
安装2007 Microsoft驱动程序有助于解决“注册问题”,但是我发现该程序无法访问数据库。
运行代码,下面出现错误。
System.Data.OleDb.OleDbbException:无法打开数据库”。它可能不是您的应用程序可以识别的数据库,或者文件可能已损坏。
我发现,如果我打开Microsoft Access 2010,创建一个空数据库,从原始数据库中导入所有内容,然后在没有密码的情况下进行保存,则它会显示以正常运行。但是当涉及到密码时,它将停止工作
我的App.Config文件:
<add key ="exampletest"
value ="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\test\testDB.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;我必须输入密码)
答案 0 :(得分:0)
找到解决方案 我研究的问题似乎是32位/ 64位Microsoft数据库驱动程序之间的兼容性/冲突问题
(供参考,我有: Microsoft Access 2010 64位 Microsoft Office Access数据库引擎2007(32位驱动程序) Microsoft Access数据库引擎2010(64位驱动程序) )
驱动程序端,不确定我是否需要两者。但是2007驱动程序对我来说是必须的
现在要解决:
在Visual Studio中,我只需要右键单击该项目,然后在“构建”部分中,我仅选择“任何CPU”作为平台目标(与选择用于调试/发布的任何CPU都不一样