1

我整天都在寻找解决此问题的方法,但找不到有效的方法。基本上,我已经通过 Visual Studio 连接到 Access 数据库一段时间了(我使用 Access 数据库是有原因的),但突然之间它无法连接。现在,每当我尝试添加数据库连接时,我都会收到“未指定错误”。我在这里搜索过,阅读了 MSDN,重新安装了 Visual Studio,但似乎没有任何效果。如果我转到“数据库资源管理器”,更改为 Access 数据库,浏览文件,然后点击“测试连接”/“确定”,我将收到错误消息。它也不是特定于文件的,它发生在所有人身上。

有任何想法吗?这里真的需要一些帮助。

4

3 回答 3

1

一些可能有帮助的想法:

  • 确保您的项目明确针对 x86 代码,而不是 x64 或 AnyCPU。
    Access Jet ( .mdb) 只能在 32 位下工作,如果您使用的是 ACE(用于新的.accdb数据库格式),您很可能也在使用 32 位版本的驱动程序。
    您不能混合使用 32 位和 64 位代码和数据库驱动程序,只要确保一切一致即可。

  • 您的安装可能已损坏。
    如果您可以在另一台机器上执行相同的步骤并且它在那里工作,那么您可能需要重新安装 VS(先尝试重新安装ACE 驱动程序,看看它是否解决了问题)。

于 2013-04-15T01:56:23.807 回答
0

我也刚刚在连接到 MS Access 2013 的 VSB2013 上遇到了这个问题。

我也解决了一点我不完全理解为什么它会工作它有多稳定

注意 - 当我循环浏览 120 条 ish 记录时会出现问题。该过程是读取下一条记录 - 读取下一条记录等。记录类似,需要一些其他数据库读取来处理记录。Unspecified 错误发生在记录/循环 79 上,但记录非常相似。

在我的调查中,我发现以下所有 3 个工作(即 120 次循环都没有错误) - 但显然前 2 个仅用于调试

解决方案 1 - WORKS)在循环中插入一个 msgbox - 消息框报告将要处理的循环号和记录键

解决方案 2 - WORKS)将 msgbox 替换为一行,该行将相同的文本附加到我的表单上的富文本框中,并带有 Cr/Lf。

解决方案 3 - 有效)将 RTB 更新替换为 Threading.Thread.Sleep(15) 行。调整睡眠的毫秒数表明 15 及以上在我的代码中始终有效。9 及以下的值始终失败。10 到 14 之间的值显示不一致的结果。

据我所知,睡眠方法暂停循环以允许其他事件和垃圾收集发生。这是否类似于我们在 VB6 之前使用的 DoEvents。

这就是我所知道的。问候杰夫

于 2014-09-07T17:20:57.067 回答
0

在您访问数据库的代码块周围放置一个 try/catch 并检查返回的错误详细信息。

Try
  'Your code here
Catch ex as exception
  msgbox(ex.Message)
Finally
  'any code you want here like close connections etc
End Try

一旦您有更多信息,请在此处发布,因为“未指定的错误”并没有说明太多,您也没有发布任何代码,因此很难看到可能发生的情况。

于 2013-04-15T01:50:36.243 回答