sqlite 删除表上的数据库被锁定异常

ppcbkaq5  于 2023-10-23  发布在  SQLite
关注(0)|答案(2)|浏览(163)

我目前面临一个数据库锁定异常的问题。
我有一个更新功能,

private void UpdateVersion(string version)
{
        string qry = "DROP TABLE IF EXISTS version; " +
                     "CREATE TABLE IF NOT EXISTS version ( version INTEGER NOT NULL );" +
                     "INSERT INTO version VALUES ("+version+");";
        try
        {
            SQLiteCommand cmd = new SQLiteCommand(qry, this.dbConnection);
            cmd.ExecuteNonQuery();
        }
        catch (SQLiteException ex)
        {
            // stuff
        }
    }

我总是得到

{"database is locked\r\ndatabase is locked"}
ErrorCode   5
ResultCode  Busy

这有点奇怪,因为相同的查询在SQLite浏览器(如SQLite的SQLiteStudio或DB浏览器)中工作,没有任何问题。我发现异常是在第一个查询部分(DROP TABLE)抛出的。
我在代码中的每个DROP TABLE上都面临这个问题:/。
有人有主意吗?:)

3lxsmp7m

3lxsmp7m1#

当SELECT语句在此表上处于活动状态时,如果您试图删除表,则可能会出现此错误。

vxbzzdmp

vxbzzdmp2#

开始转
使用AdventureWorks
SELECT * FROM Person.Address WITH(用户名)WHERE AddressId < 2
SELECT resource_type,request_mode,resource_description FROM sys.dm_tran_locks WHERE resource_type <> '数据库'
回滚

相关问题