Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

kazzx

[Resolvido] Erro de sintaxe

Mensagens Recomendadas

kazzx

viva,

estava aqui a fazer um programita que vai ter alguma utilidade para mim. e numa instrução dá-me este erro

erro: Erro de sintaxe (operador em falta) na expressão de consulta 'nrcliente='.

a instrução SQL é esta:

 cmd = New OleDbCommand("SELECT * FROM clientes WHERE nrcliente=" & dv1(0, dv1.RowCount - 1).Value, conn) 

cumps :thumbsup:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
flaviojef

boas kazzx,

primeiro verifica sempre se a tabela clientes existe e se está bem escrito, de seguida verifica se o nrcliente também existe e se está escrito da mesma forma que meter na instrução. e por ultimo já tentas-te retirar o = aseguir ao nrcliente? tenta e diz alguma coisa

cumpz

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Assim de repente, experimenta:

cmd = New OleDbCommand("SELECT * FROM clientes WHERE nrcliente=" & "dv1(0, dv1.RowCount - 1).Value, conn)"

PS: Not sure!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ByMySlf

Como não nos dás informação concreta sobre o erro tenta isto...

cmd = New OleDbCommand("SELECT * FROM clientes WHERE nrcliente=" & dv1(0, dv1.RowCount - 1).Value &"", conn)

...ou isto:

cmd = New OleDbCommand("SELECT * FROM clientes WHERE nrcliente='" & dv1(0, dv1.RowCount - 1).Value &"'", conn)

Já agora, deixo uma dica: usa parâmetros ao invés de colocares o valor a passar à query, directamente na sintaxe.

De qualque das formas, coloca aqui o erro que obténs.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
kazzx

pessoal agradeço as ajudas mas nenhum dos códigos escritos por vós me resolveu o problema :x

já agora aproveito e envio a estrutura toda que envolve essa sintaxe:

 If Valor = -1 Then
            If dv1.RowCount > 0 Then
                dv1(0, dv1.RowCount - 1).Selected = True
                cmd = New OleDbCommand("select * from clientes where nrcliente=" & dv1(0, dv1.RowCount - 1).Value, conn)
                Dim DRClientes As OleDbDataReader = cmd.ExecuteReader
                DRClientes.Read()
                lblnrcliente.Text = DRClientes("nrcliente")
                txtnome.Text = DRClientes("nome")
                txtnrcontrato.Text = DRClientes("nrcontrato")
                txtvunit.Text = DRClientes("vunit")
                txtvtotal.Text = DRClientes("vtotal")
                cbtp.Text = DRClientes("tp")
                txtnredit.Text = DRClientes("nredit")
                txtcaract.Text = DRClientes("caract")
                txtobsr.Text = DRClientes("obsr")
                If LCase(DRClientes("tp")) = "jornal" Then
                    cbtp.SelectedIndex = 0
                Else
                    cbtp.SelectedIndex = 1
                End If
                DRClientes.Close()
            End If
        Else
            If dv1.RowCount Then
                If dv1.RowCount > 0 Then
                    dv1.Rows(Valor).Cells(0).Selected = True
                    cmd = New OleDbCommand("SELECT * FROM clientes WHERE nrcliente=" & dv1.Rows(Valor).Cells(0).Value, conn)
                    Dim DRClientes As OleDbDataReader = cmd.ExecuteReader
                    DRClientes.Read()
                    lblnrcliente.Text = DRClientes("nrcliente")
                    txtnome.Text = DRClientes("nome")
                    txtnrcontrato.Text = DRClientes("nrcontrato")
                    txtvunit.Text = DRClientes("vunit")
                    txtvtotal.Text = DRClientes("vtotal")
                    cbtp.Text = DRClientes("tp")
                    txtnredit.Text = DRClientes("nredit")
                    txtcaract.Text = DRClientes("caract")
                    txtobsr.Text = DRClientes("obsr")
                    If LCase(DRClientes("tp")) = "jornal" Then
                        cbtp.SelectedIndex = 0
                    Else
                        cbtp.SelectedIndex = 1
                    End If
                    DRClientes.Close()
                End If
            End If
        End If 

:thumbsup:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ByMySlf

Na sintaxe continuas com o mesmo código que colocaste aqui.

Que erro te dá ao executar o código? Transcreve para cá esse erro.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
kazzx

já vi o que era. uma merdice para variar.

o erro que me dava eu já o referi no primeiro post :b

e resolvi apenas colocando plicas aqui: 'nrcliente='

obrigado,

cumps :thumbsup:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ByMySlf

Sorry, reparei no que estava a bold mas não interpretei como sendo o erro que te devolvia ao executar o código. :wallbash:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
flaviojef

pois SQL é muito rigoroso com esse tipo de ligações a base de dados. no entanto o MySQL é mais fácil, e percebe-se facilmente onde poderá estar o erro, seja de sintaxe seja de outra coisa qualquer.. ainda bem que resolves-te entao o caso;)

boa sorte para o resto

Cumpz

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.