Improve code efficiency

0

Is there any way to improve this code? So you do not make more than one query?

Comando = "Select * from TClientes, TContratosClubes, TAgentes where 
TContratosClubes.idcontrato = '" & idcontrato & "' and 
TContratosClubes.idCliente = TClientes.idCliente and TAgentes.idAgente = 
TContratosClubes.idAgente"

While oDataReader.Read()
    numCedula.Text = oDataReader("cedulaCliente")
    nombre.Text = oDataReader("nombreCliente")
    numCliente = oDataReader("idCliente")
    msExito.Text = "Registro encontrados exitosamente!"
    listaContratos.Items.Add(oDataReader("idContrato"))
    DropDownList1.Items.Add(oDataReader("idContrato"))
    numContrato.Text = oDataReader("idContrato")
    numCliente = oDataReader("idCliente")
    Serie.Text = oDataReader("serieContrato")
    Numero.Text = oDataReader("numeroContrato")
    Agentes = oDataReader("idAgente")
    sumaTotal = oDataReader("cuotasInicio")
    PrimerSorteo.Text = oDataReader("fechaPrimerSorteo")
    MontoCuotas.Text = oDataReader("montoCuotaContrato")
    If MontoCuotas.Text > 55 Then
        dolarColon.Text = "₡"
        dolarColon0.Text = "₡"
    Else
        dolarColon.Text = "$"
        dolarColon0.Text = "$"
    End If

    MontoUtilizar.Text = MontoCuotas.Text * 91
    Agente.Text = oDataReader("nombreAgente")
    apeAgente.Text = oDataReader("apellidosAgente")
End While
oDataReader.Close()
numCedula.Focus()
'-----------------------------------------------------------------------------------------------------------------------------


'-----------------------------------------------------------------------------------------------------------------------------
Total = "SELECT SUM(cantidadCuotas) AS suma  FROM TPagosCuotas where idContrato = '" & numContrato.Text & "'"
Dim tot As New SqlCommand(Total, cadena)
oDataReader = tot.ExecuteReader()
While oDataReader.Read
    cantidadCuotas.Text = oDataReader("suma")
    cantidadCuotas.Text = sumaTotal + cantidadCuotas.Text
End While
oDataReader.Close()
    
asked by Joel Lpz 117 09.08.2017 в 17:56
source

1 answer

0

If Sr, you can include the second query within the first using a subquery like this:

Comando = "Select * from TClientes, TContratosClubes, TAgentes, 
(
    SELECT SUM(cantidadCuotas) AS suma  FROM TPagosCuotas where idContrato = 
        '" & idcontrato & "'
) as suma 
where TContratosClubes.idcontrato = '" & idcontrato & "' 
    and TContratosClubes.idCliente = TClientes.idCliente 
    and TAgentes.idAgente = TContratosClubes.idAgente"
    
answered by 23.09.2017 / 03:39
source