首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLite错误(10):延迟25 10用于锁定/共享冲突

SQLite错误(10):延迟25 10用于锁定/共享冲突
EN

Stack Overflow用户
提问于 2013-01-18 07:29:33
回答 2查看 3.5K关注 0票数 1

我的C#/SQLite应用程序工作正常,但偶尔输出此错误:

代码语言:javascript
复制
SQLite error (10): delayed 25ms for lock/sharing conflict

正如在这条线上所建议的那样,我更新了最新的SQLite,但仍然会发生这种情况。

怎么解决这个问题?

SQLite版本:sqlite-netFx40-static-binary-Win32-2010-1.0.84.0.zip at Precompiled Statically-Linked Binaries for 32-bit Windows (.NET Framework 4.0)段落at http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

Visual C# 2010速递

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-23 05:01:46

从这个原始代码:

代码语言:javascript
复制
    using (var command = new SQLiteCommand(GetSQLiteConnection()))
    {
        try
        {
            command.CommandText =
                "DELETE FROM folders WHERE path='" + path + "'";
            command.ExecuteNonQuery();
        }
        catch (SQLiteException e)
        {
            SparkleLogger.LogInfo("CmisDatabase", e.Message);
        }
    }

改为这样解决了问题(只有前两行不同):

代码语言:javascript
复制
    var connection = GetSQLiteConnection();
    using (var command = new SQLiteCommand(connection))
    {
    try
        {
            command.CommandText =
                "DELETE FROM folders WHERE path='" + path + "'";
            command.ExecuteNonQuery();
        }
        catch (SQLiteException e)
        {
            SparkleLogger.LogInfo("CmisDatabase", e.Message);
        }
    }
票数 2
EN

Stack Overflow用户

发布于 2013-01-18 10:11:54

查看您评论中的源代码:

代码语言:javascript
复制
        using (var command = new SQLiteCommand(GetSQLiteConnection()))
        {
            try
            {
                command.CommandText =
                    "DELETE FROM folders WHERE path='" + path + "'";
                command.ExecuteNonQuery();
            }
            catch (SQLiteException e)
            {
                SparkleLogger.LogInfo("CmisDatabase", e.Message);
            }
        }

using语句处理的是命令,而不是连接。尝试对每个命令使用两个嵌套的for语句。

代码语言:javascript
复制
   using (var connection= GetSQLiteConnection())
   {
      using (var command = new SQLiteCommand(connection))
      {
        try
        {
            command.CommandText =
                "DELETE FROM folders WHERE path='" + path + "'";
            command.ExecuteNonQuery();
        }
        catch (SQLiteException e)
        {
            SparkleLogger.LogInfo("CmisDatabase", e.Message);
        }
     }
  }

这可能会减轻问题,但其他因素可能会导致此错误显化。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14394280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档