Usuário com melhor resposta
Como preencher uma listview com registros do banco de dados

Pergunta
-
Boa tarde :D
Eu preciso preencher uma listview com os campos de uma tabela ( no caso o campo anotacao) so que so e preenchido na listview o primeiro registro da tabela, os outros nao sao preenchidos. Segue o codigo que eu usei para realizar o preenchimento
SqlConnection con3 = new SqlConnection(connectionString);
SqlCommand cmd3 = new SqlCommand("uspPrencheLembrete ", con3);
MessageBox.Show(codigoProfessor+" que loco");
cmd3.Parameters.AddWithValue("@COD_PROFESSORFK", codigoProfessor);
cmd3.CommandType = CommandType.StoredProcedure;
SqlDataReader reader3;
con3.Open();
try
{
reader3 = cmd3.ExecuteReader();
if (reader3.Read())
{
lbLembretesProfessor.Items.Add(reader3[0].ToString());
}
else
{
MessageBox.Show("Nenhum registro encontrado!");
}
}
catch (Exception ex)
{
MessageBox.Show("Erro: " + ex.ToString());
}
finally
{
con.Close();
}No caso do comando da minha stored procedure
SELECT ANOTACAO FROM ANOTACAO WHERE COD_PROFESSORFK = @COD_PROFESSORFK
Para a Programação eu uso C#, e banco de dados Sql Server 2008 r2
Agradeço desde ja :D
- Editado Filipe.R terça-feira, 9 de junho de 2015 17:14
Respostas
-
Olá Filipe.
Tente o seguinte trecho de código abaixo.
SqlConnection con3 = new SqlConnection(connectionString); SqlCommand cmd3 = new SqlCommand("uspPrencheLembrete ", con2); MessageBox.Show(codigoProfessor+" que loco"); cmd3.Parameters.AddWithValue("@COD_PROFESSORFK", codigoProfessor); cmd3.CommandType = CommandType.StoredProcedure; SqlDataReader reader3; con3.Open(); try { reader3 = cmd3.ExecuteReader(); while(reader3.Read()) { lbLembretesProfessor.Items.Add(reader3[0].ToString()); } } catch (Exception ex) { MessageBox.Show("Erro: " + ex.ToString()); } finally { con.Close(); }
Não cheguei a testar aqui, mas acredito que seja isso.
Ele não estava inserindo os outros registros pois você não estava iterando sobre o reader, o comando while que foi substituído pelo if faz isso.
Abraço!
- Marcado como Resposta Filipe.R terça-feira, 9 de junho de 2015 17:21
Todas as Respostas
-
Olá Filipe.
Tente o seguinte trecho de código abaixo.
SqlConnection con3 = new SqlConnection(connectionString); SqlCommand cmd3 = new SqlCommand("uspPrencheLembrete ", con2); MessageBox.Show(codigoProfessor+" que loco"); cmd3.Parameters.AddWithValue("@COD_PROFESSORFK", codigoProfessor); cmd3.CommandType = CommandType.StoredProcedure; SqlDataReader reader3; con3.Open(); try { reader3 = cmd3.ExecuteReader(); while(reader3.Read()) { lbLembretesProfessor.Items.Add(reader3[0].ToString()); } } catch (Exception ex) { MessageBox.Show("Erro: " + ex.ToString()); } finally { con.Close(); }
Não cheguei a testar aqui, mas acredito que seja isso.
Ele não estava inserindo os outros registros pois você não estava iterando sobre o reader, o comando while que foi substituído pelo if faz isso.
Abraço!
- Marcado como Resposta Filipe.R terça-feira, 9 de junho de 2015 17:21
-