예제 #1
0
        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);
        }
예제 #2
0
        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));
            }
        }
예제 #3
0
        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);
        }