Foros del Web » Programación para mayores de 30 ;) » .NET »

problemas con clases/procedure y datos decimales

Estas en el tema de problemas con clases/procedure y datos decimales en el foro de .NET en Foros del Web. tengo el siguiente problema, al registrar datos DECIMALES, los otros procedures registran sin problemas :S un procedure Código: CREATE procedure usp_i_registrar_boleta @bo_codigo char(5), @bo_fecha datetime, ...
  #1 (permalink)  
Antiguo 14/06/2008, 10:37
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Pregunta problemas con clases/procedure y datos decimales

tengo el siguiente problema, al registrar datos DECIMALES, los otros procedures registran sin problemas :S

un procedure

Código:
CREATE procedure usp_i_registrar_boleta
  @bo_codigo char(5),
  @bo_fecha datetime,
  @bo_neto decimal(5,2),
  @bo_descuento decimal(5,2),
  @bo_subtotal decimal(5,2),
  @bo_igv decimal(5,2),
  @bo_total decimal(5,2),
  @al_codigo char(5),
  @bo_cancelado bit
as
  insert into sa_boleta values (@bo_codigo, @bo_fecha, @bo_neto, @bo_descuento, @bo_subtotal, @bo_igv, @bo_total, @al_codigo, @bo_cancelado)
  if (@bo_cancelado=1)
  begin
    update sa_boleta set bo_cancelado=1 where al_codigo=@al_codigo
  end
uso una clase de este tipo:

Código:
Imports System.Data.SqlClient

Public Class cls_boleta

    Public bo_codigo As String
    Public bo_fecha As Date
    Public bo_neto As Single
    Public bo_descuento As Single
    Public bo_subtotal As Single
    Public bo_igv As Single
    Public bo_total As Single
    Public al_codigo As String
    Public bo_cancelado As Integer

    Public Function registrar_boleta() As Boolean

        Dim obj_conexion As New cls_conexion
        Dim obj_command As New SqlCommand

        obj_command.Connection = obj_conexion.obj_SqlConnection
        obj_command.CommandType = CommandType.StoredProcedure
        obj_command.CommandText = "usp_i_registrar_boleta"

        obj_command.Parameters.Add(New SqlParameter("@bo_codigo", SqlDbType.Char, 5))
        obj_command.Parameters("@bo_codigo").Value = bo_codigo

        obj_command.Parameters.Add(New SqlParameter("@bo_fecha", SqlDbType.DateTime))
        obj_command.Parameters("@bo_fecha").Value = bo_fecha

        obj_command.Parameters.Add(New SqlParameter("@bo_neto", SqlDbType.Decimal, 5))
        obj_command.Parameters("@bo_neto").Value = bo_neto

        obj_command.Parameters.Add(New SqlParameter("@bo_descuento", SqlDbType.Decimal, 5))
        obj_command.Parameters("@bo_descuento").Value = bo_descuento

        obj_command.Parameters.Add(New SqlParameter("@bo_subtotal", SqlDbType.Decimal, 5))
        obj_command.Parameters("@bo_subtotal").Value = bo_subtotal

        obj_command.Parameters.Add(New SqlParameter("@bo_igv", SqlDbType.Decimal, 5))
        obj_command.Parameters("@bo_igv").Value = bo_igv

        obj_command.Parameters.Add(New SqlParameter("@bo_total", SqlDbType.Decimal, 5))
        obj_command.Parameters("@bo_total").Value = bo_total

        obj_command.Parameters.Add(New SqlParameter("@al_codigo", SqlDbType.Char, 5))
        obj_command.Parameters("@al_codigo").Value = al_codigo

        obj_command.Parameters.Add(New SqlParameter("@bo_cancelado", SqlDbType.Bit))
        obj_command.Parameters("@bo_cancelado").Value = bo_cancelado

        obj_conexion.conexion()
        obj_command.ExecuteNonQuery() ' ejecutar comando / ExecuteNonQuery devuelve el nro de filas afectadas
        obj_conexion.desconexion()

    End Function

End Class

y en la interfaz envio los valores decimales almacenados en label's, previamente calculados

Código:
    Dim obj_bol As New cls_boleta
    .....
        With obj_bol
            .bo_codigo = Me.txt_bo_codigo.Text
            .bo_fecha = Now()
            .bo_neto = Val(Me.lbl_neto.Text)
            .bo_descuento = Val(Me.txt_descuento.Text)
            .bo_subtotal = Val(Me.lbl_sub_total.Text)
            .bo_igv = Val(Me.lbl_igv.Text)
            .bo_total = Val(Me.lbl_total.Text)
            .al_codigo = Me.txt_al_codigo.Text
            .bo_cancelado = Me.chk_cancelado.CheckState
            .registrar_boleta()
        End With
me envia el siguiente error al momento de ejecutar el ExecuteNonQuery:

Error al convertir el tipo de datos numeric a decimal.

cual es el error que cometo ??, gracias por su ayuda
  #2 (permalink)  
Antiguo 14/06/2008, 10:41
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: problemas con clases/procedure y datos decimales

necesito algun tipo de converción antes de enviar el dato decimal al objeto instanciado ?? que tipo de converción ??? :S
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:28.