none
Como recuperar registros de uma tabela e jogá-los em uma list of lists RRS feed

  • Pergunta

  • Estou tentando usar uma list of lists do C# para recuperar dados de uma pesquisa em uma tabela.
    A pequisa simplificada é:  "select C1, C2, C3 from Table1". Ou seja, há 3 colunas e um número indefinido de registros recuperados.
    Para lidar com isso eu fiz:
    List<List<string>> TabValues();
    List<string> Columns();
    List<string> Resul();
    List<string> Temp();
    Columns.Add("C1");
    Columns.Add("C2");
    Columns.Add("C3");
    TabValues.Add(Columns);
    TabValues.Add(Temp);
    TabValues.Add(Temp);
    TabValues.Add(Temp);
    Tive que incluir a lista vazia (Temp) em TabValues 3 vezes por causa dos 3 campos da tabela.
    Para rodar o comando eu fiz:
    rdr = Cmd.ExecuteReader();
    i=0;
    while (rdr.Read())
    {
       for (j=0; j<3; j++)
       {
         TabValues.ElementAt(i+1).Insert(0, GetValue(j).ToString());
       }
       i++;
    }
    Esse procedimento não funcionou. Todas as listas ficaram com os mesmos valores do primeiro registro.
    Note que neste exemplo eu usei 3 colunas, mas minha rotina deve ser genérica, para qualquer número de colunas.
    Alguém saberia me dizer o que há de errado no código acima? Qual a melhor maneira de fazer o que preciso?
    Obrigado.
    sábado, 21 de março de 2020 18:47