/// <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); } }