2

我正在使用以下代码更新我的 SQLite 数据库中的“图片”字段:

    public void SetImage(byte[] image)
    {
        var sql = "UPDATE Part SET Picture=@0 WHERE PartId=" + PartId.ToString(CultureInfo.InvariantCulture);
        var con = new SQLiteConnection(GetConnectionString());

        var command = new SQLiteCommand(con)
        {
            CommandText = sql
        };

        command.Parameters.AddWithValue("@0", image);
        con.Open();
        command.ExecuteNonQuery();
        con.Close();
        command.Dispose();
        con.Dispose();
    }

对我的 SQLite 数据库的所有其他数据访问都可以正常工作。似乎当我尝试将数据插入这一字段时,它给了我一个错误“数据库已锁定”。我的应用程序是单线程的,并且我的所有其他数据访问功能都正确关闭并处理了正确的对象。有人知道可能出了什么问题吗?

4

1 回答 1

1

错误“数据库已锁定”可能表明其他一些连接仍有打开的事务。

确保所有命令和连接都正确关闭和处置。即使在异常情况下也要这样做,请使用using.

于 2012-11-05T08:10:05.673 回答