none
Dúvida com listbox e System.Data.DataRowView RRS feed

  • Pergunta

  • Olá, tenho um listBox no qual preenchi com valores de uma coluna de uma base de dados da seguinte maneira:

    Busca dos dados na Base:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Data;
    using System.Data.SqlClient;
    
    namespace WindowsFormsApplication1
    {
        class BancoDados
        {
            public DataTable CarregaListAbreChamado()
            {
                try
                {
                    SqlCommand cmd = new SqlCommand("SELECT Nome FROM Gerenciador_Recursos.dbo.Problema", AbrirConexao(Conexao()));
    
                    SqlDataReader list = cmd.ExecuteReader();
    
                    DataTable dt = new DataTable();
                    dt.Load(list);
    
                    return dt;
                }
                catch(Exception e)
                {
                    throw e;
                }
                finally
                {
                    FecharConexao(Conexao());
                }
            }
        }
    }

    Preenchimento do listBox:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Data.SqlClient;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form2 : Form
        {
            BancoDados bancoDados = new BancoDados();
    
            public Form2()
            {
                InitializeComponent();
    
                listBoxProblemaDoChamado.DataSource = bancoDados.CarregaListAbreChamado();
                listBoxProblemaDoChamado.DisplayMember = "Nome";
            }
        }
    }

    Entretanto este meu listBox me permite selecionar mais de um único valor e não estou conseguindo preencher uma lista com estes valores que foram selecionados. Alguém poderia me ajudar?

    Estou tentando fazer o seguinte código e este me retorna "System.Data.DataRowView" em todas as linhas da lista, o que não está me servindo...

    private void btnCadastrarChamado_Click(object sender, EventArgs e)
            {
                
                List<string> valorListBox = new List<string>();
    
    
                for (int i = 0; i < listBoxProblemaDoChamado.SelectedItems.Count; i++ )
                {
                    valorListBox.Add(listBoxProblemaDoChamado.Items[i].ToString());
                }
            }

    Agradeço a ajuda!


    sábado, 24 de outubro de 2015 17:10

Respostas

  • Porque é um datarow nele existe a estrutura de dados ,voce precisa converter o valor no seu for() coloque isso:

    private void btnCadastrarChamado_Click(object sender, EventArgs e)
            {
                
                List<string> valorListBox = new List<string>();
    
    
                for (int i = 0; i < listBoxProblemaDoChamado.SelectedItems.Count; i++ )
                {
                    valorListBox.Add(((DataRowView)listBoxProblemaDoChamado.Items[i])["NameAndScore"].ToString());
                }
            }


    Microsoft Technology Associate (MTA)

    • Marcado como Resposta Daniel CP domingo, 25 de outubro de 2015 13:27
    domingo, 25 de outubro de 2015 13:18

Todas as Respostas

  • Porque é um datarow nele existe a estrutura de dados ,voce precisa converter o valor no seu for() coloque isso:

    private void btnCadastrarChamado_Click(object sender, EventArgs e)
            {
                
                List<string> valorListBox = new List<string>();
    
    
                for (int i = 0; i < listBoxProblemaDoChamado.SelectedItems.Count; i++ )
                {
                    valorListBox.Add(((DataRowView)listBoxProblemaDoChamado.Items[i])["NameAndScore"].ToString());
                }
            }


    Microsoft Technology Associate (MTA)

    • Marcado como Resposta Daniel CP domingo, 25 de outubro de 2015 13:27
    domingo, 25 de outubro de 2015 13:18
  • Muito obrigado, funcionou perfeitamente!!

    =)

    domingo, 25 de outubro de 2015 13:29