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