【问题标题】:MS Access Connection String ErrorMS Access 连接字符串错误
【发布时间】:2013-12-12 03:07:21
【问题描述】:

无法打开数据库''。它可能不是您的应用程序识别的数据库,或者文件可能已损坏。”

在我的数据库上设置密码后出现。我该怎么办??

这是我的路径数据库代码

 Private Sub Registration_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source= |DataDirectory|\Accounts.accdb;Jet OLEDB:Database Password=123;"
End Sub

我在 connectionstring.com 中得到了这个代码,但也出现了同样的错误。

提前致谢。

【问题讨论】:

    标签: vb.net connection-string ms-access-2013


    【解决方案1】:

    你可以试试这个代码吗?如果它不起作用,你能给出确切的错误信息吗?如果不能识别数据库,需要安装access accdb驱动。如果已损坏,请尝试压缩并修复数据库。

      con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" 
    & Application.StartupPath() & "'\Accounts.accdb;Jet OLEDB:Database Password=123;"
    

    【讨论】:

    • 忘了告诉你,当使用 Application.StartupPath() 时,你的数据库应该和你的 .exe 在同一个目录下。在您的情况下,它位于调试文件夹中。
    • 谢谢您的回复先生,但它没有工作。问题已经在那里了。我已经安装了 access accdb 驱动程序。
    • 你能写下确切的错误信息吗?所以你的意思是它可以在没有密码的情况下工作对吗?
    • 顺便说一句,我刚刚注意到您使用的是 MS Access 2013。您可以查看此网站,connectionstrings.com/access 了解更多信息。 2013 的默认加密方案不适用于您正在使用的当前连接字符串。在 Access 中,单击选项并选择 2007 加密方法。
    • 我已经在 connectionstrings.com 中使用了该代码,但出现了同样的错误。
    【解决方案2】:

    指定数据库的完整路径

    Private Sub Registration_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        con.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source= c:\Data\Accounts.accdb;Jet OLEDB:Database Password=123;"
    End Sub
    

    【讨论】:

    • 你的数据库是否真的存在于数据目录中?
    【解决方案3】:

    您只需要转到左侧的数据源。选择要连接的数据库,右键单击它并转到第一行中的属性将表示连接字符串。尝试使用该字符串进行连接。

    这里有一个例子,msaccess 数据库与 oledb 中的 vb.net 连接。 检查一下。一定会对你有所帮助。

    http://vb.ankwebsoft.in/msaccess-vb-oledb-connection.php

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-28
      • 2011-12-11
      相关资源
      最近更新 更多