/// <summary> /// Metodo que ejecuta una select sobre la bbdd y devuelve un dataTable con los datos /// </summary> /// <param name="consulta">Command con la consulta a ejecutar</param> /// <returns>datatable con los datos o datatable vacio si no hay datos</returns> public DataTable getDatos(SqlCommand consulta) { //creo un datatable donde se almacena los datos DataTable datos = new DataTable(); try { //creo conexion a bbdd ConexionBuilder connBuilder = new ConexionBuilder(); SqlConnection conn = connBuilder.getConexion(); //asigno la conexion consulta.Connection = conn; //ejecuto el reader SqlDataReader Reader = consulta.ExecuteReader(); //cargo los datos del reader en el datatable datos.Load(Reader); //cierro la conexion conn.Close(); } //relanzamos las excepciones para controlarla en la vista y poder informar al usuario catch (SqlException ex) { throw ex; } catch (InvalidOperationException ex) { throw ex; } return(datos); }
/// <summary> /// Metodo que ejecuta un procedimiento sobre la bbdd. /// </summary> /// <pre>El procedimiento debe tener un parametro de salida llamado @res de tipo bit</pre> /// <param name="comando">Comando a ejecutar</param> /// <returns>True si la operacion fue correcta, false en caso contrario</returns> public Boolean executeStoredProcedure(SqlCommand comando) { Boolean opCorrecta = false; try { ConexionBuilder connBuilder = new ConexionBuilder(); SqlConnection conn = connBuilder.getConexion(); //establezco el parametro de salida del procedimiento SqlParameter outputParam = new SqlParameter("@res", SqlDbType.Bit) { Direction = ParameterDirection.Output }; comando.Parameters.Add(outputParam); //Asigno la conexion al comando comando.Connection = conn; comando.ExecuteNonQuery(); //recogo el valor del parametro de salida del procedimiento opCorrecta = Convert.ToBoolean(outputParam.Value.ToString()); //cierro la conexion conn.Close(); } //relanzamos las excepciones para controlarla en la vista y poder informar al usuario catch (SqlException ex) { throw ex; } catch (InvalidOperationException ex) { throw ex; } return(opCorrecta); }
/// <summary> /// Metodo que ejecuta una instruccion insert, update o delete. /// </summary> /// <param name="consulta"></param> /// <returns>True si la operacion fue correcta, false en caso contrario</returns> public Boolean EjecutaNoQuery(SqlCommand instruccion) { Boolean res = false; try { //creo la coonexion ConexionBuilder connBuilder = new ConexionBuilder(); SqlConnection conn = connBuilder.getConexion(); //asigno la conexion al command instruccion.Connection = conn; //ejecuto el command y cojo las filas afectas int filas = instruccion.ExecuteNonQuery(); if (filas > 0) { res = true; } //cierro la conexion conn.Close(); } //relanzamos las excepciones para controlarla en la vista y poder informar al usuario catch (SqlException ex) { throw ex; } catch (InvalidOperationException ex) { throw ex; } return(res); }