/// <summary> /// Execute SQL query with reader as a result /// </summary> /// <param name="connection">Database connection</param> /// <param name="sqlStatement">Statement to execute</param> /// <param name="parameters">Statement parameters</param> /// <param name="transaction">(Optional) Transaction this statement should be in</param> /// <returns></returns> public async static Task <IDataReader> ExecuteQuery(this IDbConnection connection, string sqlStatement, Dictionary <string, object> parameters = null, IDbTransaction transaction = null) { using (IDbCommand command = connection.CreateCommand()) { command.CommandType = CommandType.Text; command.CommandText = sqlStatement; if (transaction != null) { command.Transaction = transaction; } command.Connection.OpenConnection(); command.BindParameters(parameters); return(await Task.Run(() => command.ExecuteReader())); } }
/// <summary> /// Execute SQL stored procedure with reader as a result /// </summary> /// <param name="connection">Database connection</param> /// <param name="procName">Procedure to execute</param> /// <param name="parameters">Statement parameters</param> /// <param name="transaction">(Optional) Transaction this statement should be in</param> /// <returns></returns> public async static Task <IDataReader> ExecStoredProcedure(this IDbConnection connection, string procName, Dictionary <string, object> parameters = null, IDbTransaction transaction = null) { using (IDbCommand command = connection.CreateCommand()) { command.CommandType = CommandType.StoredProcedure; command.CommandText = procName; if (transaction != null) { command.Transaction = transaction; } command.Connection.OpenConnection(); command.BindParameters(parameters); return(await Task.Run(() => command.ExecuteReader())); } }