none
Função para implementar DataReader RRS feed

  • Pergunta

  • Galera, tem como criar uma função para implementar esse while?

    Por exemplo, de outro form eu chamaria essa função passando somente o parametro dRd, ao inves de chamar todos os textBox.

    Dim dr As Npgsql.NpgsqlDataReader = cmd.ExecuteReader(dRd)
            While dr.Read()
                frm_EditarCliente.tb_Nome_EC.Text = dr("NOME").ToString()
                frm_EditarCliente.tb_CPF_EC.Text = dr("CPF").ToString()
                frm_EditarCliente.mkb_CodigoCliente_EC.Text = dr("CODIGOCLIENTE").ToString()
                frm_EditarCliente.tb_DataNasc_EC.Text = dr("DATANASCIMENTO").ToString()
                frm_EditarCliente.tb_Tel1_EC.Text = dr("TELEFONE1").ToString()
                frm_EditarCliente.tb_Tel2_EC.Text = dr("TELEFONE2").ToString()
                frm_EditarCliente.tb_email_EC.Text = dr("EMAIL").ToString()
                frm_EditarCliente.tb_Endereco_EC.Text = dr("LOGRADOURO").ToString()
                frm_EditarCliente.tb_numero_EC.Text = dr("NUMERO").ToString()
                frm_EditarCliente.tb_Complemento_EC.Text = dr("COMPLEMENTO").ToString()
                frm_EditarCliente.tb_Bairro_EC.Text = dr("BAIRRO").ToString()
                frm_EditarCliente.tb_Cidade_EC.Text = dr("CIDADE").ToString()
                frm_EditarCliente.tb_Estado_EC.Text = dr("ESTADO").ToString()
                frm_EditarCliente.cb_Status.Text = dr("STATUS").ToString()
                frm_EditarCliente.tb_CEP_EC.Text = dr("CEP").ToString()
            End While

    Tipo assim:

    Dim dr As Npgsql.NpgsqlDataReader = cmd.ExecuteReader(dRd)
            While dr.Read()
                dRD
            End While

    Onde drRd teria todo o conteudo da outro while.

    Desculpa se falei alguma besteira, sou novo em programacao.

    domingo, 18 de outubro de 2015 02:12

Respostas

  • Bom dia, pelo o que entendi, você quer ter um método que simplesmente lê o data reader e devolve um objeto preenchido, se for isso e mesmo, ao inves de ler o reader e já preencher os textBox, use uma classe Cliente por exemplo e crie um método +- assim:

    public List<Cliente> LerDados(SqlDataReader reader)
    {
      List<Clente> clientes = new List<Cliente>();
    
      while (reader.Read())
      {
        var cliente = new Cliente();
        cliente.Nome = reader["Nome"].ToString();
        
        clientes.Add(cliente);
      }
       
      return clientes;
    
    }
    
    
    var dados = LerDados(reader);
    
    

    Sempre que precisar ler esses mesmos dados, você reaproveita esse método...seria até legal você encapsular essa leitura de dados do banco em uma classe a parte para usufruir de reúso.

    Dê uma olhada nesses links:

    http://www.macoratti.net/11/06/c_acam1.htm

    http://www.macoratti.net/11/05/c_aspn3c.htm

    Abraço!

    • Marcado como Resposta GabrielMrs06 quinta-feira, 22 de outubro de 2015 06:00
    segunda-feira, 19 de outubro de 2015 10:56

Todas as Respostas

  • Galera, tem como criar uma função para implementar esse while?

    Por exemplo, de outro form eu chamaria essa função passando somente o parametro dRd, ao inves de chamar todos os textBox.

    Dim dr As Npgsql.NpgsqlDataReader = cmd.ExecuteReader(dRd)
            While dr.Read()
                frm_EditarCliente.tb_Nome_EC.Text = dr("NOME").ToString()
                frm_EditarCliente.tb_CPF_EC.Text = dr("CPF").ToString()
                frm_EditarCliente.mkb_CodigoCliente_EC.Text = dr("CODIGOCLIENTE").ToString()
                frm_EditarCliente.tb_DataNasc_EC.Text = dr("DATANASCIMENTO").ToString()
                frm_EditarCliente.tb_Tel1_EC.Text = dr("TELEFONE1").ToString()
                frm_EditarCliente.tb_Tel2_EC.Text = dr("TELEFONE2").ToString()
                frm_EditarCliente.tb_email_EC.Text = dr("EMAIL").ToString()
                frm_EditarCliente.tb_Endereco_EC.Text = dr("LOGRADOURO").ToString()
                frm_EditarCliente.tb_numero_EC.Text = dr("NUMERO").ToString()
                frm_EditarCliente.tb_Complemento_EC.Text = dr("COMPLEMENTO").ToString()
                frm_EditarCliente.tb_Bairro_EC.Text = dr("BAIRRO").ToString()
                frm_EditarCliente.tb_Cidade_EC.Text = dr("CIDADE").ToString()
                frm_EditarCliente.tb_Estado_EC.Text = dr("ESTADO").ToString()
                frm_EditarCliente.cb_Status.Text = dr("STATUS").ToString()
                frm_EditarCliente.tb_CEP_EC.Text = dr("CEP").ToString()
            End While

    Tipo assim:

    Dim dr As Npgsql.NpgsqlDataReader = cmd.ExecuteReader(dRd)
            While dr.Read()
                dRD
            End While

    Onde drRd teria todo o conteudo da outro while.

    Desculpa se falei alguma besteira, sou novo em programacao.

    Eu não entendi bem o seu questionamento, se se por acaso esse código traz um registro apenas não precisa usar While! Então de uma maior clareza para que todos possam te ajudar!

    Fulvio C


    segunda-feira, 19 de outubro de 2015 00:21
  • Bom dia, pelo o que entendi, você quer ter um método que simplesmente lê o data reader e devolve um objeto preenchido, se for isso e mesmo, ao inves de ler o reader e já preencher os textBox, use uma classe Cliente por exemplo e crie um método +- assim:

    public List<Cliente> LerDados(SqlDataReader reader)
    {
      List<Clente> clientes = new List<Cliente>();
    
      while (reader.Read())
      {
        var cliente = new Cliente();
        cliente.Nome = reader["Nome"].ToString();
        
        clientes.Add(cliente);
      }
       
      return clientes;
    
    }
    
    
    var dados = LerDados(reader);
    
    

    Sempre que precisar ler esses mesmos dados, você reaproveita esse método...seria até legal você encapsular essa leitura de dados do banco em uma classe a parte para usufruir de reúso.

    Dê uma olhada nesses links:

    http://www.macoratti.net/11/06/c_acam1.htm

    http://www.macoratti.net/11/05/c_aspn3c.htm

    Abraço!

    • Marcado como Resposta GabrielMrs06 quinta-feira, 22 de outubro de 2015 06:00
    segunda-feira, 19 de outubro de 2015 10:56
  • Valeu cara, era exatamente isso que tava querendo, so nao tava sabendo explicar. Sou novo em vb e tenho que aprender muito. Valeu pela ajuda.
    quinta-feira, 22 de outubro de 2015 06:00