Hola amigos del foro, he aquí de vuelta para solicitar vuestra ayuda, estoy en las ultimas pruebas de un sistema de liquidación de vehículos, en los cuales consiste repuestos y mano de obra o solo una de las alternativas mencionadas, al grabar ya sea mano de obra o repuestos por separados funciona bien, pero al momento de grabar ambas, es decir repuestos que consiste en dos grillas y mano de obra una sola grilla, me manda el siguiente error en la ultima grilla que grabo ya sea repuestos o mano de obra.
"Error al convertir el valor del parámetro de String a Int16."
He qui el código que ocupo para de la mano de obra, que es más sencilla que las otras, por eso la dejo al final que grabe, siempre y cuando pase por un filtro de condición.
Sub Graba2()
Dim ds2 As DataSet
ds2 = Session("tabla")
Dim builder As SqlCommandBuilder
builder = Session("cmd")
Dim sqladd As New SqlCommand
sqladd = builder.GetInsertCommand()
sqladd.Connection = conn
Dim sqlmod As New SqlCommand
sqlmod.Connection = conn
Dim sqldel As New SqlCommand
sqldel.Connection = conn
sqladd.CommandText = "insert into Ajuste3 ([N_Filas], [Detalle_Mobra], [Valor_Mobra], [Unidad], [Cantidad], [Precio_Mobra], [Ptotal_Mobra], [Depreciacion], [Ptotal_Ajustado], [Observacion], [Siniestro], [Patente_Vehiculo], [Activo]) VALUES (@p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11, @p12, @p13)"
Dim contador As Integer = 0
Try
sqldel.CommandText = "delete from Ajuste3 where (Siniestro=" _
+ ds2.Tables("Grilla2").Rows(0).Item("Siniestro").To String.Trim + ")"
sqldel.ExecuteNonQuery()
Catch ex As Exception
Dim script As String = String.Format("alert('{0}');", ex.Message)
ScriptManager.RegisterStartupScript(Me, GetType(Page), "Información Incorrecta", script, True)
End Try
For Each fila As DataRow In ds2.Tables("Grilla2").Rows
If Not fila.RowState = DataRowState.Deleted Then
sqladd.Parameters(0).Value = fila("N_Filas")
sqladd.Parameters(1).Value = fila("Detalle_Mobra")
sqladd.Parameters(2).Value = fila("Valor_Mobra")
sqladd.Parameters(3).Value = fila("Unidad")
sqladd.Parameters(4).Value = fila("Cantidad")
sqladd.Parameters(5).Value = fila("Precio_Mobra")
sqladd.Parameters(6).Value = fila("Ptotal_Mobra")
sqladd.Parameters(7).Value = fila("Depreciacion")
sqladd.Parameters(8).Value = fila("Ptotal_Ajustado")
sqladd.Parameters(9).Value = fila("Observacion")
sqladd.Parameters(10).Value = fila("Siniestro")
sqladd.Parameters(11).Value = fila("Patente_Vehiculo")
sqladd.Parameters(12).Value = fila("Activo")
sqladd.ExecuteNonQuery()
End If
Next
End Sub
favor de ayudarme, pienso que en la columna de cantidad ingreso números enteros y números con decimal, es decir 10 o 21,7 y en la base de datos el ítem de Cantidad lo registre con Char(5), al hacer los cálculos los hace bien ,ajustado= valor pieza * cantidad, desde ya muchas gracias