我目前面临的数据库问题是锁定异常。
我有像
这样的更新功能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浏览器中工作(如SQLiteStudio或SQL浏览器的SQLite),没有任何问题。我发现在第一个查询部分(DROP TABLE)上抛出异常。
我在我的代码中的每个DROP TABLE上遇到此问题:/。
有没有人有想法? :)
答案 0 :(得分:0)
如果您在此表上激活SELECT语句时尝试删除表,则可能会出现此错误。
您可以在此找到问题的原因:
答案 1 :(得分:-1)
BEGIN TRAN
USE AdventureWorks
SELECT * FROM Person.Address WITH(UPDLOCK) WHERE AddressId< 2
SELECT resource_type,request_mode,resource_description FROM sys.dm_tran_locks WHERE resource_type<> ' DATABASE'
ROLLBACK