none
checkedlistbox RRS feed

  • Pergunta

  • Bom galera tenho um form com um checkedlistbox 

    eu preencho ele com um dados do bd (MySql)

    ate ai tudo bem!

    o problema é para pegar o valor dos que estão "checked", ele me retorna isso  "System.Data.DataRowView".

    aqui eu carrego o checkedlistbox.

            private void frmBuscaClientes_Load(object sender, EventArgs e)
            {
                sql = "describe cacambas.vw_cliente_end_contato;";
                dtclientes = Exec.buscar(sql);
                clbClientes.DataSource = dtclientes;
                clbClientes.DisplayMember = "Field";
                clbClientes.ValueMember = "Field";
    
            }

    carrega certinho.....

    o problema esta aqui na hora de retornar os valores que foram checked:

     private void btnBuscar_Click(object sender, EventArgs e)
            {
                int index = 0;
                if (clbClientes.CheckedItems.Count != 0)
                {
                    // If so, loop through all checked items and print results.
                    string parametros = "";
    
                    for (int i = 0; i <= clbClientes.CheckedItems.Count - 1; i++)
                    {
                        parametros = parametros + clbClientes.CheckedItems[i].ToString() + ",";
                        
                    }
                    index = parametros.Length;
                    if (parametros.Substring(index - 1) == ",")
                    {
                        //remove a ultima "," 
                        parametros = parametros.Remove(parametros.Length - 1);
                        
                    }
                    // aqui mais codigo usando os parametros
                }
            }

    ai em parametros é inserido isso para cada item checked:  "System.Data.DataRowView"

    alguem sabe como pego o valor , ou seja o mesmo que é exibido?

    segunda-feira, 14 de outubro de 2013 14:06

Respostas

  • Verifique assim: 

    (clbClientes.CheckedItems[i] as DataRowView).Row["Campo"].ToString()


    Diego Cotini do Couto - MCTS .NET Framework 3.5, ASP.NET Applications


    segunda-feira, 14 de outubro de 2013 21:24

Todas as Respostas

  • Está dando um ToString() no Item.

    Precisa pegar o valor, verifique se não tem a propriedade Value, conforme:

    clbClientes.CheckedItems[i].Value


    Diego Cotini do Couto - MCTS .NET Framework 3.5, ASP.NET Applications

    • Sugerido como Resposta Gustavo Gaigher segunda-feira, 14 de outubro de 2013 19:06
    segunda-feira, 14 de outubro de 2013 14:47
  • ele me retorna este erro?

    Error 1 'object' does not contain a definition for 'Value' and no extension method 'Value' accepting a first argument of type 'object' could be found (are you missing a using directive or an assembly reference?)

    • Sugerido como Resposta Gustavo Gaigher segunda-feira, 14 de outubro de 2013 19:06
    segunda-feira, 14 de outubro de 2013 14:53
  • Verifique dessa forma (onde "Campo" é o nome da coluna que contém o valor que deseja):

    clbClientes.CheckedItems[i].Row["Campo"].ToString()


    Diego Cotini do Couto - MCTS .NET Framework 3.5, ASP.NET Applications

    • Sugerido como Resposta Gustavo Gaigher segunda-feira, 14 de outubro de 2013 19:06
    segunda-feira, 14 de outubro de 2013 15:15
  • o mesmo erro do anterior !

    eu creio que tenha que alterar alguma propriedade do checkedlistbox que eu nao descobri ainda.

    do mesmo modo que faz para ele aparecer na load do form.

    • Sugerido como Resposta Gustavo Gaigher segunda-feira, 14 de outubro de 2013 19:06
    segunda-feira, 14 de outubro de 2013 19:00
  • Desculpe, mas só agora fui me dar conta que não se tratava de asp.net.

    Você está usando windows forms? Qual a versão do framework?


    Diego Cotini do Couto - MCTS .NET Framework 3.5, ASP.NET Applications

    segunda-feira, 14 de outubro de 2013 21:18
  • Verifique assim: 

    (clbClientes.CheckedItems[i] as DataRowView).Row["Campo"].ToString()


    Diego Cotini do Couto - MCTS .NET Framework 3.5, ASP.NET Applications


    segunda-feira, 14 de outubro de 2013 21:24
  • Cara é isso mesmo....

    muito obrigado mesmo. 

    quebrei muito a cabeça pra isso e nao consegui ... valeu !

    segunda-feira, 14 de outubro de 2013 23:47