Ir para o conteúdo
PSI

A conversão do tipo 'TimeSpan' para o tipo 'Date' não é válida.

Mensagens Recomendadas

PSI

Boa tarde

podem me ajudar com este erro: A conversão do tipo 'TimeSpan' para o tipo 'Date' não é válida.

codigo:

Private Sub DataGridView1_CellContentClick(sender As System.Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
	Dim x As Integer
	Dim hora As Date
	x = DataGridView1.CurrentRow.Index
	MConsulta.DateTimePicker1.Value = MonthCalendar1.Selectionstart

	hora = DataGridView1.Rows(x).Cells(0).Value			   <--- é aqui que dá erro
	MConsulta.MaskedTextBox2.Text = hora

	MConsulta.TextBox1.Text = DataGridView1.Rows(x).Cells(3).Value
	MConsulta.Show()
End Sub

Editado por apocsantos
geshi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
FreiNando

Se a primeira coluna da Datagridview1 estiver com o formato Date, esse erro não deveria acontecer. Caso contrário tens de converter para Date, por exemplo usando CDate().

E a linha seguinte também precisa de conversão, neste caso de Date para String, usando hora.ToString("g").


O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez. Samuel Smiles

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
PSI

Se a primeira coluna da Datagridview1 estiver com o formato Date, esse erro não deveria acontecer. Caso contrário tens de converter para Date, por exemplo usando CDate().

E a linha seguinte também precisa de conversão, neste caso de Date para String, usando hora.ToString("g").

Mas o erro acho que vem da base de dados

eu defini o campo como time mas por exemplo se tento gravar a hora 24:00 ele dá erro...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Cerzedelo

O erro indica que esta a tentar converter do tipo time para date, e como pode ver são dois tipos diferentes e logo não são convertíveis. Se for ler da base de dados para uma Textbox ou datagridview, em principio não haverá problema.

A questão surge, quando tenta gravar na BD e ai tem de ter a certeza que o valor que pretende gravar vai no formato time, caso contrario despoleta o erro. Se utilizar uma maskedtext para inserir os valores certifique-se que a mesma esta corretamente formatada para time. Ter também em consideração que o formato time pode ir ate milésimos de segundo.

Editado por Cerzedelo

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
PSI

O erro indica que esta a tentar converter do tipo time para date, e como pode ver são dois tipos diferentes e logo não são convertíveis. Se for ler da base de dados para uma Textbox ou datagridview, em principio não haverá problema.

A questão surge, quando tenta gravar na BD e ai tem de ter a certeza que o valor que pretende gravar vai no formato time, caso contrario despoleta o erro. Se utilizar uma maskedtext para inserir os valores certifique-se que a mesma esta corretamente formatada para time. Ter também em consideração que o formato time pode ir ate milésimos de segundo.

pois mas mesmo quando tento por manualmente ele dá erro, diz que a data é do tipo timespan

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Cerzedelo

Se estiver a introduzir manualmente na base de dados e da erro, o problema e da formatação dos dados. Veja qual e o seu sistema de base de dados, se access, mysql ou outro e procure na net informaçoes sobre o campo tipo time. Costuma haver um tipo date/time, cujo formato e a data mais a hora. O que parece e que esta a tentar converter um dado do tipo hora ex: 24:00 para um campo que só aceita dados de data 01/01/2000, e para experiência tente introduzir nesse campo uma data, se não der erro e o tipo de campo que esta errado.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.