Кажется SQLite базы данных блокируются, когда я делаю операцию удаления, как показано ниже:Как разблокировать Sqlite базы данных после удаления
И мне нужно удалить два раза, чтобы обновить. Каков нормальный способ удаления без блокировки в базе данных Sqlite?
var ThisTrans = await db.QueryAsync<TransactionLine>("Select * From TransactionLine Where Tid = '" + PassInTransId + "'"); foreach (var line in ThisTrans) { var intDelStatus = db.DeleteAsync(line); } //- can I use this to close Connection?? but it does not work! db = null; --- solution private async Task<bool> DelTransactionLine(int PassInTransId) { //--1-- delete the selected transaction line var ThisTrans = await db.QueryAsync<TransactionLine>("Select * From TransactionLine Where Tid = '" + PassInTransId + "'"); foreach (var line in ThisTrans) { var intDelStatus = await db.DeleteAsync(line); } return true; }
Я не знаю, как работает SQLite, но у меня есть пара идей. Может ли быть так, что 'DeleteAsync' не выполняется, когда вы снова вызываете его? Есть ли синхронизация Удалить? Попробуйте с помощью 'Thread.Sleep' сразу после вызова' DeleteAsync', чтобы узнать, не так ли это – sebagomez