Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

eduardohaag

Insert Into não está funcionando

Recommended Posts

Olá pessoal, estou novamente por aqui tentando tirar minhas duvidas

Bom avancei um pouco no meu projeto, mas como pra mim tudo é novo no vb.net esbarrei em algo que seja talvez mais um erro besta.

 

em meu banco de dados tenho a tabela "Produtos" com as seguintes colunas:

 

"Código (preenchimento automático), Descrição, Tipo, Prazo, Custo, Venda, Unidade, Movimenta(true ou false), Minimo e Estoque"

 

estou tentando fazer com que meu formulario insira esses dados no banco de dados, mas não estou conseguindo.

 

Meu código abaixo

Private Sub cmd_salvar_Click(sender As Object, e As EventArgs) Handles cmd_salvar.Click
        Dim sql As String
        Dim conn As OleDbConnection
        Dim cmd As OleDbCommand

        If cb_tipo.Text = "" Or tb_descricao.Text = "" Or cb_unidade.Text = "" Then
            MsgBox("É Obrigatório o preenchimendo dos campos com '*'.")
            Exit Sub
        End If

        If lb_codigo.Text = "-" Then
            conn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\same_database1.mdb")
            conn.Open()

            sql = "INSERT INTO Produtos(Descrição, Tipo, Prazo, Custo, Venda, Unidade, Movimenta,  Minimo, Estoque)"
            sql = sql & "Values (" & tb_descricao.Text & "," & cb_tipo.Text & "," & cb_prazo.Text & "," & tb_custo.Text & "," & tb_preco.Text & "," & cb_unidade.Text & "," & opt_sim.Checked & "," & tb_minimo.Text & "," & 0 & ")"
            cmd = New OleDbCommand(sql, conn)
            Try
                cmd.ExecuteNonQuery()
            Catch ex As Exception
                MsgBox("erro")
            Finally
                conn.Close()
            End Try
            MsgBox("Salvo")
        End If

    End Sub

o que acontece é que simplesmente não salva, e não acontece erro nenhum.

Sei que é muito provavel que seja um erro besta, mas não estou conseguindo fazer funcionar. Já pesquisei bastante e tentei fazer de outras formas, mas nada resolveu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou te dar duas dicas:

 

1º - Nunca use caracteres especiais ao dar nomes para colunas, variáveis e/ou qualquer outra coisa relacionada a programação, como você fez na coluna Descrição. Isto pelo fato de que nem todos os sistemas possuem identificadores para esses caracteres, desta forma seu código fica "quebrado". Inclusive esse pode ser a causa do seu problema atual.

 

2ª - Antes de rodar o SQL gerado pela máquina, printe na tela a query, pois você não sabe quais são os parâmetros que estão chegando ou a ordem dos mesmos. Printe o resultado da query na tela e cole aqui para podermos ver.

 

É possível que o problema da sua query seja que você esteja inserindo textos sem aspas: '' como por exemplo aqui:

"Values (" & tb_descricao.Text & "

Isso printaria algo do tipo:

Values ( Minha descrição

Quando na verdade o que funciona é:

Values('Minha descrição'

Sempre que for inserir textos em SQL, utilize as aspas simples.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pelas dicas, ja fiz algumas alterações pra evitar esses erros.

 

bom tentei fazer o que você falou sobre as aspas e não resolveu.

 

tirei print da query, do formulario e da estrutura do banco de dados, pra quem sabe encontrar o erro.

 

query: Formulario: Banco de dados Access

query.jpg tela_programa.jpg banco_de_dados.jpg

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boas noticias, consegui encontrar o problema.

Ele não estava salvando por causa de alguns campos que ficavam com o valor em branco no formulário.

 

Agradeço mais uma vez a ajuda.

E provavelmente em breve estarei por aqui novamente :) .

 

Grande abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.