Inquiridor
Guardar na bese de dados

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]
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.
-