将visual studio连接到64位访问

时间:2017-04-21 13:12:21

标签: c# asp.net visual-studio ms-access 32bit-64bit

我有一个问题,即我的c#(asp.net)代码无法识别访问数据库引擎,即使我尝试安装它的多个版本。

现在我发现了原因 - 由于Visual Studio是32位(由于某种原因没有64位版本),它只能用于32位引擎。

不幸的是,32位和64位办公产品无法共存,这使我无法安装32位引擎(我有64位办公室)。

有没有办法在不卸载整个办公套餐的情况下将visual studio连接到引擎?

编辑:继承人代码

public bool Connect(string connectionString)
{
    if (this.connection != null)
    {
        if (!this.connection.State.Equals(ConnectionState.Closed))
        {
            this.connection.Close();
        }
    }
    this.connection = new OleDbConnection(connectionString);
    this.connection.Open();
    return true;
}

使用连接字符串

Provider=Microsoft.ACE.OLEDB.12.0; Data Source='|DataDirectory|\db.accdb'; Persist Security Info=False;

P.S:我知道我应该用try-catch包围它,我不想看到调试的例外...

编辑2:我现在正在尝试使用Jet提供程序而不是ACE提供程序(并使用旧的.mdb格式),因为它不是办公室的一部分所以我可以拥有一个VS支持的版本,现在似乎工作正常......

2 个答案:

答案 0 :(得分:0)

如果您可以发布用于连接到db的代码将会很棒。 但是这里。安装此引擎(https://www.microsoft.com/en-gb/download/details.aspx?id=13255)32位。由于您的visual studio将只有32位应用程序等。

安装后,您应该可以使用以下连接字符串

Microsoft.ACE.OLEDB.12.0
Driver={Microsoft Access Driver (*.mdb, *.accdb)};

如果有效,请告诉我。您的代码也会有很大帮助。 如果它没有工作发布odbc源的图片。打开Windows搜索并键入odbc,然后使用屏幕截图编辑您的帖子,以便我可以安装您的驱动程序。

答案 1 :(得分:0)

我有一个类似的问题,我有一个64位版本的驱动程序而没有32位版本。

我通过将平台目标从Any CPU更改为x64来解决了这一问题(这似乎表明代码所运行的程序集的位确定了所选驱动程序的位)。