/// <summary>
 /// Esegue una query sql parametrizzata.
 /// Errori NON GESTITI!!
 /// </summary>
 /// <param name="txtQuery">Query sql con o senza parametri</param>
 /// <param name="parameters">
 ///     Parametri da sostituire; 
 ///     Formato: parameters[i] = {"@nome_parametro","valore da sostituire"}
 /// </param>
 public void ExecuteQuery(string txtQuery, string[][] parameters = null)
 {
     lock(lockVar)
     {
         command = sql_con.CreateCommand();
     }
     command.CommandText = txtQuery;
     if (parameters != null)
     {
         foreach (string[] param in parameters)
         {
             command.Parameters.Add(new SQLiteParameter(param[0], param[1]));
         }
     }
     try
     {
         command.VerifyOnly();
     }
     catch (Exception e)
     {
         l.log("Query errata: " + e.Message);
     }
     try
     {
         reader = command.ExecuteReader();
     }
     catch (SQLiteException e) when (e.ErrorCode == (int)SQLiteErrorCode.Constraint)
     {
         throw new DatabaseException("Errore di Constraint", DatabaseErrorCode.Constraint);
     }
 }