Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
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
/applications/core/interface/imageproxy/imageproxy.php?img=http://s9.postimg.org/6himasbsb/query.jpg&key=8e35bd78d73fb98ce80560c4e85140655ce52caf0b4756cffe8fb4d997bc9bc5" alt="query.jpg" /> /applications/core/interface/imageproxy/imageproxy.php?img=http://s9.postimg.org/mpyuk9kmj/tela_programa.jpg&key=72bac2d15307eb49b8431a92345d64eee96e040c6e01b56b87885aae99cabf5f" alt="tela_programa.jpg" /> /applications/core/interface/imageproxy/imageproxy.php?img=http://s22.postimg.org/3r7mo33b1/banco_de_dados.jpg&key=e844396e54835229ef2baa7dea03b5e373903ab1a42691dc018e865c3a78d3fe" alt="banco_de_dados.jpg" />
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
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.