Foros del Web » Programando para Internet » ASPX (.net) »

No me reconoce una sentencia if mi reader!!!

Estas en el tema de No me reconoce una sentencia if mi reader!!! en el foro de ASPX (.net) en Foros del Web. Hola a todos!... Tengo un pequeño problema con el uso de un if, le mando decir en este que si un registro de la base ...
  #1 (permalink)  
Antiguo 12/07/2012, 09:56
Avatar de stuart_david3  
Fecha de Ingreso: agosto-2011
Mensajes: 215
Antigüedad: 12 años, 7 meses
Puntos: 1
Información No me reconoce una sentencia if mi reader!!!

Hola a todos!...

Tengo un pequeño problema con el uso de un if, le mando decir en este que si un registro de la base de datos es igual a un dato en específico me redireccione a una página, pero el problema ocurre en eso, me manda directamente a un else, es decir no se cumple la condición, pero en el else que les digo que me manda, yo le paso como parametro el registro que estoy comparando a un textbox y es exactamente el registro que estoy poniendo en el if el que me imprime en el textbox del else (espero no haber enredado), no entiendo por que no se mete a mi sentencia if.

Código ASP:
Ver original
  1. Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  2.         Dim Usuario = Request.QueryString("datos1")
  3.         Dim Contra = Request.QueryString("datos2")
  4.         Dim reader As SqlDataReader
  5.         Dim conn As SqlConnection = New SqlConnection("server=myhost;database=mydb;User ID=myuser;Password=mypass;Trusted_Connection=no")
  6.         Dim sql As String = "SELECT correo, usuario, pass FROM UsuariosReemplazos WHERE usuario='" & Usuario & "' AND pass='" & Contra & "'"
  7.         Dim dr As New SqlCommand(sql, conn)
  8.         conn.Open()
  9.         reader = dr.ExecuteReader()
  10.         If reader.Read() Then
  11.             Dim Para As String = CStr(reader("correo").ToString)
  12.  
  13.             If (Para = "[email protected]") Then
  14.                 Response.Redirect("ListaFunc15.aspx?datos=" + Para.ToString())
  15.  
  16.             ElseIf (Para = "[email protected]") Then
  17.                 Response.Redirect("ConfirmarFunc2.aspx?datos=" + Para.ToString())
  18.  
  19.             ElseIf (Para = "[email protected]") Then
  20.                 Response.Redirect("ConfirmarFunc25.aspx?datos=" + Para.ToString())
  21.  
  22.             ElseIf (Para = "[email protected]") Then
  23.                 Response.Redirect("ConfirmarFunc3.aspx?datos=" + Para.ToString())
  24.             End If
  25.         End If
  26.        
  27.         reader.Close()
  28.         conn.Close()
  29.     End Sub

Espero y me puedan ayudar, saludos xD...
  #2 (permalink)  
Antiguo 12/07/2012, 14:01
Avatar de cgonzalezm  
Fecha de Ingreso: junio-2012
Mensajes: 55
Antigüedad: 11 años, 10 meses
Puntos: 13
Respuesta: No me reconoce una sentencia if mi reader!!!

Eso pasa porque no debería ir un if, sino que un while

Código ASP:
Ver original
  1. reader = dr.ExecuteReader()
  2. While reader.Read()
  3.  
  4. Dim Para As String = CStr(reader("correo").ToString)
  5.  
  6.             If (Para = "[email protected]") Then
  7.                 Response.Redirect("ListaFunc15.aspx?datos=" + Para.ToString())
  8.  
  9.             ElseIf (Para = "[email protected]") Then
  10.                 Response.Redirect("ConfirmarFunc2.aspx?datos=" + Para.ToString())
  11.  
  12.             ElseIf (Para = "[email protected]") Then
  13.                 Response.Redirect("ConfirmarFunc25.aspx?datos=" + Para.ToString())
  14.  
  15.             ElseIf (Para = "[email protected]") Then
  16.                 Response.Redirect("ConfirmarFunc3.aspx?datos=" + Para.ToString())
  17.             End If
  18.  
  19. End While
  20. reader.Close()

Saludos

PD: Error de Capa 8, jajaja
  #3 (permalink)  
Antiguo 12/07/2012, 14:08
Avatar de stuart_david3  
Fecha de Ingreso: agosto-2011
Mensajes: 215
Antigüedad: 12 años, 7 meses
Puntos: 1
Información Respuesta: No me reconoce una sentencia if mi reader!!!

De hecho ya jaló: Lo único que hice fue hacer un asp.vb nuevo en el cual agregue como parametro el campo "funcionario_en_revision" y en ese lo compare, intenté con el while, pero no me funciono.

Código ASP:
Ver original
  1. Dim Para = Request.QueryString("datos")
  2. If Para = "[email protected]" Then
  3. Response.Redirect("ListaFunc15.aspx?datos=" + Para.ToString())
  4.  
  5. ElseIf (Para = "[email protected]") Then
  6. Response.Redirect("ListaFunc2.aspx?datos=" + Para.ToString())
  7.  
  8. ElseIf (Para = "[email protected]") Then
  9. Response.Redirect("ListaFunc25.aspx?datos=" + Para.ToString())
  10.  
  11. ElseIf (Para = "[email protected]") Then
  12. Response.Redirect("ListaFunc3.aspx?datos=" + Para.ToString())
  13. ElseIf (Para <> "[email protected]") Then
  14. Response.Redirect("ListaFunc1.aspx?datos=" + Para.ToString())
  15. End If

Sabes? Aún sigo con el detalle de la variable de session ahora no uso un gridview, si no una tabla que cree en el que por ultimo tengo una columna como link, aquí esta el código:

