/// <summary> /// Cambia la data di riferimento. /// </summary> /// <param name="dataAttiva">Nuova data di riferimento.</param> //public void ChangeDate(string dataAttiva) //{ // _dataAttiva = dataAttiva; //} /// <summary> /// Cambia l'id applicazione (utilizzato solo in invio programmi quando viene cambiato il programma). /// </summary> /// <param name="appID">Nuovo id applicazione.</param> //public void ChangeAppID(int appID) //{ // _idApplicazione = appID; //} /// <summary> /// Funzione per l'esecuzione di una stored procedure che inserisce o modifica valori sul db senza restituire nessun risultato. /// </summary> /// <param name="storedProcedure">Nome della stored procedure.</param> /// <param name="parameters">Parametri richiesti dalla stored procedure.</param> /// <returns>True se il comando è andato a buon fine, false altrimenti.</returns> public bool Insert(string storedProcedure, QryParams parameters, int timeout = 300) { if (!parameters.ContainsKey("@IdApplicazione") && IdApplicazione != -1) { parameters.Add("@IdApplicazione", IdApplicazione); } if (!parameters.ContainsKey("@IdUtente") && IdUtente != -1) { parameters.Add("@IdUtente", IdUtente); } if (!parameters.ContainsKey("@Data") && DataAttiva != DateTime.MinValue) { parameters.Add("@Data", DataAttiva.ToString("yyyyMMdd")); } try { SqlCommand cmd = _cmd.SqlCmd(storedProcedure, parameters, timeout); cmd.ExecuteNonQuery(); return(cmd.Parameters[0].Value.Equals(0)); } catch (TimeoutException) { return(false); } catch (SqlException e) { System.Windows.Forms.MessageBox.Show(e.Message); return(false); } }
/// <summary> /// Funzione per l'esecuzione di una stored procedure di selezone di valori. Restituisce una tabella contenente i record restituiti dal comando. /// </summary> /// <param name="cmd">Comando con cui eseguire la stored procedure.</param> /// <param name="storedProcedure">Nome della stored procedure.</param> /// <param name="parameters">Parametri della stored procedure.</param> /// <param name="timeout">Timeout di esecuzione.</param> /// <param name="logEnabled">Flag per attivare disattivare il log (usa spInsertLog che deve essere definita nello schema in uso!!).</param> /// <returns>Tabella contenente i valori restituiti dalla stored procedure.</returns> private DataTable Select(Command cmd, string storedProcedure, QryParams parameters, int timeout = 300, bool logEnabled = true) { if (!parameters.ContainsKey("@IdApplicazione") && IdApplicazione != -1) { parameters.Add("@IdApplicazione", IdApplicazione); } if (!parameters.ContainsKey("@IdUtente") && IdUtente != -1) { parameters.Add("@IdUtente", IdUtente); } if (!parameters.ContainsKey("@Data") && DataAttiva != DateTime.MinValue) { parameters.Add("@Data", DataAttiva.ToString("yyyyMMdd")); } try { DataTable dt = new DataTable(); using (SqlDataReader dr = cmd.SqlCmd(storedProcedure, parameters, timeout).ExecuteReader()) { dt.Load(dr); } return(dt); } catch (SqlException) { if (logEnabled && OpenConnection()) { //nel caso spInsertLog (definita solo per PSO ma non per RiMoST ad esempio) non sia definita, va in errore try { Insert("spInsertLog", new QryParams() { { "@IdTipologia", TipologiaLOG.LogErrore }, { "@Messaggio", "Core.DataBase.Select[" + storedProcedure + "," + parameters + "]" } }); } catch {} CloseConnection(); } return(null); } catch (InvalidOperationException) { return(null); } }
public bool Insert(string storedProcedure, QryParams parameters, out Dictionary <string, object> outParams, int timeout = 300) { if (!parameters.ContainsKey("@IdApplicazione") && IdApplicazione != -1) { parameters.Add("@IdApplicazione", IdApplicazione); } if (!parameters.ContainsKey("@IdUtente") && IdUtente != -1) { parameters.Add("@IdUtente", IdUtente); } if (!parameters.ContainsKey("@Data") && DataAttiva != DateTime.MinValue) { parameters.Add("@Data", DataAttiva.ToString("yyyyMMdd")); } try { SqlCommand cmd = _cmd.SqlCmd(storedProcedure, parameters, timeout); cmd.ExecuteNonQuery(); outParams = new Dictionary <string, object>(); foreach (SqlParameter par in cmd.Parameters) { if (par.Direction == ParameterDirection.InputOutput || par.Direction == ParameterDirection.Output || par.Direction == ParameterDirection.ReturnValue) { outParams.Add(par.ParameterName, par.Value); } } return(true); } catch (TimeoutException) { outParams = null; return(false); } }