Excepción de base de datos SQLite bloqueada
estoy obteniendoLa base de datos está bloqueada excepción deSQLite sólo para algunas consultas.
A continuación se encuentra mi código: cuando ejecuto cualquier instrucción de selección, funciona bien.
Cuando estoy ejecutando cualquier declaración de escritura enJobs
Mesa también funciona bien.
Esto funciona bien:
ExecuteNonQuery("DELETE FROM Jobs WHERE id=1");
Pero de la misma manera si estoy ejecutando consultas paraEmployees
mesa está lanzando una excepción quela base de datos está bloqueada.
Esto lanza Excepción:
ExecuteNonQuery("DELETE FROM Employees WHERE id=1");
A continuación se presentan mis funciones:
public bool OpenConnection()
{
if (Con == null)
{
Con = new SQLiteConnection(ConnectionString);
}
if (Con.State == ConnectionState.Closed)
{
Con.Open();
//Cmd = new SQLiteCommand("PRAGMA FOREIGN_KEYS=ON", Con);
//Cmd.ExecuteNonQuery();
//Cmd.Dispose();
//Cmd=null;
return true;
}
if (IsConnectionBusy())
{
Msg.Log(new Exception("Connection busy"));
}
return false;
}
public Boolean CloseConnection()
{
if (Con != null && Con.State == ConnectionState.Open)
{
if (Cmd != null) Cmd.Dispose();
Cmd = null;
Con.Close();
return true;
}
return false;
}
public Boolean ExecuteNonQuery(string sql)
{
if (sql == null) return false;
try
{
if (!OpenConnection())
return false;
else
{
//Tx = Con.BeginTransaction(IsolationLevel.ReadCommitted);
Cmd = new SQLiteCommand(sql, Con);
Cmd.ExecuteNonQuery();
//Tx.Commit();
return true;
}
}
catch (Exception exception)
{
//Tx.Rollback();
Msg.Log(exception);
return false;
}
finally
{
CloseConnection();
}
}
Esta es la excepción: En la línea 103:Cmd.ExecuteNonQuery();
Excepción encontrada: Tipo: System.Data.SQLite.SQLiteException Mensaje: la base de datos está bloqueada la base de datos está bloqueada Fuente: System.Data.SQLite
Stacktrace: en System.Data.SQLite.SQLite3.Step (SQLiteStatement stmt) en System.Data.SQLite.SQLiteDataReader.NextResult () en System.Data.SQLite.SQLiteDataReader..ctor (SQLiteCommand cmd, Command) .SQLite.SQLiteCommand.ExecuteReader (Comportamiento del comportamiento del comando) en System.Data.SQLite.SQLiteCommand.ExecuteNonQuery () en TimeSheet6.DbOp.ExecuteNonQuery (String sql) en d: \ Projects \ C # Applications \ Completed Projects Shopas. cs: linea 103