UPDATE EM CAMPO DATA

SUMAEMY 11/01/2016 12:53:44
#455965
Bom dia a todos,
estou precisando de uma grande ajuda
no banco possuo 3 campos que possuem dados e gostaria de estar apagando-os

ao tentar salvar da o erro de tipo de dados invalidos
segue o codigo e os campos que deveriam estar sendo salvos


Private Sub atualizar_Coletor_Ativo_SIM_NAO_entrega()
SQLstring = [Ô]update Coletor_Disponivel set [Ô] & _
[Ô]Coletor=[ô][Ô] & txt_coletor.Text & [Ô][ô][Ô] & _
[Ô],Coletor_ATIVO=[ô][Ô] & txt_ativo.Text & [Ô][ô][Ô] & _
[Ô],colaborador=[ô][Ô] & [Ô][ô][Ô] & _
[Ô],setor=[ô][Ô] & TextBox7.Text & [Ô][ô][Ô] & _
[Ô],data_retirada=[ô][Ô] & [Ô][ô][Ô] & _ [ô]campo data - não requerido
[Ô],hora_retirada=[ô][Ô] & [Ô][ô][Ô] & _ [ô]campo texto - não requerido
[Ô],id_colaborador=[ô][Ô] & [Ô][ô][Ô] & _ [ô]campo numero - não requerido
[Ô] Where iD_COLETOR= [Ô] & TextBox2.Text
Call ExecutarComando(SQLstring)

desde já agradeço
JOAOBENEVIDES 11/01/2016 13:41:38
#455967
porque voce simplemente nao manda eles

rivate Sub atualizar_Coletor_Ativo_SIM_NAO_entrega()
SQLstring = [Ô]update Coletor_Disponivel set [Ô] & _
[Ô]Coletor=[ô][Ô] & txt_coletor.Text & [Ô][ô][Ô] & _
[Ô],Coletor_ATIVO=[ô][Ô] & txt_ativo.Text & [Ô][ô][Ô] & _
[Ô],colaborador=[ô][Ô] & [Ô][ô][Ô] & _
[Ô],setor=[ô][Ô] & TextBox7.Text & [Ô][ô][Ô] & _
[Ô] Where iD_COLETOR= [Ô] & TextBox2.Text
Call ExecutarComando(SQLstring)
NICKOSOFT 11/01/2016 13:56:28
#455968
Depende da estrutura do banco pode nao aceitar campo limpo...
Tem bancos q data em branco so aceita c nothing
KERPLUNK 11/01/2016 20:00:07
#455986
Resposta escolhida
Você deveria utilizar parametrização e não query concatenada. Tenho uma série de vídeos onde explico isso.
CARINHENA 11/01/2016 20:32:49
#455991
Quando o campo (que não é requerido) não for preenchido, envie como valor null.
Ou seja, teste o campo antes, se não tiver uma data válida (ou estiver em branco), coloque null:
exemplo:
[Ô],data_retirada=null,[Ô]

Lembrando que se no banco não aceitar campo nulo, você terá duas opções:
1 - Preencher obrigatoriamente com alguma data.
2 - Retirar a regra de não aceitar o campo nulo.

E é melhor parametrizar, que usar sql concatenada.
Boa sorte!
SUMAEMY 12/01/2016 11:40:22
#456019
bOA TARDE A TODOS

Realizei a troca do update e ficou assim

criei uma classe: registro

Public Sub Up1_controle(ByVal codigo As Integer)
Dim conn = New OleDbConnection(conexao.getConexao())
conn.Open()
Dim updatesql As String = [Ô]update coletor_disponivel set setor= [ô][Ô] + setor + [Ô][ô], coletor = [ô][Ô] + coletor + [Ô][ô], coletor_ativo = [ô][Ô] + coletor_ativo + [Ô][ô], id_colaborador = [ô][Ô] + id_colaborador + [Ô][ô], colaborador = [ô][Ô] + Colaborador + [Ô][ô], data_retirada = [ô][Ô] + data_retirada + [Ô][ô], hora_retirada = [ô][Ô] + hora_retirada + [Ô][ô] Where ID_coletor = [Ô] + codigo
Dim cmd As New OleDbCommand(updatesql, conn)
cmd.ExecuteNonQuery()
End Sub

e no form criei a rotina para salvar
Private Sub Atualizar()
Dim Coletor As New Registro()
Dim codigo As Integer
Coletor.setor = TextBox7.Text
Coletor.coletor = txt_coletor.Text
Coletor.coletor_ativo = txt_ativo.Text
Coletor.id_colaborador = TextBox1.Text
Coletor.Colaborador = ColaboradorComboBox.Text
Coletor.data_retirada = txt_data.Text
Coletor.hora_retirada = txt_hora.Text

Coletor.Up1_controle(codigo)
MessageBox.Show([Ô]Os dados foram atualizados...[Ô])

End Sub

ao tentar salvar aparece a mensagem
erro: A conversão da sequencia de caracteres [Ô]update coletor_disponivel set se[ô] no tipo [ô]Double[ô] não é valida.

poreciuso salvar os campos em negrito em branco, pois se trata de uma tabela temporaria onde gravo a retirada do coletor e na devolução do mesmo eu apago estes dados

NICKOSOFT 12/01/2016 14:28:55
#456029
se mudou desse jeito pensando estar parametizando isso, esta a mesma coisa q antes.....
já foi falado como enviar os campos limpos.....
Tópico encerrado , respostas não são mais permitidas