none
Recuperar dados de uma lista RRS feed

  • Pergunta

  • Ola,

    Gostaria de saber como faço para recuperar dados de um list usando

    Eis meu código

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data.OleDb;
    using System.Data;
    using System.Collections;
    
    namespace CRUD_Access
    {
        class DAO
        {
    
            Conecta c = new Conecta();
    
            private List<Classes> lista = new List<Classes>();
    
    
    
            public List<Classes> GetList()
                {
    
                    string query = "";
    
    
                    c.conectar();
    
    
                    query += " SELECT id,nome,idade FROM ";
                    query += " teste ORDER BY id";
    
    
                    OleDbCommand cd = new OleDbCommand();
                    cd.Connection = c.cn;
                    cd.CommandText = query;
                    OleDbDataReader dr = cd.ExecuteReader();
    
    
    
                    try
                    {
    
    
                        while (dr.Read())
                        {
    
                            string strId = dr["id"].ToString();
                            string strNome = dr["nome"].ToString();
                            string strIdade = dr["idade"].ToString();
    
                            Classes obj = new Classes();
    
                            obj.id = Convert.ToInt32(strId);
                            obj.Nome = strNome;
                            obj.Idade = strIdade;
    
                            lista.Add(obj);
    
                        }
    
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                    finally
                    {
                        if (c.cn.State == ConnectionState.Open)
                            c.desconectar();
                    }
    
    
    
    
                    return lista;
    
                }
           
    
     
           
    
    
        }
    }

    e no form principal

     private void button1_Click(object sender, EventArgs e)
            {
    
    
                List<Classes> calledList = objDAO.GetList();
                int i = 0;
                for (i = 0; i <= calledList.Count - 1; i++)
                {
                    MessageBox.Show(calledList[i].ToString());
                }
                
           
            }

    Só que ele me retorna somente isso e não as strings


    Se for para responder "procure no google", nem perca seu tempo ! :)

    quinta-feira, 12 de outubro de 2017 15:05

Respostas

  • Sua classe chamada Classes não sobrescreve a função ToString, logo não retornará os valores que você espera. O que você pode fazer é:

    • Alterar o MessageBox.Show de modo a informar qual ou quais propriedades deseja exibir o valor, ex:
    MessageBox.Show(calledList[i].Nome);
    • Sobrescrever a função ToString(), ex:
    public class Classes
    {
    // mantenha as propriedades já existentes e inclua a função abaixo
    
    public override string ToString()
    {
        return String.Format("Id: {0} - Nome: {1} - Idade: {2}", id, Nome, Idade);
    }
    
    }


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    quinta-feira, 12 de outubro de 2017 22:45

Todas as Respostas

  • foreach (var itens in calledList) { MessageBox.Show(itens + " ");

    // ou recebendo o valor em textBox
    textBox.Text += itens +"\r\n";
    }

    Se eu respondi sua dúvida não esqueça de clicar em Votar como útil e Marcar como Resposta.

    quinta-feira, 12 de outubro de 2017 18:03
  • Sua classe chamada Classes não sobrescreve a função ToString, logo não retornará os valores que você espera. O que você pode fazer é:

    • Alterar o MessageBox.Show de modo a informar qual ou quais propriedades deseja exibir o valor, ex:
    MessageBox.Show(calledList[i].Nome);
    • Sobrescrever a função ToString(), ex:
    public class Classes
    {
    // mantenha as propriedades já existentes e inclua a função abaixo
    
    public override string ToString()
    {
        return String.Format("Id: {0} - Nome: {1} - Idade: {2}", id, Nome, Idade);
    }
    
    }


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    quinta-feira, 12 de outubro de 2017 22:45
  • Bom dia,

    Se até amanhã não houver retorno na thread, a mesma será encerrada.

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 16 de outubro de 2017 13:39
    Moderador
  • Muito obrigado Juliano Nunes.

    Usei esse trecho que você me passou

     List<Classes> calledList = objDAO.GetList();
                int i = 0;
                for (i = 0; i <= calledList.Count - 1; i++)
                {
                    MessageBox.Show(calledList[i].Nome);
                }


    Se for para responder "procure no google", nem perca seu tempo ! :)

    terça-feira, 17 de outubro de 2017 13:22