Quote Originariamente inviata da djciko Visualizza il messaggio
ti sposto. cerca di tradurre la parte c# per chi non la capisce
codice:
 [Route("ExecuteQuery")]
        [HttpPost]
        //[Authorize]
        public async Task<IEnumerable<Dictionary<string, object>>> ExecuteQuery([FromBody] QueryParameter parameter)
        {
            // QUESTO METODO MI RESTITUISCE UNA TABELLA (DEL TIPO .NET DataTable) 
            // IN BASE ALLA CONNECTION STRING (PER APRIRE LA CONNESIONE CON IL db) 
            // E LA QUERY LANCIATA (DALL'UTENTE MEDIANTE UI) PRESENTI NELL'OGGETTO CHE PASSO DI TIPO QueryParameter --> parameter
            DataTable dt = await new DAL(_cfg).ExecuteQuery(parameter.BusinessItem, parameter.Query); 


            // ISTANZIO UNA LISTA DI DICTIONARY<KEY, VALUE>
            List<Dictionary<string, object>> result = new List<Dictionary<string, object>>();


            // DICHIARO UN DICTIONARY DOVE KEY è string, VALUE è object
            Dictionary<string, object> item = null;


            foreach (DataRow dr in dt.Rows)  // PER OGNI RIGA DELLA TABELLA (dt.Rows)
            {
                foreach (DataColumn dc in dt.Columns)  // PER OGNI COLONNA DELLA TABELLA (dt.Columns)
                {
                    item.Add(dc.ColumnName, dr[dc]); // AGGIUNGO UN ELEMENTO AL DICTIONARY key = colonna.NomeColonna, riga[colonna]
                }


                result.Add(item); // ALLA FINE AGGIUNGO IL DICTIONARY ALLA LISTA
            }


            return result; // LA RESULT E' LA LISTA POPOLATA DI DICTIONARY
        }