none
Problema con actualizaci{on de datos desde una lista generica.

    Pregunta

  • Hola a todos:

    Estoy tratando de hacer un UPDATE a través de una lista, pero no me toma los valores DOUBLES me lo graba como 0, cuando dichos valores son diferentes de 0. Solo me graba bien los valor STRING del campo "orden" y "empresa" que es una variable.

    Os pongo la lista porque la he repasado varias veces y no acabo de ver donde falla para no grabar bien los valores que llevan las variables.

    Creo la lista y sus propiedades en una clase.

    Public Class ActualizarVariosAuditoria
    
        Private m_ejer01 As Double
        Private m_ejer02 As Double
        Private m_ejer03 As Double
        Private m_orden As String
        Private m_empresa As String
    
    
        Public Sub New(ejer01 As Double, ejer02 As Double, ejer03 As Double, orden As String, empresa As String)
            m_ejer01 = ejer01
            m_ejer01 = ejer02
            m_ejer01 = ejer03
            m_orden = orden
            m_empresa = empresa
        End Sub
    
        Public ReadOnly Property empresa As String
            Get
                Return m_empresa
            End Get
        End Property
    
        Public ReadOnly Property orden As String
            Get
                Return m_orden
            End Get
        End Property
    
        Public ReadOnly Property ejer01 As Double
            Get
                Return m_ejer01
            End Get
        End Property
    
        Public ReadOnly Property ejer02 As Double
            Get
                Return m_ejer02
            End Get
        End Property
    
        Public ReadOnly Property ejer03 As Double
            Get
                Return m_ejer03
            End Get
        End Property
    
    
        Public Function Update() As String
    
            Return String.Format("UPDATE VariosAuditoria Set Ejer_01='{0}', Ejer_02='{1}', Ejer_03='{2}' WHERE Orden='{3}' AND Cod_Empresa='{4}'",
                                 m_ejer01, m_ejer02, m_ejer03, m_orden, m_empresa)
        End Function
    
    End Class

    Relleno los datos de la lista y la actualizo con el UPDATE.

    Public Shared Sub ActualizarFormBalances_Auditoria()
            Dim lst As New List(Of ActualizarVariosAuditoria)
    
            Dim empresa As String = VarGlobal.StrCodEmpresa
    
            lst.Add(New ActualizarVariosAuditoria(ActivoCorriente_ACO(0), ActivoCorriente_ACO(1), ActivoCorriente_ACO(2), "160", empresa))
            lst.Add(New ActualizarVariosAuditoria(ActivosFinancierosDisponParaVenta_AjustCambioValor_PAT(0), ActivosFinancierosDisponParaVenta_AjustCambioValor_PAT(1), ActivosFinancierosDisponParaVenta_AjustCambioValor_PAT(2), "308", empresa))
            lst.Add(New ActualizarVariosAuditoria(ActivosNoCorrientesMantenParaVenta_ACO(0), ActivosNoCorrientesMantenParaVenta_ACO(1), ActivosNoCorrientesMantenParaVenta_ACO(2), "161", empresa))
            lst.Add(New ActualizarVariosAuditoria(AccionDesembExigidos_DeudComOtrasCtasCobrarCtoPzo_ACO(0), AccionDesembExigidos_DeudComOtrasCtasCobrarCtoPzo_ACO(1), AccionDesembExigidos_DeudComOtrasCtasCobrarCtoPzo_ACO(2), "188", empresa))
            lst.Add(New ActualizarVariosAuditoria(ActNoCtesyPasivVncMantVtaCtoPzo_AjustCambioValor_PAT(0), ActNoCtesyPasivVncMantVtaCtoPzo_AjustCambioValor_PAT(1), ActNoCtesyPasivVncMantVtaCtoPzo_AjustCambioValor_PAT(2), "310", empresa))
            lst.Add(New ActualizarVariosAuditoria(AjustesPeriodifActivo_ACO(0), AjustesPeriodifActivo_ACO(1), AjustesPeriodifActivo_ACO(2), "220", empresa))
            lst.Add(New ActualizarVariosAuditoria(AjustesPorCambioDeValor_PAT(0), AjustesPorCambioDeValor_PAT(1), AjustesPorCambioDeValor_PAT(2), "307", empresa))
            lst.Add(New ActualizarVariosAuditoria(AnticiposDeClientes_AcreedComOtrasCtasPagar_PCO(0), AnticiposDeClientes_AcreedComOtrasCtasPagar_PCO(1), AnticiposDeClientes_AcreedComOtrasCtasPagar_PCO(2), "281", empresa))
            lst.Add(New ActualizarVariosAuditoria(AnticiposProveedores_Existencias_ACO(0), AnticiposProveedores_Existencias_ACO(1), AnticiposProveedores_Existencias_ACO(2), "168", empresa))
            lst.Add(New ActualizarVariosAuditoria(Capital_FdosPropios_PAT(0), Capital_FdosPropios_PAT(1), Capital_FdosPropios_PAT(2), "292", empresa))
            lst.Add(New ActualizarVariosAuditoria(CapitalEscriturado_FdosPropios_PAT(0), CapitalEscriturado_FdosPropios_PAT(1), CapitalEscriturado_FdosPropios_PAT(2), "293", empresa))
            lst.Add(New ActualizarVariosAuditoria(CapitalNoExigido_FdosPropios_PAT(0), CapitalNoExigido_FdosPropios_PAT(1), CapitalNoExigido_FdosPropios_PAT(2), "294", empresa))
            lst.Add(New ActualizarVariosAuditoria(ClientesEmpGrpo_DeudComOtrasCtasCobrarCtoPzo_ACO(0), ClientesEmpGrpo_DeudComOtrasCtasCobrarCtoPzo_ACO(1), ClientesEmpGrpo_DeudComOtrasCtasCobrarCtoPzo_ACO(2), "179", empresa))
            lst.Add(New ActualizarVariosAuditoria(DeudasACortoPlazo_PCO(0), DeudasACortoPlazo_PCO(1), DeudasACortoPlazo_PCO(2), "243", empresa))
            lst.Add(New ActualizarVariosAuditoria(DeudasCaracterEspecCtoPzo_PCO(0), DeudasCaracterEspecCtoPzo_PCO(1), DeudasCaracterEspecCtoPzo_PCO(2), "283", empresa))
    
    
    
    
    
            ' Creamos el acceso a datos mediante el nombre de la cadena de conexión existente en el archivo de configuración de la aplicación.
            'Dim da As DataAccessInvariant = DataAccessInvariant.GetDataAccessInvariant(Configuracion.CadenaConexion)
    
            Using cnn As DbConnection = da.CreateConnection()
                cnn.Open()
    
                ' Creamos el Commando
                Dim cmd As DbCommand = cnn.CreateCommand()
    
                For Each item As ActualizarVariosAuditoria In lst
    
                    cmd.CommandText = item.Update()
    
                    cmd.ExecuteNonQuery()
    
                Next
            End Using
        End Sub
    

    Bueno, no se si el problema viene por los valores de tipo DOUBLE, pero creo que estan bien puestos.

    Un cordial saludo a todos.

    Gemma

    domingo, 4 de septiembre de 2016 17:13

Respuestas

  • Hola:

    Ya esta solucionado, ha sido por un error mio en la declaración de las variables:

    Public Sub New(ejer01 As Double, ejer02 As Double, ejer03 As Double, orden As String, empresa As String)
            m_ejer01 = ejer01
            m_ejer01 = ejer02
            m_ejer01 = ejer03
            m_orden = orden
            m_empresa = empresa
        End Sub
    

    Estan asignadas con el mismo nombre, ya esta corregido y funcionando perfectamente.,

    Disculpas a todos.

    Gemma

    • Marcado como respuesta gemma_campillo domingo, 4 de septiembre de 2016 17:34
    domingo, 4 de septiembre de 2016 17:34