ERRO AO CARREGAR DADOS
Boa noite,
tenho um evento em um form que ele executa ao clicar no botão ele chama o procedimento [Ô]carregar_gca[Ô], mas o problema é o seguinte, se existir a [Ô]gca[Ô] cadastrada ele retorna o valor, agora se ela não existir ele retorna o seguinte erro:
[txt-color=#e80000]BOF ou EOF são verdadeiros, ou o registro atual foi excluÃdo. A operação solicitada pelo aplicativo requer um registro atual. [/txt-color]
O que eu quero é por exemplo que se o registro não existir, ele retorne uma MSGBOX avisando que o registro não existe. Abaixo segue o código que estou usando para fazer o select.
Private Sub carrega_gca()
RS1 = New ADODB.Recordset
RS1.Open([Ô]select * from tb_entradas_carvao where numero_gca = [Ô] & numero_gca.Text, GetConexao, 1, 2)
If RS1.EOF Then
Me.cpf_portador.Text = RS1.Fields([Ô]cpf_portador[Ô]).Value
[ô]Me.nome_portador.Text = RS1.Fields([Ô]motorista[Ô]).Value
Me.valor_frete.Text = RS1.Fields([Ô]calcular_valor_motorista[Ô]).Value
Me.data_descarga.Text = RS1.Fields([Ô]data_descarga[Ô]).Value
Me.destino.Text = RS1.Fields([Ô]comprador[Ô]).Value
Me.quantidade.Text = RS1.Fields([Ô]metragem_real[Ô]).Value
Me.tipo_volume.Text = RS1.Fields([Ô]TIPO[Ô]).Value
End Sub
tenho um evento em um form que ele executa ao clicar no botão ele chama o procedimento [Ô]carregar_gca[Ô], mas o problema é o seguinte, se existir a [Ô]gca[Ô] cadastrada ele retorna o valor, agora se ela não existir ele retorna o seguinte erro:
[txt-color=#e80000]BOF ou EOF são verdadeiros, ou o registro atual foi excluÃdo. A operação solicitada pelo aplicativo requer um registro atual. [/txt-color]
O que eu quero é por exemplo que se o registro não existir, ele retorne uma MSGBOX avisando que o registro não existe. Abaixo segue o código que estou usando para fazer o select.
Private Sub carrega_gca()
RS1 = New ADODB.Recordset
RS1.Open([Ô]select * from tb_entradas_carvao where numero_gca = [Ô] & numero_gca.Text, GetConexao, 1, 2)
If RS1.EOF Then
Me.cpf_portador.Text = RS1.Fields([Ô]cpf_portador[Ô]).Value
[ô]Me.nome_portador.Text = RS1.Fields([Ô]motorista[Ô]).Value
Me.valor_frete.Text = RS1.Fields([Ô]calcular_valor_motorista[Ô]).Value
Me.data_descarga.Text = RS1.Fields([Ô]data_descarga[Ô]).Value
Me.destino.Text = RS1.Fields([Ô]comprador[Ô]).Value
Me.quantidade.Text = RS1.Fields([Ô]metragem_real[Ô]).Value
Me.tipo_volume.Text = RS1.Fields([Ô]TIPO[Ô]).Value
End Sub
tu nao tinha migrado pra ado.net ???
Abraços
Abraços
estou usando os dois tipos de Conexao. Não entendi muito bem como fazer o ADO.net, então as partes que eu não entendi ainda eu uso adodb.
Obriado
Obriado
Tente usar Try...Catch
[txt-color=#0000f0]Try[/txt-color]
[txt-color=#007100][ô]Código[/txt-color]
[txt-color=#0000f0]Catch[/txt-color] ex [txt-color=#0000f0]As Exception[/txt-color]
[txt-color=#007100][ô]Caso dê erro[/txt-color]
[txt-color=#0000f0]End Try[/txt-color]
[txt-color=#0000f0]Try[/txt-color]
[txt-color=#007100][ô]Código[/txt-color]
[txt-color=#0000f0]Catch[/txt-color] ex [txt-color=#0000f0]As Exception[/txt-color]
[txt-color=#007100][ô]Caso dê erro[/txt-color]
[txt-color=#0000f0]End Try[/txt-color]
Altere...
[txt-color=#e80000]If RS1.EOF Then[/txt-color]
...para...
[txt-color=#0000f0]If Not RS1.EOF Then[/txt-color]
...e veja se resolve.
[txt-color=#e80000]If RS1.EOF Then[/txt-color]
...para...
[txt-color=#0000f0]If Not RS1.EOF Then[/txt-color]
...e veja se resolve.
Pegudo, seu código resolveu. Seguindo o conselho do ZeroCall eu estou colocando tudo como Ado.net, eu não tinha entendido bem como funcionava por isso ainda usava adodb, mas procurei mais um pouco aqui no fórum mesmo o exemplo do nosso colega MORDOR, em:
www.vbmania.com.br/pages/?varModulo=Forum&varMethod=abrir&varID=220260&varWorld
Deixando o link, caso alguém tenha a mesma dúvida que eu de como usar Ado.net. E com os exemplos dela lá tive uma idéia melhor de como usar e gostei muito, em ado.net parece ser mais fácil e também [Ô]ao menos eu achei[Ô] que nele acontece menos erros do que no adodb.
Obrigados a todos pela ajuda.
www.vbmania.com.br/pages/?varModulo=Forum&varMethod=abrir&varID=220260&varWorld
Deixando o link, caso alguém tenha a mesma dúvida que eu de como usar Ado.net. E com os exemplos dela lá tive uma idéia melhor de como usar e gostei muito, em ado.net parece ser mais fácil e também [Ô]ao menos eu achei[Ô] que nele acontece menos erros do que no adodb.
Obrigados a todos pela ajuda.
Quero atualizar os dados com o seguinte código abaixo, so que quando mando atualizar dá o seguinte erro:,
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near [ô]= ( cpf_portador, numero_gca, nf_produtor_rural, preco_m3, calcular_valor_motori[ô] at line 1
Dim command As New MySql.Data.MySqlClient.MySqlCommand([Ô]UPDATE tb_entradas_carvao set = ( cpf_portador, numero_gca, nf_produtor_rural, preco_m3, calcular_valor_motorista, peso, data_descarga, m3_nfe, diferenca_volume, metragem_real, valor_nfe, umidade, densidade, numero_nfe, valor_motorista ) VALUES ( @cpf_portador, @numero_gca, @nf_produtor_rural, @preco_m3, @calcular_valor_motorista, @peso, @data_descarga, @m3_nfe, @diferenca_volume, @metragem_real, @valor_nfe, @umidade, @densidade, @numero_nfe, @valor_motorista) where numero_gca[Ô] & numero_gca.text, GetConexao1)
command.Parameters.AddWithValue([Ô]@numero_gca[Ô], numero_gca.Text)
command.Parameters.AddWithValue([Ô]@cpf_portador[Ô], cpf_portador.Text)
command.Parameters.AddWithValue([Ô]@nf_produtor_rural[Ô], nf_produtor_rural.Text)
command.Parameters.AddWithValue([Ô]@preco_m3[Ô], preco_m3.Text)
command.Parameters.AddWithValue([Ô]@calcular_valor_motorista[Ô], calcula_valor_motorista.Text)
command.Parameters.AddWithValue([Ô]@peso[Ô], peso.Text)
command.Parameters.AddWithValue([Ô]@data_descarga[Ô], data_descarga.Text)
command.Parameters.AddWithValue([Ô]@m3_nfe[Ô], m3_nfe.Text)
command.Parameters.AddWithValue([Ô]@diferenca_volume[Ô], diferenca_volume.Text)
command.Parameters.AddWithValue([Ô]@metragem_real[Ô], metragem_real.Text)
command.Parameters.AddWithValue([Ô]@valor_nfe[Ô], valor_nfe.Text)
command.Parameters.AddWithValue([Ô]@umidade[Ô], umidade.Text)
command.Parameters.AddWithValue([Ô]@densidade[Ô], densidade.Text)
command.Parameters.AddWithValue([Ô]@numero_nfe[Ô], numero_nfe.Text)
command.Parameters.AddWithValue([Ô]@valor_motorista[Ô], valor_motorista.Text)
command.ExecuteNonQuery()
command.Dispose()
Obrigado
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near [ô]= ( cpf_portador, numero_gca, nf_produtor_rural, preco_m3, calcular_valor_motori[ô] at line 1
Dim command As New MySql.Data.MySqlClient.MySqlCommand([Ô]UPDATE tb_entradas_carvao set = ( cpf_portador, numero_gca, nf_produtor_rural, preco_m3, calcular_valor_motorista, peso, data_descarga, m3_nfe, diferenca_volume, metragem_real, valor_nfe, umidade, densidade, numero_nfe, valor_motorista ) VALUES ( @cpf_portador, @numero_gca, @nf_produtor_rural, @preco_m3, @calcular_valor_motorista, @peso, @data_descarga, @m3_nfe, @diferenca_volume, @metragem_real, @valor_nfe, @umidade, @densidade, @numero_nfe, @valor_motorista) where numero_gca[Ô] & numero_gca.text, GetConexao1)
command.Parameters.AddWithValue([Ô]@numero_gca[Ô], numero_gca.Text)
command.Parameters.AddWithValue([Ô]@cpf_portador[Ô], cpf_portador.Text)
command.Parameters.AddWithValue([Ô]@nf_produtor_rural[Ô], nf_produtor_rural.Text)
command.Parameters.AddWithValue([Ô]@preco_m3[Ô], preco_m3.Text)
command.Parameters.AddWithValue([Ô]@calcular_valor_motorista[Ô], calcula_valor_motorista.Text)
command.Parameters.AddWithValue([Ô]@peso[Ô], peso.Text)
command.Parameters.AddWithValue([Ô]@data_descarga[Ô], data_descarga.Text)
command.Parameters.AddWithValue([Ô]@m3_nfe[Ô], m3_nfe.Text)
command.Parameters.AddWithValue([Ô]@diferenca_volume[Ô], diferenca_volume.Text)
command.Parameters.AddWithValue([Ô]@metragem_real[Ô], metragem_real.Text)
command.Parameters.AddWithValue([Ô]@valor_nfe[Ô], valor_nfe.Text)
command.Parameters.AddWithValue([Ô]@umidade[Ô], umidade.Text)
command.Parameters.AddWithValue([Ô]@densidade[Ô], densidade.Text)
command.Parameters.AddWithValue([Ô]@numero_nfe[Ô], numero_nfe.Text)
command.Parameters.AddWithValue([Ô]@valor_motorista[Ô], valor_motorista.Text)
command.ExecuteNonQuery()
command.Dispose()
Obrigado
Ficou da seguinte forma:
Dim command As New MySql.Data.MySqlClient.MySqlCommand([Ô]UPDATE tb_entradas_carvao set ( cpf_portador, numero_gca, nf_produtor_rural, preco_m3, calcular_valor_motorista, peso, data_descarga, m3_nfe, diferenca_volume, metragem_real, valor_nfe, umidade, densidade, numero_nfe, valor_motorista ) VALUES ( @cpf_portador, @numero_gca, @nf_produtor_rural, @preco_m3, @calcular_valor_motorista, @peso, @data_descarga, @m3_nfe, @diferenca_volume, @metragem_real, @valor_nfe, @umidade, @densidade, @numero_nfe, @valor_motorista) where numero_gca =[Ô] & numero_gca.Text, GetConexao1)
mas o erro continua.
Dim command As New MySql.Data.MySqlClient.MySqlCommand([Ô]UPDATE tb_entradas_carvao set ( cpf_portador, numero_gca, nf_produtor_rural, preco_m3, calcular_valor_motorista, peso, data_descarga, m3_nfe, diferenca_volume, metragem_real, valor_nfe, umidade, densidade, numero_nfe, valor_motorista ) VALUES ( @cpf_portador, @numero_gca, @nf_produtor_rural, @preco_m3, @calcular_valor_motorista, @peso, @data_descarga, @m3_nfe, @diferenca_volume, @metragem_real, @valor_nfe, @umidade, @densidade, @numero_nfe, @valor_motorista) where numero_gca =[Ô] & numero_gca.Text, GetConexao1)
mas o erro continua.
Cara você ta usando a instrução do INSERT no UPDATE
Ex: INSERT INTO <tabela> (<campo1>,<campo2>,...) values (<valor1,<valor2>,...) WHERE <condição>
O UPDATE usa:
UPDATE <tabela> SET <campo1> = <valor1>, <campo2> = <valor2>, ... WHERE <condição>
Sua instruçao deve ficar mais ou menos assim:
UPDATE tb_entradas_carvao SET cpf_portador = @cpf_portador, numero_cga = @numero_cga ... WHERE .....
Ex: INSERT INTO <tabela> (<campo1>,<campo2>,...) values (<valor1,<valor2>,...) WHERE <condição>
O UPDATE usa:
UPDATE <tabela> SET <campo1> = <valor1>, <campo2> = <valor2>, ... WHERE <condição>
Sua instruçao deve ficar mais ou menos assim:
UPDATE tb_entradas_carvao SET cpf_portador = @cpf_portador, numero_cga = @numero_cga ... WHERE .....
Citação:mas o erro continua.
Qual a mensagem de erro agora?
ah agora entendi, vou mudar aqui e lhe retorno
Tópico encerrado , respostas não são mais permitidas