Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
Estou enfrentando um problema na hora de armazenar valores em uma listbox.
O que eu preciso fazer é armazenar um código proveniente de uma tabela chamada "histt", que é a tabela de histórico do programa, que deve levar a outra tabela de resultados. Porem eu quero que todos os valores desta tabela apareçam em uma listbox, até ai já consegui resolver, porem o problema é que não consigo armazenar os índices que eu preciso no ValueMember, porque eu preciso que para cada item o ValueMember dele seja igual a seu campo respectivo no banco de dados.
Uma síntese, eu preciso armazenar um campo específico do banco de dados em uma listbox, porque eu não quero mostrar quanto este campo vale, quero que ele seja oculto e quando eu clicar ele irá buscar este valor para exibir o resultado que já está funcionando.
O Problema é que para todos os itens ele só armazena um valor, se eu coloco para armazenar os itens do contador "i" ele só armazena o índice do primeiro registro do banco de dados, então todos os SelectedIndex aparecem com o mesmo índice 1.
Quero arrumar um jeito de atribuir a cada item da listbox o seu valor específico, ou seja, se o item 1 tem no banco de dados o índice 10, ele vai armazenar o índice 10.
Eis o meu código:
private void frmprincipal_Load(object sender, EventArgs e)
{
if (recuperah().Rows.Count > 0)
{
Console.WriteLine("Entrou");
for(int i=0;i<recuperah().Rows.Count;i++){
lsthistorico.ValueMember = recuperah().Rows[i]["Indice"].ToString();
lsthistorico.Items.Add(recuperah().Rows[i]["Título"].ToString() + " " + recuperah().Rows[i]["Data"].ToString());
}
}
}
Este seguinte é o código do void do DataTable que eu uso para buscar os valores, o método "Recuperah":
private DataTable recuperah()
{
try
{
SqlCeConnection newco = new SqlCeConnection(Class1.conexao);
String sql = "SELECT * FROM histt";
SqlCeDataAdapter da = new SqlCeDataAdapter(sql, newco);
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}
catch (Exception a)
{
MessageBox.Show("Erro de leitura \n" + a.ToString());
return null;
}
}
Obrigado
Carregando comentários...