次のコードを使用して、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 データベースとの間の他のすべてのデータ アクセスは正常に機能します。この 1 つのフィールドにデータを挿入しようとすると、「データベースがロックされています」というエラーが表示されるようです。私のアプリケーションはシングル スレッドであり、他のすべてのデータ アクセス関数は適切に閉じて、適切なオブジェクトを破棄します。誰が何が間違っているのか手がかりを持っていますか?