0
当我查询我的MS Access数据库时,我注意到它被锁定,其他应用程序无法访问它。这里是我的代码: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,我可以指定一个连接字符串属性永远不会锁定数据库?我可以使用的数据适配器上是否有属性?
数据文件存放到“C:\”可能会导致问题。尝试将数据库文件从“C:\”复制(不移动)到用户具有“正常”读/写访问权限的位置,例如“C:\ Users \ Public \”,并查看问题是否在使用时保持不变“公共”副本。 –
@GordThompson你的评论有点不正确。 %appdata%也位于具有完全读取/写入权限的C:\中。 – Adrian