当我查询MS Access数据库时,我注意到它已被锁定,其他应用程序也无法访问它。这是我的代码:
public void PopulateDataTableSettings()
{
if (_dt.Rows.Count == 0)
{
string query = "select * from settings";
using (OleDbConnection conn = new OleDbConnection(_connectionString))
{
conn.Open();
using (OleDbCommand cmd = conn.CreateCommand())
{
cmd.CommandText = query;
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
da.Fill(_dt);
}
conn.Close();
}
}
}
这是我的连接字符串:
OleDbConnectionStringBuilder builder = new OleDbConnectionStringBuilder();
builder.DataSource = "C:\\shop.mdb";
builder.Provider = "Microsoft.Jet.OLEDB.4.0";
builder.OleDbServices = -1;
return builder.ConnectionString;
除了将数据库升级到SQL Server之外,是否可以指定连接字符串属性以永不锁定数据库?我可以使用的数据适配器上有属性吗?
从您的问题很难分辨出来,但是我想您是从其他MS Office应用程序访问它的?如果是这样,则在连接属性下有一个名为“共享拒绝无”的模式-通过使用此模式,我能够避免大多数(但不一定是全部)读/写问题。但是访问非常麻烦,它实际上仅在一个人一次访问时才起作用。
有关“共享拒绝”的更多信息无:http : //msdn.microsoft.com/zh-cn/library/office/aa140022( v= office.10).aspx另一个具有类似问题的帖子:在使用同一MS的另一个应用程序同时连接MS Access存取档案
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句