none
Error al sumar valores RRS feed

  • Pregunta

  • Hola, tengo un simple error al ejecutar.

    Lo que hago es guardar el importe total de las ventas de un día.

    En esta linea me salta el error ejecutando el mensaje de error.

    importe = CInt(com.ExecuteScalar()) 'asignamos el valor del importe

        Private Sub CerrarCajaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CerrarCajaToolStripMenuItem.Click
    
            Dim fecha As Date
    
            ' fecha almacenara la fecha del sistema
    
            Dim importe As Integer
    
            'importe guardara el total del arqueo
    
            fecha = Now.Date.ToShortDateString
            'convertimos la fecha enn un formato corto dd/mm/aaaa
    
            Dim con As New SqlConnection("Data Source=MARTIN-PC;Initial Catalog=BASEDATOSCOMERCIO;Integrated Security=true") 'creamos la consulta
    
            Dim com As New SqlCommand("select sum(Total) from CierreCaja where fecha ='" & fecha & "‘", con)
    
            Try
    
                con.Open()
    
                importe = CInt(com.ExecuteScalar()) 'asignamos el valor del importe
    
                con.Close()
    
            Catch ex As Exception
    
                MsgBox("Ocurrio un error")
    
            End Try
    
            MsgBox("" & importe) ' mostramos el importe
    
        End Sub

    Saludos
    jueves, 10 de noviembre de 2016 20:11

Respuestas

  • Hola Pedro9089,

    El bloque Catch es el encargado de capturar algún error producido en el bloque Try, pero no sabes que error se produce ya que solo muestras un mensaje personalizado y no el error real.

    Otra observación, si declaras una variable de fecha de tipo Date, porqué le asignas como valor un string ? La función ToShortDateString() devuelve una fecha en formato corto pero en tipo cadena (texto).

    Recomendaría agregar la función ISNULL(..) en la query, y el uso de parámetros.

    - Asumo que tu campo fecha en la base de datos es Date.

    Private Sub CerrarCajaToolStripMenuItem_Click(ByVal sender As .............
    
            Dim fecha As Date = Now.Date
            Dim importe As Double = 0
    
            Try
                Using con As New SqlConnection("MiCadenaConexion")
                    con.Open()
    
                    Dim query = "Select isnull(sum(Total),0) from CierreCaja where fecha = @fecha"
    
                    Dim cmd As New SqlCommand(query, con)
                    cmd.Parameters.AddWithValue("@fecha", fecha)
    
                    importe = CDbl(cmd.ExecuteScalar())
    
                    MessageBox.Show(String.Format("El importe es {0:N2}", importe))
                End Using
            Catch ex As Exception
                MessageBox.Show("Se produjo un error : " & ex.Message)
            End Try
    
        End Sub

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta Federico32113 sábado, 12 de noviembre de 2016 0:02
    viernes, 11 de noviembre de 2016 4:25