Usuário com melhor resposta
Dúvida carregar ListView

Pergunta
-
Amigos,
tenho um ListView e desejo carrega-lo. Tenho uma classe que se chama RepositorioClientes onde possui um metodo BuscarTodos, porém a classe Cliente possui como atributo uma outra classe Endereço. Como faço para montar esse metodo BuscarTodos? Quando estou atribuindo os valores resgado na query eu atribuo a minha classe Cliente porém quando chego no atributo Endereco, não consigo especifica-los.
Segue código:
public List<Cliente> BuscarTodos() { Cliente cliente = null; IDbCommand command = null; string sql = "SELECT * FROM clientes Order By Nome"; try { command = new OleDbCommand(); command.Connection = Connection; command.CommandText = sql; command.CommandType = CommandType.Text; Connection.Open(); IDataReader reader = command.ExecuteReader(); while (reader.Read()) { string nomeCliente = (string)reader["STUDIO_PAX_PILATES_NOME"]; string cpfCliente = (string)reader["STUDIO_PAX_PILATES_CPF"]; string dtNascimentoCliente = (string)reader["STUDIO_PAX_PILATES_DT_NASCIMENTO"]; Endereco endCliente = (Endereco)Enum.Parse(typeof(Endereco), (string)reader["STUDIO_PAX_PILATES_END"]); Endereco endNumero = (Endereco)reader["STUDIO_PAX_PILATES_NUMERO"]; Endereco endComplemento = (Endereco)reader["STUDIO_PAX_PILATES_COMPLEMENTO"]; Endereco endCep = (Endereco)reader["STUDIO_PAX_PILATES_CEP"]; Endereco endBairro = (Endereco)reader["STUDIO_PAX_PILATES_BAIRRO"]; Endereco endEstado = (Endereco)reader["STUDIO_PAX_PILATES_ESTADO"]; Telefone TelRes = (Telefone)reader["STUDIO_PAX_PILATES_TEL_RESIDENCIAL"]; Telefone TelCom = (Telefone)reader["STUDIO_PAX_PILATES_TEL_COMERCIAL"]; Telefone TelCel = (Telefone)reader["STUDIO_PAX_PILATES_TEL_CELULAR"]; string emailCliente = (string)reader["STUDIO_PAX_PILATES_EMAIL"]; string profissaoCliente = (string)reader["STUDIO_PAX_PILATES_PROFISSAO"]; string pesoCliente = (string)reader["STUDIO_PAX_PILATES_PESO"]; string alturaCliente = (string)reader["STUDIO_PAX_PILATES_ALTURA"]; string obsCliente = (string)reader["STUDIO_PAX_PILATES_OBS"]; cliente = new Cliente(nomeCliente, cpfCliente, dtNascimentoCliente, emailCliente, profissaoCliente, pesoCliente, alturaCliente, obsCliente); cliente.Endereco.End = endCliente; clientes.Add(cliente); } } catch (Exception ex) { throw ex; } finally { if (Connection.State == ConnectionState.Open) { Connection.Close(); } } return clientes; }
Daniel
Respostas
-
Crie uma instancia de Endereco, e depois atribua ao seu objeto cliente
Exemplo:
... while (reader.Read()) { string nomeCliente = (string)reader["STUDIO_PAX_PILATES_NOME"]; string cpfCliente = (string)reader["STUDIO_PAX_PILATES_CPF"]; string dtNascimentoCliente = (string)reader["STUDIO_PAX_PILATES_DT_NASCIMENTO"]; string emailCliente = (string)reader["STUDIO_PAX_PILATES_EMAIL"]; string profissaoCliente = (string)reader["STUDIO_PAX_PILATES_PROFISSAO"]; string pesoCliente = (string)reader["STUDIO_PAX_PILATES_PESO"]; string alturaCliente = (string)reader["STUDIO_PAX_PILATES_ALTURA"]; string obsCliente = (string)reader["STUDIO_PAX_PILATES_OBS"]; //Preenchendo Endereco, vamos deduzir que isso tipo Endereco, todas sua propriedades são string Endereco objEndereco = new Endereco(); objEndereco.Endereco = (string)reader["STUDIO_PAX_PILATES_END"]); objEndereco.Numero = (string)reader["STUDIO_PAX_PILATES_NUMERO"]; objEndereco.omplemento = (string)reader["STUDIO_PAX_PILATES_COMPLEMENTO"]; objEndereco.Cep = (string)reader["STUDIO_PAX_PILATES_CEP"]; objEndereco.Bairro = (string)readerr["STUDIO_PAX_PILATES_BAIRRO"]; objEndereco.Estado = (string)reader["STUDIO_PAX_PILATES_ESTADO"]; //Mesma coisa para o Telefone, deduzindo que isso tipo Telefone, todas sua propriedades são string Telefone objTelefone = new Telefone(); objTelefone.Res = (string)reader["STUDIO_PAX_PILATES_TEL_RESIDENCIAL"]; objTelefone.Com = (string)reader["STUDIO_PAX_PILATES_TEL_COMERCIAL"]; objTelefone.Cel = (string)reader["STUDIO_PAX_PILATES_TEL_CELULAR"]; //Adicionando valores pelo construtors da classe cliente = new Cliente(nomeCliente, cpfCliente, dtNascimentoCliente, emailCliente, profissaoCliente, pesoCliente, alturaCliente, obsCliente); cliente.Endereco = objEndereco; cliente.Telefone = objTelefone; clientes.Add(cliente); } ...
Espero que tenha ajudado.
Vitor Mendes | Seu feedback é muito importante para todos!- Marcado como Resposta dralves quinta-feira, 30 de junho de 2011 17:17