none
Erro Sintaxe INSERT INTO RRS feed

  • Pergunta

  • Boa tarde pessoal, gostaria de uma força de vocês, quando vou gravar as informações do meu programa está dando um erro de INSERT INTO, como posso concerta-lo?

    Segue o código

    Private Sub PGrava()
            Using con As OleDbConnection = GetConnection()
                Try

                    con.Open()
                    If strImgName <> "" Then

                        Dim fs As FileStream
                        fs = New FileStream(strImgName, FileMode.Open, FileAccess.Read)
                        Dim picByte As Byte() = New Byte(fs.Length - 1) {}
                        fs.Read(picByte, 0, System.Convert.ToInt32(fs.Length))


                        Dim sql As String = "INSERT INTO Controle de Produção (Nome, Altura, Largura, Altura Contramarco, Largura Contramarco, Obra, Quantidade, Acessórios, [Foto], Largura Remate, Altura Remate) VALUES (?,?)"
                        Dim cmd As OleDbCommand = New OleDbCommand(sql, con)

                        cmd.Parameters.Add(New OleDb.OleDbParameter("@nome", txtnome.Text))
                        cmd.Parameters.Add(New OleDb.OleDbParameter("@altura", txtalt.Text))
                        cmd.Parameters.Add(New OleDb.OleDbParameter("@Largura", txtlarg.Text))
                        cmd.Parameters.Add(New OleDb.OleDbParameter("@Altura Contramarco", txtaltcont.Text))
                        cmd.Parameters.Add(New OleDb.OleDbParameter("@Largura Contramarco", txtlargcont.Text))
                        cmd.Parameters.Add(New OleDb.OleDbParameter("@Obra", txtObra.Text))
                        cmd.Parameters.Add(New OleDb.OleDbParameter("Quantidade", txtquant.Text))
                        cmd.Parameters.Add(New OleDb.OleDbParameter("@Acessórios", txtacess.Text))
                        cmd.Parameters.Add(New OleDb.OleDbParameter("@Largura Remate", txtlargrem.Text))
                        cmd.Parameters.Add(New OleDb.OleDbParameter("@Altura Remate", txtaltrem.Text))
                        cmd.Parameters.Add(New OleDb.OleDbParameter("@Foto", OleDbType.Binary, picByte.Length)).Value = picByte

                        cmd.ExecuteNonQuery()
                        MsgBox("Imagem Gravada com Sucesso.", MsgBoxStyle.Information)

                        txtnome.Text = ""
                        txtalt.Text = ""
                        txtlarg.Text = ""
                        txtaltcont.Text = ""
                        txtlargcont.Text = ""
                        txtObra.Text = ""
                        txtquant.Text = ""
                        txtacess.Text = ""
                        txtlargrem.Text = ""
                        txtaltrem.Text = ""
                        imgSalvar.Image = Nothing

                    End If

                Catch ex As Exception
                    MsgBox(ex.Message)
                Finally
                    con.Close()
                End Try
            End Using
        End Sub

    quinta-feira, 17 de dezembro de 2015 16:56

Respostas

  • Boa noite.

    Tente colocar o @ na frente de "Quantidade":

    cmd.Parameters.Add(New OleDb.OleDbParameter("@Quantidade", txtquant.Text))
    E também:

    Dim sql As String = "INSERT INTO Controle de Produção
    (Nome, Altura, Largura, Altura Contramarco, Largura Contramarco, Obra, Quantidade, Acessórios, [Foto], Largura Remate, Altura Remate)
    VALUES (@Nome, @Altura, @Largura, etc.)"

    'preencher todos parâmetros



    Att., Rafael Simor

    • Sugerido como Resposta Marcos SJ terça-feira, 22 de dezembro de 2015 12:00
    • Marcado como Resposta Marcos SJ quinta-feira, 24 de dezembro de 2015 12:30
    terça-feira, 22 de dezembro de 2015 07:42

Todas as Respostas

  • Wendel Vieira,

    Qual seria o erro?


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 21 de dezembro de 2015 16:55
  • Boa noite.

    Tente colocar o @ na frente de "Quantidade":

    cmd.Parameters.Add(New OleDb.OleDbParameter("@Quantidade", txtquant.Text))
    E também:

    Dim sql As String = "INSERT INTO Controle de Produção
    (Nome, Altura, Largura, Altura Contramarco, Largura Contramarco, Obra, Quantidade, Acessórios, [Foto], Largura Remate, Altura Remate)
    VALUES (@Nome, @Altura, @Largura, etc.)"

    'preencher todos parâmetros



    Att., Rafael Simor

    • Sugerido como Resposta Marcos SJ terça-feira, 22 de dezembro de 2015 12:00
    • Marcado como Resposta Marcos SJ quinta-feira, 24 de dezembro de 2015 12:30
    terça-feira, 22 de dezembro de 2015 07:42
  • Bom dia,

    Por falta de retorno do usuário, esta thread será encerrada.

    Caso seja necessário, por gentileza, abra uma thread nova.

    Atenciosamente

    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quinta-feira, 24 de dezembro de 2015 12:30