Crie uma Procedure de pesquisar tanto por nome ou codigo da pessoaFisica, agora para fazer funcionar no C#, não consigo!! Já tentei de todas as formas!!
Quero que o usuário Consulte no mesmo txtBox ou por Cod ou Nome.
Segue o código, Na camada Negocio: (Tentei sobrecarregar os metodos)
public PessoaFisicaColecao ConsultarPorCodigoNome(int codigo) { try { PessoaFisicaColecao pessoaFisicaColecao = new PessoaFisicaColecao(); acessoDadosSqlServer.LimparParametros(); acessoDadosSqlServer.AdicionarParametros("@IDPessoaFisica", codigo); DataTable dataTable = acessoDadosSqlServer.ExecutarConsulta(CommandType.StoredProcedure, "uspPessoaFisicaConsultarPorCodigoNome"); foreach (DataRow linha in dataTable.Rows) { PessoaFisica pessoaFisica = new PessoaFisica(); pessoaFisica.IDPessoaFisica = Convert.ToInt32(linha["IDPessoaFisica"]); pessoaFisica.Nome = Convert.ToString(linha["Nome"]); pessoaFisica.CPF = Convert.ToString(linha["CPF"]); pessoaFisica.RG = Convert.ToString(linha["RG"]); pessoaFisica.DataNascimento = Convert.ToDateTime(linha["DataNascimento"]); pessoaFisicaColecao.Add(pessoaFisica); } return pessoaFisicaColecao; } catch (Exception erroOcorrido) { throw new Exception("Erro ao consultar pessoa física. Detalhe: " + erroOcorrido.Message); } } public PessoaFisicaColecao ConsultarPorCodigoNome(string nome) { try { PessoaFisicaColecao pessoaFisicaColecao = new PessoaFisicaColecao(); acessoDadosSqlServer.LimparParametros(); acessoDadosSqlServer.AdicionarParametros("@Nome", nome); DataTable dataTable = acessoDadosSqlServer.ExecutarConsulta(CommandType.StoredProcedure, "uspPessoaFisicaConsultarPorCodigoNome"); foreach (DataRow linha in dataTable.Rows) { PessoaFisica pessoaFisica = new PessoaFisica(); pessoaFisica.IDPessoaFisica = Convert.ToInt32(linha["IDPessoaFisica"]); pessoaFisica.Nome = Convert.ToString(linha["Nome"]); pessoaFisica.CPF = Convert.ToString(linha["CPF"]); pessoaFisica.RG = Convert.ToString(linha["RG"]); pessoaFisica.DataNascimento = Convert.ToDateTime(linha["DataNascimento"]); pessoaFisicaColecao.Add(pessoaFisica); } return pessoaFisicaColecao; } catch (Exception erroOcorrido) { throw new Exception("Erro ao consultar pessoa física. Detalhe: " + erroOcorrido.Message); } }
Na camada apresentação: (TextBox não diferencia um metodo do outro, por exemplo, se eu pesquisar por nome ele acha, mas se eu pesquisar por cod não!! mas se eu colocar um Convert.ToInt32 ele acha por codigo e por nome não!!
Não consigo usar o mesmo TextBox para os dois tipos de Consulta.
private void btnPesquisarPorCodigo_Click_1(object sender, EventArgs e) { PessoaFisicaNegocios pessoaFisicaNegocios = new PessoaFisicaNegocios(); PessoaFisicaColecao pessoaFisicaColecao = new PessoaFisicaColecao(); pessoaFisicaColecao = pessoaFisicaNegocios.ConsultarPorCodigoNome(txtCodigoNome.Text); dgwPessoaFisica.DataSource = null; dgwPessoaFisica.DataSource = pessoaFisicaColecao; dgwPessoaFisica.Update(); dgwPessoaFisica.Refresh();