Когда я запрашиваю базу данных 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