Usuário com melhor resposta
Função para implementar DataReader

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.
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
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.
Fulvio C
- Editado Fulvio Cezar Canducci Dias segunda-feira, 19 de outubro de 2015 00:22
-
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
-