J'utilise l'application C# et l'exécution de l'application dans la machine serveur que Windows service.When i insérer, mettre à jour l'opération de suppression de la machine client, il lance une erreur de verrouillage de la base de données ci-dessous,base de données SQLite est exception verrouillée
database is locked
at System.Data.SQLite.SQLite3.Step(SQLiteStatement stmt)
at System.Data.SQLite.SQLiteDataReader.NextResult()
at System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behave)
at System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery()
at System.Data.SQLite.SQLiteTransaction.Commit()
Ci-dessous mon code
public int ExecuteNonQuerySQL(SQLiteCommand cmd)
{
int ireturn = 0;
if (conn.State != ConnectionState.Open)
Open(DataFile);
using (SQLiteTransaction dbtrans = conn.BeginTransaction(IsolationLevel.ReadCommitted))
{
using (cmd.Connection=conn)
{
cmd.CommandText =cmd.CommandText ;
cmd.Transaction = dbtrans;
ireturn = cmd.ExecuteNonQuery();
dbtrans.Commit();
cmd.Dispose();
}
}
}
S'il vous plaît aidez-moi à cela, je l'ai fait beaucoup de googler et je dois trouver une solution pour résoudre ce problème. Cordialement
Semble que vous ne fermez pas la connexion. – Reniuz
Avant exécution nonquery effectuée, la connexion db est fermée et rouvrir à nouveau .. – user642378
Et après? L'exception de verrouillage peut être due au fait que lorsque vous ouvrez la connexion db, le fichier est verrouillé. Vous devez libérer la connexion verrouillée - fermée. Donc, assurez-vous que vous fermez vraiment la connexion. – Reniuz