protected static List <T> CollectionFromDataSet <T>(DataSet ds, TFromDataRow <T> action) { if (ds == null || ds.Tables.Count != 1 || ds.Tables[0].Rows.Count == 0) { return(null); } List <T> list = new List <T>(ds.Tables[0].Rows.Count); foreach (DataRow dr in ds.Tables[0].Rows) { list.Add(action(dr)); } return(list); }
protected async Task <List <T> > ExecuteDataSet <T>(string connectionString, CommandType type, TFromDataRow <T> action, string query, SqlParameter[] parameters = null) { using (SqlConnection connection = new SqlConnection(connectionString)) { var command = connection.CreateCommand(); command.CommandType = type; command.CommandText = query; if (parameters != null) { foreach (var paramter in parameters) { command.Parameters.Add(paramter); } } await connection.OpenAsync(); var reader = await command.ExecuteReaderAsync(); return(await CollectionFromDataSet <T>(reader, action)); } }
protected static async Task <List <T> > CollectionFromDataSet <T>(SqlDataReader reader, TFromDataRow <T> action) { List <T> list = null; if (reader.HasRows) { list = new List <T>(); while (await reader.ReadAsync()) { list.Add(action(reader)); } } return(list); }