Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
kazzx

[Resolvido] Erro de sintaxe

Recommended Posts

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:

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites
bioshock

Assim de repente, experimenta:

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

PS: Not sure!

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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:

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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:

Share this post


Link to post
Share on other 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:

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.