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

el while se me ejecuta 1 sola ves dentro de un for

Estas en el tema de el while se me ejecuta 1 sola ves dentro de un for en el foro de .NET en Foros del Web. Hola, tengo el siguiente prblema. tengo un while dentro de un for y el while se ejecuta solo una ves D: y no se porque. ...
  #1 (permalink)  
Antiguo 09/11/2009, 20:41
Avatar de gakutaru  
Fecha de Ingreso: agosto-2005
Ubicación: frente a mi NtbK
Mensajes: 239
Antigüedad: 18 años, 8 meses
Puntos: 6
Pregunta el while se me ejecuta 1 sola ves dentro de un for

Hola, tengo el siguiente prblema.
tengo un while dentro de un for y el while se ejecuta solo una ves D:
y no se porque.


Código:
 Sub RecuperarChecks(ByVal strNameSesion As String)
        'aqui recuperare los checks
        Dim strConReqkuperarCks As String
        Dim conRekuperarChecks As SqlConnection
        Dim strSelectCheks As String
        Dim comSelectCheks As SqlCommand
        Dim dtrCheks As SqlDataReader
        '        Dim strCheks As String
        Dim itmZona As ListItem
        
        
        If IsPostBack Then
            'variables de conexion
            Dim strConAdLicencia As String
            Dim conAdLicencia As SqlConnection
            Dim cmdSelect As SqlCommand
            Dim dtrTitles As SqlDataReader
            
            'conexion con la bd de zonas
            strConAdLicencia = System.Configuration.ConfigurationManager.AppSettings("conLicencia") 'para conectar co la bd
            conAdLicencia = New SqlConnection(strConAdLicencia) 'ago coneccion con la bd
            cmdSelect = New SqlCommand("Select * From Zona", conAdLicencia)
            
            'conxion con la bd de permisos
            strConReqkuperarCks = System.Configuration.ConfigurationManager.AppSettings("conSesion") 'para conectar co la bd
            conRekuperarChecks = New SqlConnection(strConReqkuperarCks) 'ago coneccion con la bd
            strSelectCheks = "Select idArray From Permisos Where idSesion = @usuario"
            comSelectCheks = New SqlCommand(strSelectCheks, conRekuperarChecks)
            comSelectCheks.Parameters.AddWithValue("@usuario", Session("strUsuario"))
            
            'conxiones abiertas
            conAdLicencia.Open()
            conRekuperarChecks.Open()
            dtrTitles = cmdSelect.ExecuteReader()
            chkListaZona.DataSource = dtrTitles
                   
            chkListaZona.DataTextField = "Zona" 'asigna el texto de la bd
            chkListaZona.DataValueField = "idZona" 'aigna el value de la bd
            chkListaZona.DataBind() 'muestra los chek box
            dtrCheks = comSelectCheks.ExecuteReader()

            For Each itmZona In chkListaZona.Items
                Response.Write(" <li> ")
                Response.Write(itmZona.Text)
                Response.Write(" ")
                Response.Write(itmZona.Value)
                Response.Write("</ br>")
               
                While dtrCheks.Read
                    Response.Write(" <li> ")
                    Response.Write(dtrCheks("idArray"))
                    Response.Write("</ br>")
                End While
         
            Next
           
            conRekuperarChecks.Close()
            dtrTitles.Close()
            conAdLicencia.Close()
            Label4.Text = "si entra al if"
        Else
            Label4.Text = "no entra al if"
        End If
    End Sub
el problema esta aqui:


For Each itmZona In chkListaZona.Items
Response.Write(" <li> ")
Response.Write(itmZona.Text)
Response.Write(" ")
Response.Write(itmZona.Value)
Response.Write("</ br>")

While dtrCheks.Read
Response.Write(" <li> ")
Response.Write(dtrCheks("idArray"))
Response.Write("</ br>")
End While

Next


el resultado de esto es :

rojo 2
2
3
azul 3
verde 4

y lo que debe mostrar es:

rojo 2
2
3
azul 3
2
3
verde 4
2
3

pero no entiendo orque no ocurre eso ._.


Pregunta para el mod: como se hace para que el tag del codigo quede en colores como el tag de php?
  #2 (permalink)  
Antiguo 10/11/2009, 03:45
 
Fecha de Ingreso: febrero-2008
Mensajes: 69
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: el while se me ejecuta 1 sola ves dentro de un for

No habria que inicializar dtrCheks dentro del bucle?
  #3 (permalink)  
Antiguo 10/11/2009, 06:14
Avatar de gakutaru  
Fecha de Ingreso: agosto-2005
Ubicación: frente a mi NtbK
Mensajes: 239
Antigüedad: 18 años, 8 meses
Puntos: 6
Respuesta: el while se me ejecuta 1 sola ves dentro de un for

nops, ocurre lo mismo. solo 1 ves.
pero lo resolvi xD
mmientras converse con mi almohada pense en 2 soluciones
la 1ra era meter el resultado del while en un arreglo y meter el array dentro de un ciclo en el for
y la 2da poner el for dentro del while
y funciono lo 2do xD
grx =)
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 16:56.