none
C# Como adicionar resultados de um SELECT em uma List e usar a list para Popular uma Table RRS feed

  • Pergunta

  • Nesse metodo ele esta populando apenas um item do select , e se euquiser colocar a materias também com eu vou popular esse list?

    public static List<string> Listar(string curso)
            {
                try
                {
                    //Variavel local
                    FbCommand command;
                    FbDataAdapter dataAdapter;

                    //Aqui você abre a conexão com o banco

                    //Consulta
                    command = new FbCommand(@"
                    SELECT 
                    NOME,MATERIA
                    FROM  CURSO", ( sua conexão) ;

                    dataAdapter = new FbDataAdapter(command);

                     DataTable objDataTable = new DataTable();


                    dataAdapter.Fill(objDataTable);

                   
                    List<string> ListaDeDados = new List<string>();

                     foreach (DataRow dataRow in objDataTable.Rows)
                    {
                        string informação = dataRow["NOME"].ToString();
                        ListaDeDados.Add(informação);
                    }

                    return ListaDeDados;
                }
                catch (Exception ex)
                {
                  
                    throw ex;
                }
                finally
                {
                    //Fechar Conexão 
                }
    }

    domingo, 15 de abril de 2018 01:56

Respostas

  • Entao eu quero que adicione nomes mesmo, mas esse select busca duas coisas curso e materia, ja esta mostrando nome de curso, agora eu queria saber como mostra materia. porque esse list so esta mostrando curso.

    Agora entendi. Quando vi select pensei em outra coisa, my bad.

    Você tem algumas opções ai.

    1) Criar uma class model:

    public class Curso
    {
       public string Nome { get; set; }
       public string Materia { get; set; }
    }

    Alterar o retorno do method para List<Curso>.

    Adaptar o seu método atual neste trecho:

    List<Curso> cursos = new List<Curso>();
    
    foreach (DataRow dataRow in objDataTable.Rows)
    {
    	cursos.Add(new Curso()
    	{
    		Materia = dataRow["MATERIA"].ToString(),
    		Nome = dataRow["NOME"].ToString()
    	});
    }

    2) Ou retornar um Dictionary e fazer as devidas alterações no foreach tb.



    domingo, 15 de abril de 2018 16:33

Todas as Respostas

  • Aparentemente ta ok o código. Esse código mostrado não vai popular select, só está fazendo uma query e adicionando nomes em uma List.

    Já tentou debugar o foreach e ver quantos nomes são adicionados na List?

    Teria de mostrar o código onde você está preenchendo a Table.
    domingo, 15 de abril de 2018 12:25
  • Entao eu quero que adicione nomes mesmo, mas esse select busca duas coisas curso e materia, ja esta mostrando nome de curso, agora eu queria saber como mostra materia. porque esse list so esta mostrando curso.
    domingo, 15 de abril de 2018 14:55
  • Entao eu quero que adicione nomes mesmo, mas esse select busca duas coisas curso e materia, ja esta mostrando nome de curso, agora eu queria saber como mostra materia. porque esse list so esta mostrando curso.

    Agora entendi. Quando vi select pensei em outra coisa, my bad.

    Você tem algumas opções ai.

    1) Criar uma class model:

    public class Curso
    {
       public string Nome { get; set; }
       public string Materia { get; set; }
    }

    Alterar o retorno do method para List<Curso>.

    Adaptar o seu método atual neste trecho:

    List<Curso> cursos = new List<Curso>();
    
    foreach (DataRow dataRow in objDataTable.Rows)
    {
    	cursos.Add(new Curso()
    	{
    		Materia = dataRow["MATERIA"].ToString(),
    		Nome = dataRow["NOME"].ToString()
    	});
    }

    2) Ou retornar um Dictionary e fazer as devidas alterações no foreach tb.



    domingo, 15 de abril de 2018 16:33