Excesso de tempo em SqlDateTime. Deve ser entre 01/01/1753 00:00 e 31/12/9999 11
Ao inserir dados com o framework orm NHibernate, o erro acima foi reportado:
Excesso de SqlDateTime / Excesso de SqlDateTime [Resumo: Erro - Excesso de tempo em SqlDateTime. Deve ser entre 01/01/1753 00:00:00 e 31/12/9999 23:59:59 SqlDateTime, overflow. Deve ser entre 01/01/1753 00:00:00 Guerra 31/12/9999 23:59:59 Motivo Ao aplicar C# inserir ou atualizar banco de dados, palavra data-hora
Erro - Excesso de tempo em SqlDateTime. Deve ser entre 1/1/1753 00:00:00 e 31/12/9999 11:59:59 Excesso de tempo em SqlDateTime. Deve ser entre 1/1/1753 00:00:00 e 31/12/9999 11:59:59
Causa
Ao usar o banco de dados inserir ou atualizar C#, o valor do campo data-hora é nulo pela inserção padrão C# 0001-01-01 causa o excesso do tipo data-hora do servidor SQL.
Intervalo de tipos DateTime em C#
TempoTempo.ValorMinuto = 1/1/0001 00:00:00 AM HoraHora.ValorMáxValor = 23:59:59.99999999, 31 de dezembro de 9999, exatamente um tick de 100 nanossegundos antes das 00:00:00, 1º de janeiro de 10.000 Intervalo de tipos de data-hora no Sql Server
entre 01/01/1753 00:00:00 e 31/12/9999 23:59:59
Depois de ler este artigo, provavelmente entendi algo: deveria haver uma propriedade vazia, o NHibernate define automaticamente o valor padrão, acho que deveria ser assim????
Depois, após atribuir o atributo UpdateTime que não foi originalmente atribuído,Constatou que não havia erro, e então inseriu a tabela de dados,
No entanto, meu campo pode estar vazio, o que devo fazer???
Encontrar a propriedade UpdateTime na classe DateTime, e definir para DateTime? Ou seja, permitir o vazio. (No xml mapeado é o melhor, também definido como not-null="false", da seguinte forma:)
Finalmente, sucesso, tire uma captura de tela do banco de dados!
|