Botão Pesquisar (alguém pode ajudar ?)
09/10/2013
0
Desde já agradeço aos amigos do Fórum....
Vinicius Biá
Posts
09/10/2013
Joel Rodrigues
09/10/2013
Vinicius Biá
Na camada de acesso aos dados estou com esse código aqui...... estaria correto ?
public void Pesquisar(Cliente cliente)
{
MySqlConnection con = new MySqlConnection();
try
{
con.ConnectionString = Dados.StringDeConexao;
con.Open();
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = con;
cmd.CommandText = "SELECT cod_cliente,datacad_cliente,nasc_cliente,cnpjcpf_cliente,ierg_cliente,endereco_cliente,cep_cliente,bairro_cliente,cidade_cliente,uf_cliente,telfixo_cliente,telmovel_cliente,contato_cliente,email_cliente,website_cliente,extra_cliente,estadocivil_cliente,complementoend_cliente,orgaoexpedrg_cliente,dataexpedrg_cliente,empresa_cliente,empresaend_cliente,numendempresa_cliente,bairroempresa_cliente,cidadeempresa_cliente,ufempresa_cliente,cepempresa_cliente,telefoneempresa_cliente,contatoempresa_cliente,cargoempresa_cliente,complementoempresa_cliente,cnpjempresa_cliente,dataadmissao_cliente,valorrenda_cliente,referenciapessoal1_cliente,referenciapessoal2_cliente,referenciapessoal3_cliente,telefonereferencia1_cliente,telefonereferencia2_cliente,telefonereferencia3_cliente,tipo_cliente,sexo_cliente,grauinstrucao_cliente,naturalidade_cliente,nacionalidade_cliente,nomepai_cliente,nomemae_cliente,ramal_cliente,telmovel2_cliente,numend_cliente,ieempresa_cliente FROM tb_cliente WHERE nome_cliente LIKE '%" + cliente.Nome + "% ' ";
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
MySqlDataReader dr;
dr = cmd.ExecuteReader();
dr.Read();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
con.Close();
}
09/10/2013
Joel Rodrigues
1) Está recebendo um objeto do tipo Cliente. Não seira mais adequado receber algum tipo de parâmetro de busca, como o campo e o valor a ser buscado?
2) É void. Se é void, indica que ele não retorna nada para a camada de cima.Sendo assim, como você lê o resultado da busca? Creio que o mais adequado seria retornar o resultado da busca como uma lista de clientes.
3) Não está usando parâmetros no MySqlCommand, o que deixa sua aplicação sujeita a ataques de SQL Injection (pesquise sobre isso).
09/10/2013
Vinicius Biá
1) Está recebendo um objeto do tipo Cliente. Não seira mais adequado receber algum tipo de parâmetro de busca, como o campo e o valor a ser buscado?
2) É void. Se é void, indica que ele não retorna nada para a camada de cima.Sendo assim, como você lê o resultado da busca? Creio que o mais adequado seria retornar o resultado da busca como uma lista de clientes.
3) Não está usando parâmetros no MySqlCommand, o que deixa sua aplicação sujeita a ataques de SQL Injection (pesquise sobre isso).
Então a 1° Ela está recebendo o objeto do tipo cliente por que é a classe onde contem as variáveis da classe cliente ex:
private string cod_cliente;
private DateTime datacad_cliente;
private string nome_cliente;
private DateTime nasc_cliente;
private string cnpjcpf_cliente;
public string Codigo
{
get { return cod_cliente; }
set { cod_cliente = value; }
}
public DateTime DataCadastro
{
get { return datacad_cliente; }
set { datacad_cliente = value; }
}
public string Nome
{
get { return nome_cliente; }
set { nome_cliente = value; }
}
public DateTime DataNasc
{
get { return nasc_cliente; }
set { nasc_cliente = value; }
}
public string CnpjCpf
{
get { return cnpjcpf_cliente; }
set { cnpjcpf_cliente = value; }
}
A 2° Esta void porque ela se comunica com a camada de Regras, que por sua vez esta eu chamo na camada View
A 3° Realmente eu não usei parâmetros, segue o código aqui com os paramentros
public void Pesquisar(Cliente cliente)
{
MySqlConnection con = new MySqlConnection();
try
{
con.ConnectionString = Dados.StringDeConexao;
con.Open();
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = con;
cmd.CommandText = "SELECT cod_cliente,datacad_cliente,nasc_cliente,cnpjcpf_cliente,ierg_cliente,endereco_cliente,cep_cliente,bairro_cliente,cidade_cliente,uf_cliente,telfixo_cliente,telmovel_cliente,contato_cliente,email_cliente,website_cliente,extra_cliente,estadocivil_cliente,complementoend_cliente,orgaoexpedrg_cliente,dataexpedrg_cliente,empresa_cliente,empresaend_cliente,numendempresa_cliente,bairroempresa_cliente,cidadeempresa_cliente,ufempresa_cliente,cepempresa_cliente,telefoneempresa_cliente,contatoempresa_cliente,cargoempresa_cliente,complementoempresa_cliente,cnpjempresa_cliente,dataadmissao_cliente,valorrenda_cliente,referenciapessoal1_cliente,referenciapessoal2_cliente,referenciapessoal3_cliente,telefonereferencia1_cliente,telefonereferencia2_cliente,telefonereferencia3_cliente,tipo_cliente,sexo_cliente,grauinstrucao_cliente,naturalidade_cliente,nacionalidade_cliente,nomepai_cliente,nomemae_cliente,ramal_cliente,telmovel2_cliente,numend_cliente,ieempresa_cliente FROM tb_cliente WHERE nome_cliente LIKE '%" + cliente.Nome + "% ' ";
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
cmd.Parameters.AddWithValue("@cod_cliente", cliente.Codigo);
cmd.Parameters.AddWithValue("@datacad_cliente", cliente.DataCadastro);
cmd.Parameters.AddWithValue("@nome_cliente", cliente.Nome);
cmd.Parameters.AddWithValue("@nasc_cliente", cliente.DataNasc);
cmd.Parameters.AddWithValue("@cnpjcpf_cliente", cliente.CnpjCpf);
cmd.Parameters.AddWithValue("@ierg_cliente", cliente.Ierg);
cmd.Parameters.AddWithValue("@endereco_cliente", cliente.Endereco);
cmd.Parameters.AddWithValue("@cep_cliente", cliente.Cep);
cmd.Parameters.AddWithValue("@bairro_cliente", cliente.Bairro);
cmd.Parameters.AddWithValue("@cidade_cliente", cliente.Cidade);
cmd.Parameters.AddWithValue("@uf_cliente", cliente.Uf);
cmd.Parameters.AddWithValue("@telfixo_cliente", cliente.TelFixo);
cmd.Parameters.AddWithValue("@telmovel_cliente", cliente.TelMovel);
cmd.Parameters.AddWithValue("@contato_cliente", cliente.Contato);
cmd.Parameters.AddWithValue("@email_cliente", cliente.Email);
cmd.Parameters.AddWithValue("@website_cliente", cliente.WebSite);
cmd.Parameters.AddWithValue("@extra_cliente", cliente.Extra);
cmd.Parameters.AddWithValue("@estadocivil_cliente", cliente.EstadoCivil);
cmd.Parameters.AddWithValue("@complementoend_cliente", cliente.ComplementoEnd);
cmd.Parameters.AddWithValue("@orgaoexpedrg_cliente", cliente.OrgaoExpedRG);
cmd.Parameters.AddWithValue("@dataexpedrg_cliente", cliente.DataExpedRG);
cmd.Parameters.AddWithValue("@empresa_cliente", cliente.Empresa);
cmd.Parameters.AddWithValue("@empresaend_cliente", cliente.EmpresaEnd);
cmd.Parameters.AddWithValue("@numendempresa_cliente", cliente.EmpresaNum);
cmd.Parameters.AddWithValue("@bairroempresa_cliente", cliente.BairroEmpresa);
cmd.Parameters.AddWithValue("@cidadeempresa_cliente", cliente.CidadeEmpresa);
cmd.Parameters.AddWithValue("@ufempresa_cliente", cliente.UfEmpresa);
cmd.Parameters.AddWithValue("@cepempresa_cliente", cliente.CepEmpresa);
cmd.Parameters.AddWithValue("@telefoneempresa_cliente", cliente.TelefoneEmpresa);
cmd.Parameters.AddWithValue("@contatoempresa_cliente", cliente.ContatoEmpresa);
cmd.Parameters.AddWithValue("@cargoempresa_cliente", cliente.CargoEmpressa);
cmd.Parameters.AddWithValue("@complementoempresa_cliente", cliente.ComplementoEmpresa);
cmd.Parameters.AddWithValue("@cnpjempresa_cliente", cliente.CnpjEmpresa);
cmd.Parameters.AddWithValue("@dataadmissao_cliente", cliente.DataAdmissao);
cmd.Parameters.AddWithValue("@valorrenda_cliente", cliente.Renda);
cmd.Parameters.AddWithValue("@referenciapessoal1_cliente", cliente.TelefoneReferencia1);
cmd.Parameters.AddWithValue("@referenciapessoal2_cliente", cliente.TelefoneReferencia2);
cmd.Parameters.AddWithValue("@referenciapessoal3_cliente", cliente.TelefoneReferencia3);
cmd.Parameters.AddWithValue("@telefonereferencia1_cliente", cliente.TelefoneReferencia1);
cmd.Parameters.AddWithValue("@telefonereferencia2_cliente", cliente.TelefoneReferencia2);
cmd.Parameters.AddWithValue("@telefonereferencia3_cliente", cliente.TelefoneReferencia3);
cmd.Parameters.AddWithValue("@tipo_cliente", cliente.Tipo);
cmd.Parameters.AddWithValue("@sexo_cliente", cliente.Sexo);
cmd.Parameters.AddWithValue("@grauinstrucao_cliente", cliente.GrauInstrucao);
cmd.Parameters.AddWithValue("@naturalidade_cliente", cliente.Naturalidade);
cmd.Parameters.AddWithValue("@nacionalidade_cliente", cliente.Nacionalidade);
cmd.Parameters.AddWithValue("@nomepai_cliente", cliente.NomePai);
cmd.Parameters.AddWithValue("@nomemae_cliente", cliente.NomeMae);
cmd.Parameters.AddWithValue("@ramal_cliente", cliente.Ramal);
cmd.Parameters.AddWithValue("@telmovel2_cliente", cliente.TelMovel2);
cmd.Parameters.AddWithValue("@numend_cliente", cliente.NumEnd);
cmd.Parameters.AddWithValue("@ieempresa_cliente", cliente.InscEstadualEmpresa);
MySqlDataReader dr;
dr = cmd.ExecuteReader();
dr.Read();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
con.Close();
}
Galera eu estou ai tentando aprender rsrsrsrs
09/10/2013
Joel Rodrigues
09/10/2013
Vinicius Biá
09/10/2013
Joel Rodrigues
E sobre o parâmetro de entrada do método, realmente não é para essa camada referenciar o txtPesquisa, o valor da busca deve ser passada por parâmetro para esse método. Ou seja, a camada de visão vai passar algum texto para esse método na camada de acesso a dados.
09/10/2013
Joel Rodrigues
1) Ler o DataReader e para cada registro, criar um Cliente e inserir em uma lista. Por fim, retornar essa lista.
Dessa forma, na camada de visão você poderia associar o resultado do método diretamente a um DataGridView, por exemplo.
Clique aqui para fazer login e interagir na Comunidade :)