tratar pesquisa que retorna valor nulo
31/08/2010
0
na camada de apresentação:
if (txt_id.Text == "")
{
mensagem = "Nenhum registro foi selecionado, tente novamente!";
MessageBox.Show(mensagem, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
else
{
int id = Convert.ToInt32(txt_id.Text);
funcionario dto = new funcionario();
try
{
funcionarioBLL bll = new funcionarioBLL();
dto = bll.listarId(id);
txt_nome.Text = dto.Nome;
cbo_funcao.SelectedValue = Convert.ToString(dto.Funcao);
dtp_admissao.Value = dto.Admissao;
dtp_demissao.Value = dto.Demissao;
}
catch (Exception ex)
{
throw ex;
}
}
erro que aparece no formulário
Erro: O valor '01/01/0001 00:00:00' não é valido para 'Value'. 'Value' deve estar entre 'MinDate' e 'MaxDate', Nome do parâmetro: Value
os campos dtp_admissao e dtp_demissao são do tipo DateTimePicker
Quando o código do funcinário é válido, ele carrega o SqlDataReader numa boa......
Allan Roberto
Posts
31/08/2010
Marcio Silveira
Você tem que ver como é que está implementado aí o seu método listarId, mas a grosso modo é só você testar se o o "dto", possui valor nulo no campo identificador.
seria algo mais ou menos assim:
try
{
funcionarioBLL bll = new funcionarioBLL();
dto = bll.listarId(id);
if (dto.Id != null)
{
txt_nome.Text = dto.Nome;
cbo_funcao.SelectedValue = Convert.ToString(dto.Funcao);
dtp_admissao.Value = dto.Admissao;
dtp_demissao.Value = dto.Demissao;
}
}
catch (Exception ex)
{
throw ex;
}
Mas para ter certeza, seria melhor você colocar aqui no forum o Método listarId da classe funcionarioBLL.
Bom o caminho é esse, verifique se o campo identificador ou o objeto está nulo, lembrando que o não existe campo DateTime nulo, quando o valor não é informado o Framework assume a data "01/01/0001 00:00:00".
31/08/2010
Allan Roberto
funcionario dto = new funcionario(); dr = cmd.ExecuteReader(CommandBehavior.CloseConnection); { while (dr.Read()) { dto.Id = Convert.ToInt32(dr["id"]); dto.Nome = dr["nome"].ToString(); dto.Funcao = Convert.ToInt32(dr["id_funcao"]); dto.Admissao = Convert.ToDateTime(dr["data_admissao"]); dto.Demissao = Convert.ToDateTime(dr["data_demissao"]); dto.Status = Convert.ToInt32(dr["id_status_funcionario"]); dto.Salario = Convert.ToDecimal(dr["salario"]); dto.TipoSalario = Convert.ToInt32(dr["id_tipo_salario"]); dto.CPF = dr["cpf"].ToString(); dto.RG = dr["rg"].ToString(); dto.OrgaoExp = dr["orgao_exped"].ToString(); dto.Telefone = dr["tel_resid"].ToString(); dto.Celular = dr["tel_celular"].ToString(); dto.Endereco = dr["endereco"].ToString(); dto.Complemento = dr["complemento"].ToString(); dto.Bairro = dr["bairro"].ToString(); dto.CEP = dr["cep"].ToString(); dto.Cidade = dr["cidade"].ToString(); dto.UF = Convert.ToInt32(dr["id_uf"]); dto.Email = dr["email"].ToString(); dto.Obs = dr["observacao"].ToString(); }
return dto; } } catch (Exception ex) { throw ex; } finally { FecharDB(conn); } }BLLpublic funcionario listarId(int Id) { try { dal = new funcionarioDAL(); return dal.selecionaId(Id); } catch (Exception ex) { throw ex; } }
01/09/2010
Allan Roberto
02/09/2010
Vinicius Vieira
Clique aqui para fazer login e interagir na Comunidade :)