我的代码有问题。 我想删除 SQLite 数据库中的一些行,但出现“数据库已锁定”异常。 我读了几篇关于这方面的文章,比如 this post , 但我的问题仍然存在。
这是我的代码:
using (var c = new SQLiteConnection(_connectionSQLite))
{
c.Open();
if (c.State == ConnectionState.Open)
{
var reqExist = string.Concat("SELECT id FROM ... ");
using (var cmdExist = new SQLiteCommand(reqExist, c))
{
var reqUpdate = string.Concat("UPDATE ... WHERE id = ", cmdExist.ExecuteScalar());
using (var cmdUpdate = new SQLiteCommand(reqUpdate, c))
{
cmdUpdate.ExecuteNonQuery();
}
}
}
c.Close();
}
我在 cmdUpdate.ExecuteNonQuery();
行收到“数据库已锁定”异常。我尝试用 DELETE FROM
替换,结果相同,但用 SELECT
时,它起作用了,我真的不明白我的代码有什么问题。
感谢您的帮助。
最佳答案
好的,谢谢大家的帮助。 我只需要在插入/更新之前在另一个函数中 .dispose() 两个读者,它就可以工作!
关于c# - "Database is locked"SQLite 和 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38210854/