我一整天都在寻找解决这个问题的方法,但找不到有效的方法。基本上,我已经通过Visual Studio连接到Access数据库已经有一段时间了(我有使用Access数据库的原因),但突然之间就无法连接。现在,无论何时我尝试添加数据库连接,都会收到“未指定的错误”。我在这里搜索,阅读MSDN,重新安装Visual Studio,但似乎没有任何工作。如果我转到“数据库资源管理器”,更改为Access数据库,浏览文件,然后点击“测试连接”/“确定”,我将收到错误。它也不是文件特定的,它发生在所有人身上。
有什么想法吗?真的需要一些帮助。
答案 0 :(得分:1)
一些可能有所帮助的想法:
确保您的项目明确定位x86代码,而不是x64或AnyCPU
Access Jet(.mdb
)仅在32位下运行,如果您使用ACE(对于新的.accdb
数据库格式),您可能也使用32位版本的驱动程序。
您不能混合32位和64位代码和数据库驱动程序,只需确保一切都是一致的。
您的装置可能已损坏 如果您可以在另一台计算机上执行相同的步骤,并且如果它在那里工作,那么您可能需要重新安装VS(首先尝试重新安装ACE driver以查看它是否解决了问题。)
答案 1 :(得分: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
一旦您获得了更多信息,请在此处发布,因为“未指定的错误”并未说明很多,也没有发布任何代码,因此很难看到可能发生的情况。
答案 2 :(得分:0)
我刚刚在连接到MS Access 2013的VSB2013上遇到过这种情况。
我也解决了一点我不完全理解为什么这会有多稳定
注意 - 当我循环播放120个ish记录时会出现问题。该过程被读取下一个记录过程 - 读取下一个记录等等。记录类似,并且需要一些其他数据库读取来处理记录。记录/周期79发生未指定的错误,但记录非常相似。
在我的调查中,我发现以下所有3个工作(即120个周期都没有出现错误) - 但显然前两个仅用于调试
解决方案1 - 工作)将msgbox插入循环 - 消息框报告将要处理的循环编号和记录密钥
解决方案2 - WORKS)用一行将相同的文本附加到我的表单上带有Cr / Lf的富文本框的行替换了msgbox。
解决方案3 - 工作)用线程Threading.Thread.Sleep(15)替换RTB更新。调整睡眠的毫秒数表明,15及以上版本在我的代码中始终有效。 9及以下的值始终失败。 10到14之间的值显示不一致的结果。
据我所知,sleep方法暂停循环以允许其他事件和垃圾收集发生。这类似于我们在VB6之前使用的DoEvents。
这就像我所知道的那样。 问候 杰夫