我目前面临一个数据库锁定异常的问题。
我有一个更新功能,
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上都面临这个问题:/。
有人有主意吗?:)
2条答案
按热度按时间3lxsmp7m1#
当SELECT语句在此表上处于活动状态时,如果您试图删除表,则可能会出现此错误。
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 <> '数据库'
回滚