删除后如何解锁Sqlite数据库

Posted

技术标签:

【中文标题】删除后如何解锁Sqlite数据库【英文标题】:How to unlock Sqlite Database after delete 【发布时间】:2014-01-28 15:45:34 【问题描述】:

当我执行如下删除操作时,SQLite 数据库似乎被锁定:

而且我需要删除两次才能刷新。 Sqlite数据库没有任何锁定的删除的正常方法是什么?

var ThisTrans = await db.QueryAsync("Select * From TransactionLine Where Tid = '" + PassInTransId + "'"); foreach(ThisTrans 中的 var 行) var intDelStatus = db.DeleteAsync(line); //- 我可以用它来关闭连接吗?但它不起作用! 分贝=空; - - 解决方案 私有异步任务 DelTransactionLine(int PassInTransId) //--1-- 删除选中的交易行 var ThisTrans = await db.QueryAsync("Select * From TransactionLine Where Tid = '" + PassInTransId + "'"); foreach(ThisTrans 中的 var 行) var intDelStatus = 等待 db.DeleteAsync(line); 返回真;

【问题讨论】:

我不知道 SQLite 是如何工作的,但我有几个想法。会不会是DeleteAsync再次调用时没有完成?有同步删除吗?在调用DeleteAsync 后立即尝试使用Thread.Sleep 看看是否是这样 【参考方案1】:

你能做这样的事情吗:

var ThisTrans = await db.QueryAsync<TransactionLine>("Select * From TransactionLine    Where  Tid = '" + PassInTransId + "'");
foreach (var line in ThisTrans)

    var intDelStatus = await db.DeleteAsync(line);

在尝试删除下一个操作之前等待删除操作返回?

【讨论】:

我需要使用 Task 来实现这个删除功能。调用此 Task 基本函数将解决我的问题。 忘记添加:使用基于 Task 的函数和您对 await 关键字的建议。谢谢

以上是关于删除后如何解锁Sqlite数据库的主要内容,如果未能解决你的问题,请参考以下文章

上传到服务器后删除 SQLite 数据行?

sqlite 删除数据后文件size并不会减小,解决办法:

如何在 Django 1.9 中删除 DB (sqlite3) 以从头开始?

django 如何在 SQLite 中删除列

Kotlin基础从入门到进阶系列讲解(入门篇)下载SQLite软件,如何创建/添加/更新/查询/删除数据

Kotlin基础从入门到进阶系列讲解(入门篇)下载SQLite软件,如何创建/添加/更新/查询/删除数据