Erro: Cadeia de caracteres não foi reconhecida como DateTime válido [fechada]

Estou tentando converter uma string q eu puxo do banco de dados com a instrução

DateTime PrevisaoDataInicio = DateTime.Parse(reader[“PrevisaoDataInicio”].ToString())

E dá o seguinte erro:

Cadeia de caracteres não foi reconhecida como DateTime válido.

O metódo inteiro onde está sendo utilizado está abaixo:

private List TransformaReaderEmListaDeObjeto(SqlCeDataReader reader)
{
var entendimentos = new List();
while (reader.Read())
{
var temObjeto = new EntendimentoDominio()
{
CodEntendimento = int.Parse(reader[“CodEntendimento”].ToString()),
AreaResponsavel = reader[“AreaResponsavel”].ToString(),
Modulo = reader[“Modulo”].ToString(),
Projeto = reader[“Projeto”].ToString(),
Subprojeto = reader[“Subprojeto”].ToString(),
DescricaoResumida = reader[“DescricaoResumida”].ToString(),
DescricaoDetalhada = reader[“DescricaoDetalhada”].ToString(),
CustoEstimado = reader[“CustoEstimado”].ToString(),
NomeDocumentoAnexo = reader[“NomeDocumentoAnexo”].ToString(),
CaminhoDocumentoAnexo = reader[“CaminhoDocumentoAnexo”].ToString(),
Status = reader[“Status”].ToString(),
TempoEstimado = reader[“TempoEstimado”].ToString(),
PrevisaoDataInicio = DateTime.Parse(reader[“PrevisaoDataInicio”].ToString()),
PrevisaoDataFinal = DateTime.Parse(reader[“PrevisaoDataFinal”].ToString())
};

entendimentos.Add(temObjeto);
}

reader.Close();
return entendimentos;
}

=================

=================

2 Respostas
2

=================

O valor de PrevisaoDataInicio não pode ser convertido para um date time,

Pode ser que ele seja NULL (caso sua coluna permita isso no SQL) ou você esteja guardando ele de forma errada no banco, sugiro que faça algo assim.

EntendimentoDominio obj = new EntendimentoDominio();
string previsaoDTInici = reader[“PrevisaoDataInicio”].ToString();

if(!string.IsNullOrEmpty(previsaoDTInici))
obj.PrevisaoDataInicio = DateTime.Parse(previsaoDTInici)

Primeiramente a propriedade PrevisaoDataInicio deve ser do tipo DateTime, certo. Segundo que a conversão que você faz está correta, porém precisa ver se vem algum valor reader[“PrevisaoDataInicio”], o que eu acredito que esteja vindo, e esse campo de preferência tem que ser um campo do tipo Caractere.