none
Erro ao incluir registro RRS feed

  • Pergunta

  • Boa noite.

    Tenho uma situação e não estou conseguindo ver o erro. No form principal eu passo as informações:

     Private Sub btnIncluir_Click(sender As Object, e As EventArgs) Handles btnIncluir.Click
            If txtDesc.Text = String.Empty Then
                MsgBox("Informe o nome do Produto")
                txtDesc.Focus()
                Return
            End If
            Try
                acc.IncluirProd(txtDesc.Text, txtUnidade.Text, Val(txtSAnter.Text), cboSelecione.Text, txtObs.Text)
                MsgBox("Dados Salvos com sucesso!")
            Catch ex As Exception
                MsgBox("Erro ao incluir dados!" & vbCrLf & Err.Number & vbCrLf & Err.Description)
            End Try
            CarregaDadosProd()
        End Sub

    na minha classe:

    Public Sub IncluirProd(ByVal Descricao As String, ByVal Unidade As String, ByVal SAnterior As Integer, ByVal Especie As String, ByVal Obs As String)
            Try
                cn = getConexaoDB()
                Cmd.Connection = cn
                Cmd.CommandText = "INSERT INTO PRODUTOS (Descricao, Unidade, SAnterior, Especie, Obs ) " & " VALUES (@Descricao, @Unidade, @SAnterior, @Especie, @Obs)"
                Cmd.CommandType = CommandType.Text
                With Cmd.Parameters
                    .Add(New OleDbParameter("@Descricao", OleDbType.VarChar, 200, "Descricao"))
                    .Add(New OleDbParameter("@Unidade", OleDbType.VarChar, 25, "Unidade"))
                    .Add(New OleDbParameter("@SAnterior", OleDbType.Integer, 5, "SAnterior"))
                    .Add(New OleDbParameter("@Especie", OleDbType.VarChar, 20, "Especie"))
                    .Add(New OleDbParameter("@Obs", OleDbType.VarChar, 255, "Obs"))
                End With
                Cmd.ExecuteNonQuery()
            Catch ex As Exception
                Throw ex
            Finally
                closeConexaoDB(cn)
            End Try
        End Sub

    está me retornando erro 5 o Valor @Descricao não tem valor padrão!  (Na depuração me mostra o valor digitado correto)

    Como resolvo isto, pois estou incluindo texto, access 2010 (estou usando mdb, versão 4.0 : <add name="ConexaoEstq" providerName="System.Data.OleDb" connectionString="Provider=Microsoft.Jet.OleDb.4.0; Data Source=C:\dados\Estoque.mdb"/>

    Alguém poderia me indicar onde estou errando????

    Obrigado.


    helio Passos

    quinta-feira, 16 de março de 2017 01:28

Todas as Respostas

  • Pessoal. A solução fornecida para este meu problema foi a seguinte:

            With Cmd.Parameters
                    .Add(New OleDbParameter("@Descricao", OleDbType.VarChar, 200, "Descricao")).Value = Descricao
                    .Add(New OleDbParameter("@Unidade", OleDbType.VarChar, 25, "Unidade")).Value = Unidade
                    .Add(New OleDbParameter("@SAnterior", OleDbType.Integer, 5, "SAnterior")).Value = SAnterior
                    .Add(New OleDbParameter("@Especie", OleDbType.VarChar, 20, "Especie")).Value = Especie
                    .Add(New OleDbParameter("@Obs", OleDbType.VarChar, 255, "Obs")).Value = Obs
             End With

    Fica aqui a resposta, pois se alguém precisar, será uma mão na roda.

    Obrigado ao pessoal do Fórum.


    helio Passos

    quinta-feira, 16 de março de 2017 18:25