无法启动您的应用程序工作组信息文件不存在或由另一个用户专门打开

时间:2018-07-20 09:48:52

标签: c# ms-access-2016 oledbconnection

我正在尝试对位于远程服务器上的访问数据库运行查询(我的代码是用C#编写的)。 我使用以下代码和连接字符串:

public static string MadoneConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source= {0}; Persist Security Info = False; User ID = {1}; Password ={2};";

string ConnectionString = string.Format(Constants.MadoneConnectionString, DatabasePath, userId, password);

using (OleDbConnection cnn = new OleDbConnection(ConnectionString))
            {
                //..my code..//
                int count = 0;
                using (OleDbCommand cmd = new OleDbCommand(query, cnn))
                {
                    cnn.Open();
                    using (OleDbDataReader reader = cmd.ExecuteReader())
                    {
                        // my code //
                    }
                }
            }

运行代码时,标题中出现错误:

  

无法启动您的应用程序工作组信息文件是   

我尝试按照建议的here进行操作,并添加了

Jet OLEDB:System Database=system.mdw;

连接字符串,

但是我有一条消息说登录名或密码错误。

有人遇到相同的错误吗?您是如何解决的?

谢谢

2 个答案:

答案 0 :(得分:1)

这是由于其他人在访问中打开数据库文件而创建的,这导致了锁定。由于您在应用程序中使用using语句,因此不应保持连接处于打开状态,因此代码不太可能引起锁定。在我以前的公司中,这种情况经常发生在ASP页尝试连接到访问数据库而有人打开它的时候。

我能想到的两个解决方案是:

  1. 通过更改文件位置或告诉别人不要打开数据库,以确保其他人不能打开数据库。

  2. 更好的解决方案是拥有一个可以支持多个用户的数据库服务器。

答案 1 :(得分:0)

添加

Jet OLEDB:System Database=system.mdw; 

解决我的连接字符串问题。我尝试使用的登录名已停用,这就是为什么出现错误消息表示登录错误的原因。感谢您的宝贵时间。