我使用以下代码更新SQLite数据库中的“Picture”字段:
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数据库的所有其他数据访问工作正常。似乎当我尝试将数据插入到这一个字段中时,它给出了一个错误“数据库被锁定”。我的应用程序是单线程的,我的所有其他数据访问功能都正确关闭并处理正确的对象。任何人都有一个线索可能是错的?
答案 0 :(得分:1)
错误“数据库被锁定”可能表示某些其他连接仍然有一个打开的事务。
确保正确关闭和处置所有命令和连接。
要在例外情况下执行此操作,请使用using
。