none
Como preencher uma listview com registros do banco de dados RRS feed

  • 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
    terça-feira, 9 de junho de 2015 17:09

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
    terça-feira, 9 de junho de 2015 17:17

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
    terça-feira, 9 de junho de 2015 17:17
  • Pegou, Muito Obrigado! :D
    terça-feira, 9 de junho de 2015 17:22