public async Task <IDataReader> ExecuteStoredProcedureAsync(string name, params ParameterDefinition[] parametersDefinitions) { LogExecuteProc(name); ISqlConnection connection = connectionProvider.Provide <ISqlConnection>(); await connection.OpenAsync(); IDataReader dataReader1; using (ISqlCommand command = connection.CreateCommand(null)) { command.CommandTimeout = 300000; command.CommandType = CommandType.StoredProcedure; command.CommandText = name; ParameterDefinition[] parameterDefinitionArray = parametersDefinitions; for (int index = 0; index < parameterDefinitionArray.Length; ++index) { ParameterDefinition parameterDefinition = parameterDefinitionArray[index]; command.Parameters.AddWithValue(parameterDefinition.Name, parameterDefinition.Value, parameterDefinition.IsNullable, parameterDefinition.DbType, parameterDefinition.Size, parameterDefinition.Direction); parameterDefinition = null; } parameterDefinitionArray = null; if (parametersDefinitions.Where(m => m.Direction > ParameterDirection.Input).Count() > 0) { command.ExecuteNonQuery(); GetParameterCollection(command.Parameters.GetParameter(), parametersDefinitions); } IDataReader dataReader = await command.ExecuteReaderAsync(CommandBehavior.CloseConnection); dataReader1 = dataReader; } return(dataReader1); }
public async Task <IDataReader> ExecuteReaderAsync(string sql) { LogQuery(sql); ISqlConnection connection = connectionProvider.Provide <ISqlConnection>(); await connection.OpenAsync(); IDataReader dataReader1; using (ISqlCommand command = connection.CreateCommand(null)) { command.CommandTimeout = 300000; command.CommandType = CommandType.Text; command.CommandText = sql; IDataReader dataReader = await command.ExecuteReaderAsync(CommandBehavior.CloseConnection); dataReader1 = dataReader; } return(dataReader1); }