none
Detectar si una consulta devuelve un resultado o no

    Pregunta

  • Estoy ejecutando esta consulta y en algunos casos me devolvera un resultado y en otros no pero no logro detectar cuando no tendré un resultado para ejecutar la instruccion correspondiente. Este es el codigo:

                        ConsultaSql = "Select Sum(Total_Gastos) as El_Total From Encabezado_Registro_Gastos Where " _
                        & "Fecha = '" & La_Fecha_del_Dia & "'"

                        Dim Tabla3 As New DataTable
                        Using Adaptador3 As New MySqlDataAdapter(ConsultaSql, Conexion_Base_Datos)

                            Alerta = IsDBNull(Adaptador3.Fill(Tabla3)) 'Using Adaptador

                            'sumo los totales de los gastos
                            If Alerta = True Then
                                Total3 = 0
                            Else
                                Total3 = Tabla3.Rows(0)("El_Total")
                            End If
                        End Using

    Ya he ejecutado la consulta en el WORKBENCH y me devuelve un resultado null pero con la variable booleana Alerta y con la funcion IsDBNull() al ejecutar el código en el programa la variable Alerta me la reporta como FALSE e ingresa a recoger el resultado lo que me provoca el error.

    Como puedo detectar si la consulta me devuelve un resultado o no?



    Cabe mencionar que también intenté con la opción de Dim u as Integer = Adaptador3.Fill(Tabla3) y si el valor de u es mayor que cero entonces pensaría que la consulta me devolvió un resultado y si es igual a cero entonces no pero como devuelve un campo Null entonces el resultado siempre es igual a uno.
    domingo, 22 de enero de 2017 21:59

Respuestas

  • Bueno a  veces uno intenta e intenta y no haya la solución a algún problema o sea se bloquea la mente, después de un rato de descanso volvi a retomar el problema y lo he solucionado de la siguiente manera por si acaso alguien tiene el mismo inconveniente aquí pongo mi solución.

    Declare la variable Resultado as object

      ConsultaSql = "Select Sum(Total_Gastos) as El_Total From Encabezado_Registro_Gastos Where " _
                        & "Fecha = '" & La_Fecha_del_Dia & "'"

     Dim Tabla As New DataTable
                        Using Adaptador As New MySqlDataAdapter(ConsultaSql, Conexion_Base_Datos)

                            Adaptador.Fill(Tabla) 'Using Adaptador1
                            Resultado = Tabla.Rows(0)("El_Total")
                            'sumo los totales cancelados en las hojas de trabajo
                            If IsDBNull(Resultado) Then
                                Total2 = 0
                            Else
                                Total2 = Tabla.Rows(0)("El_Total")
                            End If
                        End Using

    Y es así como detecto si me devuelve un campo null o un resultado numérico.

    • Marcado como respuesta Frank Jarquin domingo, 22 de enero de 2017 23:39
    domingo, 22 de enero de 2017 23:39