none
Arraylist + DataTable Como Trabalhar? RRS feed

  • Discussão Geral

  • Eu tenho o seguinte cenário:

                SqlConnection conn = Classes.Conexao.AbrirConexao("Budget");
                DataTable Dt = new DataTable();
                Classes.Dados _objDados = new Classes.Dados();

                Dt = _objDados.PesquisaEmpresaCC(Convert.ToInt32(idCc));
               

    //Meu Select é o Seguinte ==>  Select  Empresa,  IdEmpresa from Empresa

               ArrayList Teste = new ArrayList();

                foreach (DataRow dtRow in Dt.Rows)
                {
                                  
                        Teste.Add(dtRow[0].ToString());

                }

    Listbox1.DataSource = Teste;

    Listbox1.DataBind();

    A pergunta é como que eu pego o IdEmpresa e o Nome da Empresa que eu carreguei no Listbox para dar insert em outra tabela?


    Jean Michetti

    terça-feira, 3 de outubro de 2017 16:49

Todas as Respostas

  • string text = listBox1.GetItemText(listBox1.SelectedItem);
    terça-feira, 3 de outubro de 2017 20:03
  • Igor,

    Sua ideia funciona, mas como eu pego o IdEmpresa, se eu não defini o Value do ListBox?


    Jean Michetti

    terça-feira, 3 de outubro de 2017 20:12
  • Olá Jean,

    Tenta usar um tipo dynamic, um exemplo usando tipo dynamic:

    Listbox1.DisplayMember = "Nome";
    Listbox1.ValueMember = "Id";
    
    var lista = new List<dynamic>();
    
    foreach (DataRow dtRow in Dt.Rows)
    {                              
       lista.Add(new { Id = dtRow[0].toString(), 
                       Nome = dtRow[1].toString() 
                     }
                );
    }
    
    Listbox1.DataSource = lista;
    Listbox1.DataBind();

    E para resgatar o item selecionado só fazer:

    var item = Listbox1.SelectedItem;
    Espero poder ter ajudado. 


    Forte abraço.

    terça-feira, 3 de outubro de 2017 21:44
  • Seria bom definir o Value do ListBox, mesmo vindo do banco, informe que o campo value é o IdEmpresa.

    ListBox1.ValueMember = "IdEmpresa";

    ListBox1.DisplayMember = "Empresa";

    • Editado Igor Caires quarta-feira, 4 de outubro de 2017 19:48
    quarta-feira, 4 de outubro de 2017 19:47