none
Guardar na bese de dados RRS feed

  • Pergunta

  • Boas pessoal
    Estou a tentar guardar um registo na base de dados, mas não me está a guardar nada. Se eu meter o Try em comentario oerro que me dá é Erro ao converter tipo de dados nvarchar para numérico. O único campo nvarchar que tenho é o produto,
    [code=vb]

    Dim myConnectionString1 As String = _
               "Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Acer\Desktop\Base de Dados.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"


            Dim SqlB As String = "INSERT INTO Recibos (N_Recibo, Data, Unidades, Produto, Iva, Subtotal, Incidencia_6, Incidencia_13, Incidencia_23, Valor_6, Valor_13, Valor_23, Total_liquido, Total_documento, Total_entregue, Troco) VALUES(@N_Recibo, @Data, @Unidades, @Produto, @Iva, @Subtotal, @Incidencia_6, @Incidencia_13, @Incidencia_23, @Valor_6, @Valor_13, @Valor_23, @Total_liquido, @Total_documento, @Total_entregue, @Troco)"

            Dim connectionB As New SqlConnection(myConnectionString1)

            connectionB.Open()
            Try
                For Each row As DataGridViewRow In Ecravendas.DataGridView1.Rows
                    ' For each row DataGridView1.Rows.Count - 1

                    Dim command As New SqlCommand(SqlB, connectionB)
                    command.Parameters.Add(New SqlParameter("@N_Recibo", Ecravendas.txtrecibo.Text))
                    command.Parameters.Add(New SqlParameter("@Data", Ecravendas.DtpData.Value))
                    command.Parameters.Add("@Unidades", SqlDbType.Int).Value = row.Cells(0).Value
                    command.Parameters.Add("@Produto", SqlDbType.NVarChar).Value = row.Cells(1).Value
                    command.Parameters.Add("@Iva", SqlDbType.Decimal).Value = row.Cells(2).Value
                    command.Parameters.Add("@Subtotal", SqlDbType.Decimal).Value = row.Cells(3).Value.Replace(",", ".")
                    command.Parameters.Add(New SqlParameter("@Incidencia_6", Ecravendas.Txtiva6incidencia.Text.Replace(",", ".")))
                    command.Parameters.Add(New SqlParameter("@Incidencia_13", Ecravendas.Txtiva13incidencia.Text.Replace(",", ".")))
                    command.Parameters.Add(New SqlParameter("@Incidencia_23", Ecravendas.Txtiva23incidencia.Text))
                    command.Parameters.Add(New SqlParameter("@Valor_6", Ecravendas.Txtiva6valor.Text.Replace(",", ".")))
                    command.Parameters.Add(New SqlParameter("@Valor_13", Ecravendas.Txtiva13valor.Text.Replace(",", ".")))
                    command.Parameters.Add(New SqlParameter("@Valor_23", Ecravendas.Txtiva23valor.Text.Replace(",", ".")))
                    command.Parameters.Add(New SqlParameter("@Total_liquido", Ecravendas.Txtliquido.Text.Replace(",", ".")))
                    command.Parameters.Add(New SqlParameter("@Total_documento", Ecravendas.Lbtotal.Text.Replace(",", ".")))
                    command.Parameters.Add(New SqlParameter("@Total_entregue", Txtpreco.Text.Replace(",", ".")))
                    command.Parameters.Add(New SqlParameter("@Troco", TextBox1.Text.Replace(",", ".")))
                    command.ExecuteNonQuery()
                    command.Dispose()

                Next
            Catch ex As Exception

            Finally
                connectionB = Nothing

            End Try

    [/code]
    quarta-feira, 7 de maio de 2014 21:42

Todas as Respostas

  •  Dim command As New SqlCommand(SqlB, connectionB)
                    command.Parameters.Add(New SqlParameter("@N_Recibo", CINT(Ecravendas.txtrecibo.Text)))
                    command.Parameters.Add(New SqlParameter("@Data", CDATE(Ecravendas.DtpData.Value)))
                    command.Parameters.Add("@Unidades", SqlDbType.Int).Value = CINT(row.Cells(0).Value)
                    command.Parameters.Add("@Produto", SqlDbType.NVarChar).Value = row.Cells(1).Value
                    command.Parameters.Add("@Iva", SqlDbType.Decimal).Value = CDEC(row.Cells(2).Value)
                    command.Parameters.Add("@Subtotal", SqlDbType.Decimal).Value = CDEC(row.Cells(3).Value.Replace(",", "."))
                    command.Parameters.Add(New SqlParameter("@Incidencia_6", CDEC(Ecravendas.Txtiva6incidencia.Text.Replace(",", "."))))
                    command.Parameters.Add(New SqlParameter("@Incidencia_13", CDEC(Ecravendas.Txtiva13incidencia.Text.Replace(",", ".")))
                    command.Parameters.Add(New SqlParameter("@Incidencia_23", CDEC(Ecravendas.Txtiva23incidencia.Text)))
                    command.Parameters.Add(New SqlParameter("@Valor_6", CDEC(Ecravendas.Txtiva6valor.Text.Replace(",", "."))))
                    command.Parameters.Add(New SqlParameter("@Valor_13", CDEC(Ecravendas.Txtiva13valor.Text.Replace(",", "."))))
                    command.Parameters.Add(New SqlParameter("@Valor_23", CDEC(Ecravendas.Txtiva23valor.Text.Replace(",", "."))))
                    command.Parameters.Add(New SqlParameter("@Total_liquido", CDEC(Ecravendas.Txtliquido.Text.Replace(",", "."))))
                    command.Parameters.Add(New SqlParameter("@Total_documento", CDEC(Ecravendas.Lbtotal.Text.Replace(",", "."))))
                    command.Parameters.Add(New SqlParameter("@Total_entregue", CDEC(Txtpreco.Text.Replace(",", "."))))
                    command.Parameters.Add(New SqlParameter("@Troco", CDEC(TextBox1.Text.Replace(",", "."))))
    

    Faz as conversões explicitas no código ai o exception irá levantar

    Exemplo



    Marquinhos Não esqueça de qualificar a resposta.

    quarta-feira, 7 de maio de 2014 22:18
  • Não funcionou na mesma
    quinta-feira, 8 de maio de 2014 20:24