Personal I have the following problem.
I created a class for DTO like this:
public class PessoaFuncionario
{
public Pessoa Pessoa { get; set; }
public string Nome { get; set; }
public string CPF { get; set; }
public string CRM { get; set; }
}
It uses the other than Pessoa
that looks like this:
public class Pessoa
{
public int IDPessoa { get; set; }
public PessoaTipo PessoaTipo { get; set; }
}
I then created a business object with the rules to insert:
public string Alterar(PessoaFuncionario pessoaFuncionario)
{
try
{
acessoDadosSqlServer.LimparParametros();
acessoDadosSqlServer.AdicionarParametros("@IDPessoaFuncionario", pessoaFuncionario.Pessoa.IDPessoa);
acessoDadosSqlServer.AdicionarParametros("@Nome", pessoaFuncionario.Nome);
acessoDadosSqlServer.AdicionarParametros("@CPF", pessoaFuncionario.CPF);
acessoDadosSqlServer.AdicionarParametros("@CRM", pessoaFuncionario.CRM);
string idPessoaFuncionario = acessoDadosSqlServer.ExecutarManipulacao(CommandType.StoredProcedure, "uspPessoaFuncionarioAlterar").ToString();
return idPessoaFuncionario;
}
catch (Exception excpetion)
{
return excpetion.Message;
}
}
And the method on the button to change:
else if (acaoNaTelaSelecionada == AcaoNaTela.Alterar)
{
PessoaFuncionario pessoaFunc = new PessoaFuncionario();
pessoaFunc.Pessoa.IDPessoa = Convert.ToInt32(txtCodigo.Text); // << Onde aparece o erro
pessoaFunc.Nome = txtNome.Text;
pessoaFunc.CRM = txtCRM.Text;
pessoaFunc.CPF = mskCPF.Text;
PessoaFuncionarioNegocios pessoaNegocios = new PessoaFuncionarioNegocios();
string retorna = pessoaNegocios.Alterar(pessoaFunc);
try
{
int IDPessoa = Convert.ToInt32(retorna);
MessageBox.Show("Registro atualizado com sucesso.", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch
{
MessageBox.Show("Não foi possivel alterar. Detalhes: " + retorna, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
The error occurs at the beginning of the save method.