Usuário com melhor resposta
Dúvida com listbox e System.Data.DataRowView

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!
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
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
-