Usuário com melhor resposta
Problemas ao armazenar data e hora

Pergunta
-
Bom dia
Estou trabalhando em aplicação desktop e estou usando vb.net e access 2007, estou tendo problemas para armazenar campo do tipo data/hora no access, criei dois campo:
hora - data/hora - hora completa
data - data/hora - data abreviada (dd/mm/yyyy)
Estou tentando armazenar da seguinte forma:
Dim hora_atual As DateTime = DateTime.Now Dim hora_formatada As String = Format(hora_atual, "HH:mm:ss") Dim data_atual As DateTime = DateTime.Now Dim dataReal As String = Format(data_atual, "yyyy-MM-dd") Dim parametros As OleDbParameterCollection = New OleDbCommand().Parameters parametros.AddWithValue("@data", dataReal.ToString) parametros.AddWithValue("@hora", hora_formatada.ToString) insert into tabela(hora,data)values(@hora,@data)
Quando mando armazenar ele me da a seguinte mensagem:
tipo de dados incompatível na expressão de criterio
Se eu tentar armazenar qualquer outro tipo de campo no código acima armazena normalmente mas campo tipo data e hora apresenta esse problema. O que pode ser?
Alexandre- Movido AndreAlvesLimaModerator sexta-feira, 25 de junho de 2010 16:44 (De:.NET Development - Geral)
Respostas
-
Galera problema resolvido, o problema é que eu estava colocando a data no formato yyyy-MM-dd, ao colocar no formato dd-MM-yyyy rolou, não sei porque não aceito mas rolo. Usando a variável direto na query ele aceita os dois modos mas usando o formato que postei no inicio do códifo deu esse problema.
Valeu
Alexandre- Marcado como Resposta AndreAlvesLimaModerator sexta-feira, 25 de junho de 2010 18:59
Todas as Respostas
-
Tente efetuar a seguinte alteração
Dim hora_atual As DateTime = DateTime.MinValue
hora_atual.Add(DateTime.Now.TimeOfDay)
Dim data_atual As DateTime = DateTime.Now.Date
Dim parametros As OleDbParameterCollection = New OleDbCommand().Parameters
parametros.AddWithValue("@data", hora_atual )
parametros.AddWithValue("@hora", data_atual )
insert into tabela(hora,data)values(@hora,@data)
O problema esta no formato do objeto, tente passar o mesmo tipo de dado esperado.
Um Grande Abraço.
-
-
-
Hi,
voce pode usar os metodos ToShortDateString e ToShortTimeString para pegar a data e a hora, isso pode resolver seu problema.
veja na documentcao do msdn:
http://msdn.microsoft.com/en-us/library/system.datetime.toshortdatestring.aspx
http://msdn.microsoft.com/en-us/library/system.datetime.toshorttimestring.aspx
Att,
Adriel Codeco Silva Microsoft Partner http://adrielcodeco.wordpress.com www.uppercase.com.br adrielcodeco@hotmail.com -
Prezado,
Estou migrando seu post para o fórum de Acesso a Dados.
Por favor, das próximas vezes que for postar alguma dúvida referente a esse assunto, poste por lá.
Obrigado.
André Alves de Lima
Visite o meu site: http://andrealveslima.spaces.live.com
Me siga no Twitter: @andrealveslima -
Prezado,
Qual o tipo de dados que está definido no banco de dados? Se for datetime, você não precisa formatar nada! É só adicionar o parâmetro com o valor do seu DateTime mesmo...
André Alves de Lima
Visite o meu site: http://andrealveslima.spaces.live.com
Me siga no Twitter: @andrealveslima- Sugerido como Resposta AndreAlvesLimaModerator sexta-feira, 25 de junho de 2010 17:40
-
Boa tarde
Pessoal valeu pela força mais ainda não esta rolando, tentei usar ToShortDateString e ToShortTimeString mas não ____, algumas vezes os dados são recebidos de variável e outras vem de um textbox
se eu tentar armazenar usando a variável direto na query ____, se eu tentar igual postei acima apresenta aquele erro. Vou continuar procurando se alguém tiver mais alguma idéia me post aí
Alexandre -
Galera problema resolvido, o problema é que eu estava colocando a data no formato yyyy-MM-dd, ao colocar no formato dd-MM-yyyy rolou, não sei porque não aceito mas rolo. Usando a variável direto na query ele aceita os dois modos mas usando o formato que postei no inicio do códifo deu esse problema.
Valeu
Alexandre- Marcado como Resposta AndreAlvesLimaModerator sexta-feira, 25 de junho de 2010 18:59