【发布时间】:2015-04-27 12:20:33
【问题描述】:
我目前面临数据库锁定异常的问题。
我有一个更新功能,比如
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 或 SQLite 的 DB 浏览器)中运行没有任何问题。我发现异常是在第一个查询部分(DROP TABLE)引发的。
我在代码中的每个 DROP TABLE 上都面临这个问题:/。
有人有想法吗? :)
【问题讨论】:
-
如果您只是发送
DROP TABLE IF EXISTS version;语句会发生这种情况吗? -
是的,我检查了 10 次。 Not select qry 在 drop qry 的前面
标签: c# sqlite visual-studio-2013 system.data.sqlite