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

zemiguel123

[Resolvido] Erro ao actulizar uma base de dados em mysql atraves do visual basic

Mensagens Recomendadas

zemiguel123

Bom dia a todos. Tenho o seguinte codigo para atuaclizar o stock de um produto. Ao clicar no botao do form anterior abre uma inputbox a pedir o codigo do produto e depois abre um form ja com a opçao do stock para poder actualizar. eu mudo so que ao guardar o vb diz que existe um erro na sitaxe no mysql. preciso de ajuda porque nao consigo encontrar o erro.

Codigo da ligaçao a base de dados no mysql

Private Sub Form6_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       conexao.ConnectionString = "Server = localhost; user = root; database = mercearia;"
       conexao.Open()
       comando.Connection = conexao
       Dim strsql As String = "select * from produto"
       comando.CommandText = strsql
       result = comando.ExecuteReader
       While result.Read
           DataGridView1.Rows.Add(result.Item(0), result.Item(1), result.Item(2), result.Item(3))
       End While
       result.Close()
   End Sub

Codigo do form que tenho para actualizar

Private Sub Form9_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       conexao.Close()
       conexao.Open()
       Dim b As String = InputBox("Qual o código do produto que quer actualizar?", "Actualizar")
       Dim strsql As String = "select * from produto where cod_produto='" & b & "'"
       comando.CommandText = strsql
       result = comando.ExecuteReader
       While result.Read
           TextBox1.Text = result.Item(0)
           TextBox2.Text = result.Item(1)
           TextBox3.Text = result.Item(2)
           TextBox4.Text = result.Item(3)
       End While
       result.Close()
   End Sub


   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       conexao.Close()
       conexao.Open()
       Dim strsql As String = "update produto set quantidade = '" & TextBox4.Text & "'where cod_produto ='" & TextBox1.Text
       comando.CommandText = strsql
       comando.ExecuteNonQuery()
       Button2_Click(sender, e)
       Dim d As Integer = MsgBox("Produto actualizado com sucesso", vbOKOnly, "Sucesso!")
   End Sub

Codigo do erro que me aparece

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 ''3' at line 1. o numero tres varia consoante o codigo do produto que eu escolher.

preciso mesmo de ajuda, nao sei como resolver isto.

Editado por pmg
GeSHi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis

Tens que fechar as aspas no final do Textbox1.text. Repara que as abres antes do update, logo terás que as fechar depois de receber o valor do cod_produto.


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
zemiguel123

NunoDinis, obrigado pela ajuda, foi bastante valiosa, uma vez que me levou a olhar bem com atenção, e nao as aspas como dizias mas sim a plica a segui a where cod_produto = . Obrigado .

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis

Ótimo, era dentro disso :)

Marca o tópico como resolvido, acima, nas ferramentas do autor.


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

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.