CRONOMETRO EM VB NO BANCO DE DADOS

JAVATM 11/10/2012 23:38:55
#411886
Fala aê galerinha!
Eu tô desenvolvendo um programa no Visual Studio 2010, que vai marcar o tempo no cronômetro no VB, mas preciso fazer com que, quando um botão seja pressionado, o sistema envie o tempo do cronômetro até o access, onde se encontra o banco de dados. Pois bem, segue o código que usei pra fazer o cronômetro:


Dim startTime As DateTime




Private Sub Timer1_Tick(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Timer1.Tick
Dim span As TimeSpan = DateTime.Now.Subtract(startTime)
LblCronometro.Text = span.Minutes.ToString & [Ô]:[Ô] & _
span.Seconds.ToString & [Ô].[Ô] & span.Milliseconds
End Sub



Private Sub LblCronometro_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles LblCronometro.Click

If (Timer1.Enabled) Then
Me.Text = [Ô]Clique para resetar[Ô]
Timer1.Stop()

Else
startTime = DateTime.Now()
Me.Text = [Ô]Clique para parar[Ô]
Timer1.Start()
End If


O cronômetro se encontra em um LABEL, e começa a contar, seguindo a estrutura: 00:00.0

O código que estou tentando utilizar pra fazer a consulta do login no banco de dados, e enviar o tempo final para o mesmo é o seguinte:

Dim vtrsa As OleDb.OleDbConnection
Dim dados As OleDb.OleDbCommand
Dim lista As OleDb.OleDbDataReader
Dim sql As String
vtrsa = New OleDb.OleDbConnection([Ô]Provider=Microsoft.ACE.OleDB.12.0; Data Source=vtrsa.accdb[Ô])
vtrsa.Open()

dados = New OleDb.OleDbCommand([Ô]select * from dados where login = [ô][Ô] & TxtLogin.Text & [Ô][ô][Ô], vtrsa)
lista = dados.ExecuteReader()

If lista.Read() Then
sql = [Ô]insert into dados (tempo) values [ô][Ô] & LblCronometro.Text & [Ô][ô][Ô]

MsgBox([Ô]Tempo cadastrado[Ô])

Else
MsgBox([Ô]Usuário não encontrado[Ô], , [Ô]Atenção[Ô])
End If

lista.Close()
vtrsa.Close()


Não dá erro nenhum, e a mensagem é exibida com sucesso, caso o login esteja correto, ou, se estiver certo, a caixa de mensagem avisa que o tempo foi adicionado no banco de dados. Entretanto, quando abro o arquivo, ele não exibe absolutamente nada na linha TEMPO.
Alguém sabe onde estou errando? Já usei hora/data, numero e até texto pra definir o tipo de dados no access, porém não obtive sucesso.

Aguardo respostas!
Abraços.
ADHEL 12/10/2012 09:53:42
#411895
If lista.Read() Then
sql = [Ô]insert into dados (tempo) values [ô][Ô] & LblCronometro.Text & [Ô][ô][Ô]
[txt-color=#e80000] dados = New OleDb.OleDbCommand(sql, vtrsa)
dados.ExecuteNonQuery()[/txt-color]
MsgBox([Ô]Tempo cadastrado[Ô])

Else
MsgBox([Ô]Usuário não encontrado[Ô], , [Ô]Atenção[Ô])
End If

lista.Close()
vtrsa.Close()

insere essas linhas em vermelho
JAVATM 12/10/2012 12:34:05
#411907
Tentei usar, mas agora tá dando erro no ExecuteNonQuery, dizendo que tem um erro de sintaxe na instrução INSERT INTO.
ADHEL 12/10/2012 12:55:37
#411909
Poste a mensagem do erro
ADHEL 12/10/2012 13:08:43
#411910
sql = [Ô]insert into dados (tempo) values( [ô][Ô] & LblCronometro.Text & [Ô][ô])[Ô]
Tenta assim,se não der posta a msg do erro
JAVATM 12/10/2012 13:09:07
#411912
OleDbException was unhandled
Erro de sintaxe na instrução INSERT INTO.
JAVATM 12/10/2012 13:16:59
#411915
Agora diz que:
Tipo de dados incompatível na expressão de critério.
ADHEL 12/10/2012 13:20:26
#411916
qual o valor do lblcronometro.text ?
Qual é o tipo do campo no banco de dados, integer,varchar ,...?
JAVATM 12/10/2012 13:25:38
#411917
Como eu tô usando o access, coloquei ele como data/hora, depois como Número, mas nenhum dos dois tá indo.
O form tá assim: http://imgur.com/zIrC3
O Label do cronômetro,como eu disse, tá na estrutura: 00:00.0
ADHEL 12/10/2012 13:27:40
#411918
Faz um teste.Coloca o campo como texto
E posta o resultado
JAVATM 12/10/2012 13:30:41
#411919
O erro continua no ExecuteNonQuery:
Índice ou chave primária não pode conter um valor Null.
Página 1 de 3 [22 registro(s)]
Tópico encerrado , respostas não são mais permitidas