C# Microsoft Access的问题 我们有2个遗留系统——C++中的一个和C中连接到相同访问数据库的其他系统。access数据库不受密码保护,我们使用以下连接字符串连接到数据库 Provider=Microsoft.Jet.OLEDB.4.0; Persist Security Info=False ;Data Source= AlarmHistory.mdb
C应用程序每隔10秒轮询数据库中的一个表。偶尔,C应用程序会崩溃,并显示错误消息-C# Microsoft Access的问题 我们有2个遗留系统——C++中的一个和C中连接到相同访问数据库的其他系统。access数据库不受密码保护,我们使用以下连接字符串连接到数据库 Provider=Microsoft.Jet.OLEDB.4.0; Persist Security Info=False ;Data Source= AlarmHistory.mdb,c#,c++,ms-access,C#,C++,Ms Access,C应用程序每隔10秒轮询数据库中的一个表。偶尔,C应用程序会崩溃,并显示错误消息- System.Data.OleDb.OleDbException: Cannot start your application. The workgroup information file is missing or opened exclusively by another user. 日志分析显示这两个应用程序没有同时访问数据库。。。你知道是什么导致了这种情况吗。。。请帮助他们可能没有在完全相同的时间访问
System.Data.OleDb.OleDbException: Cannot start your application. The workgroup information file is missing or opened exclusively by another user.
日志分析显示这两个应用程序没有同时访问数据库。。。你知道是什么导致了这种情况吗。。。请帮助他们可能没有在完全相同的时间访问数据库,但该错误消息表明他们或其他人正在同时访问锁定文件。轮询是否每次都打开和关闭连接?您可以将“打开”和“关闭”移动到计时器外部,以便在应用程序的生命周期内打开并保持打开状态。不要检查应用程序日志,而是使用诸如ProcMon之类的工具来真正检查另一个用户是否在使用某个文件。应用程序可能会报告它已完成数据库的工作,但仍保持文件句柄打开。文件不会被锁定,只是在创建过程中短暂地以独占方式锁定。因此,通过保持连接打开,锁定文件不会一直被创建和销毁。