Código ASP:
Ver original
  1. Dim funcionario = Request.QueryString("datos")
  2. Dim conn As SqlConnection = New SqlConnection("server=(local);database=DBPRUEBA;Us er ID=sa;Password=administrador;Trusted_Connection=no ")
  3. Response.Write("<td><a href=ConfirmarFunc1.aspx>hola</a>" + Session("funcionario_en_revision") = CStr(reader("funcionario_en_revision")).ToString + "</td>")

El problema es que al poner la línea que me muestra la columna así como esta no se ve el link. Si la pongo de esta manera:

Código ASP:
Ver original
  1. Response.Write("<td><a href=ConfirmarFunc1.aspx>Click</a>" + Session(CStr(reader("funcionario_en_revision")).To String + "</td>"))

Si me lo muestra pero no manda nada a mi variable de session ...

Espero y se pueda hacer algo por que ya tengo algo de tiempo con el mismo detalle...

Mil gracias cgonzalezm...

Última edición por stuart_david3; 13/07/2012 a las 12:39
  #4 (permalink)  
Antiguo 13/07/2012, 12:39
Avatar de stuart_david3  
Fecha de Ingreso: agosto-2011
Mensajes: 215
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: No me reconoce una sentencia if mi reader!!!

Ok, creo que ya funciona la parte de enviar y recibir n_n... Pero ahí un detalle, como la lectura de registros la hago en un ciclo while, siempre me lee el último registro y por lo tanto me redirige a mi otra página con los datos de mi última fila ...

¿Cómo le hago para decirle que me lea solo los datos de la fila que seleccione?...

Aquí les dejo el código:

Envía:
Código ASP:
Ver original
  1. Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  2.         Dim funcionario = Request.QueryString("datos")
  3.         Dim reader As SqlDataReader
  4.         Dim conn As SqlConnection = New SqlConnection("server=(local);database=mydb;User ID=myuser;Password=mypass;Trusted_Connection=no")
  5.         Dim sql As String = "SELECT id, nombre, puestoant, funcionario_en_revision FROM Reemplazos3 WHERE funcionario_en_revision='" & funcionario & "'"
  6.         Dim dr As New SqlCommand(sql, conn)
  7.         conn.Open()
  8.         reader = dr.ExecuteReader()
  9.         Response.Write("<table border=1><tr><td>RPE</td>")
  10.         Response.Write("<td>NOMBRE</td>")
  11.         Response.Write("<td>PUESTO</td>")
  12.         Response.Write("<td>CORREO</td>")
  13.         Response.Write("<td>PROPUESTAS</td></tr>")
  14.         While reader.Read()
  15.             Dim Para = CStr(reader("funcionario_en_revision"))
  16.             'Aquí envio los datos pero solo me toma el ultimo registro en el link a la otra página
  17.             Session("funcionario_en_revision") = CStr(reader("id").ToString)
  18.             Response.Write("<tr><td>" + CStr(reader("id")).ToString + "</td>")
  19.             Response.Write("<td>" + CStr(reader("nombre")).ToString + "</td>")
  20.             Response.Write("<td>" + CStr(reader("puestoant")).ToString + "</td>")
  21.             Response.Write("<td>" + CStr(reader("funcionario_en_revision")).ToString + "</td>")
  22.             Response.Write("<td>")
  23.             Response.Write("<a href='ConfirmarFunc1.aspx'>Ver Contrato</a>")
  24.             Response.Write("</td>")
  25.             Response.Write("</tr>")
  26.         End While
  27.         Response.Write("</table>")
  28.         reader.Close()
  29.         conn.Close()
  30.  
  31.     End Sub

Recibe:

Código ASP:
Ver original
  1. Dim Answer As String
  2.         'Recibo y almaceno en "Answer"
  3.         Answer = CType(Session("funcionario_en_revision"), String)
  4.         TextBox1.Text = Answer
  5.         Dim sql As String = "SELECT id, control, rpe, nombre, fechaant, escolaridad, ingreso, numplazaant, puestoant, claveant, adscripant, goant, ndant, cecoant, salarioant, deant, aant, numplazaact, puestoact, claveact, adscripact, goact, ndact, cecoact, salarioact, deact, aact, motivado, funcionario_en_revision, status1, status15, status2, status25, status3 FROM Reemplazos3 WHERE id='" & Answer & "'"

Cómo le hago para que me cada link me lea el dato de cada fila ...

De antemano agradezco tu ayuda...
  #5 (permalink)  
Antiguo 16/07/2012, 12:07
Avatar de stuart_david3  
Fecha de Ingreso: agosto-2011
Mensajes: 215
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: No me reconoce una sentencia if mi reader!!!

Al final lo hice con un gridview así, al principio no me salía por que ponía una columan como tipo hiperlink cuando tenía que haber solo "habilitado la selección" en el mismo gridview y gracias a Dios funcionó n_n... Gracias por tu ayuda cgonzalezm n_n... Aquí el código, pos si le sirve a alguien:

Envía:

Código ASP:
Ver original
  1. Protected Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.SelectedIndexChanged
  2.         Session("sobres") = GridView1.SelectedRow().Cells(1).Text.ToString
  3.         Response.Redirect("Recibe.aspx")
  4.     End Sub

Recibe:

Código ASP:
Ver original
  1. Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  2.         Dim Answer As String
  3.         Answer = CType(Session("sobres"), String)
  4.         TextBox1.Text = Answer
  5.     End Sub

Etiquetas: reader, sql, aspx, ifelse, sql-server
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 03:50.