Problema com o uso de DateTime
Linguagem (c#):
Plataforma (WinForms):
Banco de Dados e versao (Sql Server 2k8):
Tecnologia de acesso à dados( Entity):
Versao Visual Studio (2013):
O problema é o seguinte, o banco que estou usando hoje esta anexado no Sql 2008 porem ele foi criado no 2000, sempre que tento atualizar ou salvar uma entidade no banco ele reclama de estouro na data. testei o mesmo codigo em um banco criado no sql2008 e não tive problemas.
venda.VEN_DHMOVI = DateTime.Now;
venda.VEN_NRLOJA = Variaveis.NumeroLoja;
venda.VEN_VLRVEN = (decimal)ped.VlrPratos;
venda.VEN_VLRENT = ped.VlrTaxa;
venda.VEN_VLRNOT = (decimal)ped.VlrTotal + ped.VlrDesconto;
venda.VEN_VLRPAG = 0;
venda.VEN_VLRTRO = 0;
venda.VEN_ORIGEM = 0;
venda.VEN_SITUAC = 5;
venda.VEN_VLRBRU = (decimal)ped.VlrTotal;
venda.VEN_VLRVIS = 0;
venda.VEN_VLRPRA = 0;
venda.VEN_VLRLIQ = 0;
venda.VEN_VLRVLA = 0;
venda.VEN_VLRCOR = 0;
venda.VEN_VLREXC = 0;
venda.VEN_VLRREC = 0;
venda.VEN_CONFER = 0;
venda.VEN_COUVER = 0;
venda.VEN_CDVNDP = 0;
venda.VEN_SEQCAIX = 0;
venda.VEN_COO = "0";
venda.VEN_ECFNRSERIE = "0";
venda.VEN_CDVEND = SelectMovCodigo("TB_MOVVENDA").COD_NUMCOD;
berp.AddObject("TB_MOVVENDA", venda);
berp.SaveChanges();
abaixo a exceção gerada.
InnerException = {"A conversão de um tipo de dados datetime2 em um tipo de dados datetime resultou em um valor fora do intervalo.\r\nA instrução foi finalizada."}
desde já grato pela atenção!
Plataforma (WinForms):
Banco de Dados e versao (Sql Server 2k8):
Tecnologia de acesso à dados( Entity):
Versao Visual Studio (2013):
O problema é o seguinte, o banco que estou usando hoje esta anexado no Sql 2008 porem ele foi criado no 2000, sempre que tento atualizar ou salvar uma entidade no banco ele reclama de estouro na data. testei o mesmo codigo em um banco criado no sql2008 e não tive problemas.
venda.VEN_DHMOVI = DateTime.Now;
venda.VEN_NRLOJA = Variaveis.NumeroLoja;
venda.VEN_VLRVEN = (decimal)ped.VlrPratos;
venda.VEN_VLRENT = ped.VlrTaxa;
venda.VEN_VLRNOT = (decimal)ped.VlrTotal + ped.VlrDesconto;
venda.VEN_VLRPAG = 0;
venda.VEN_VLRTRO = 0;
venda.VEN_ORIGEM = 0;
venda.VEN_SITUAC = 5;
venda.VEN_VLRBRU = (decimal)ped.VlrTotal;
venda.VEN_VLRVIS = 0;
venda.VEN_VLRPRA = 0;
venda.VEN_VLRLIQ = 0;
venda.VEN_VLRVLA = 0;
venda.VEN_VLRCOR = 0;
venda.VEN_VLREXC = 0;
venda.VEN_VLRREC = 0;
venda.VEN_CONFER = 0;
venda.VEN_COUVER = 0;
venda.VEN_CDVNDP = 0;
venda.VEN_SEQCAIX = 0;
venda.VEN_COO = "0";
venda.VEN_ECFNRSERIE = "0";
venda.VEN_CDVEND = SelectMovCodigo("TB_MOVVENDA").COD_NUMCOD;
berp.AddObject("TB_MOVVENDA", venda);
berp.SaveChanges();
abaixo a exceção gerada.
InnerException = {"A conversão de um tipo de dados datetime2 em um tipo de dados datetime resultou em um valor fora do intervalo.\r\nA instrução foi finalizada."}
desde já grato pela atenção!
Roberio
Curtidas 0
Respostas
Hector Figueroa
14/04/2014
tente isso:
DateTime.Now.Date;
DateTime.Now.Date;
GOSTEI 0
Roberio
14/04/2014
tente isso:
DateTime.Now.Date;
DateTime.Now.Date;
Usando um software para analisar o que estava acontecendo no banco percebi que o entity(não entendi ainda o pq disso) estava setando um outro campo de data que permite null com a data inicial "0001-01-01" sendo o responsável pela exceção. detalhe outros dois campos de data que permitem null não estavam sendo preenchidos com nada. mas depois de excluído e recriado o modelo o problema foi corrigido.
Obrigado pela ajuda.
GOSTEI 0