Cita:
Iniciado por Malenko
En todo caso? Pero si te lo ha resuelto! Obviamente el código que te puso no compilaba porque puso el pseudocódigo, aunque te puso toda la sentencia en SQL. Vamos que solo tenias que poner las llamadas a las funciones de acceso a base de datos.
Es tal como dice Malenko, no te puse el código
He mirado un poco tu código y te cuento un cambio que haría, aunque tu manera esta bien
Aqui estas recogiendo datos que no usas, todos los campos de la tabla Usuario.
Código ASP:
Ver originalDim consulta As New SqlCommand("select * from Usuarios WHERE userUsuario ='" & usuario & "' AND userContraseña ='" & contraseña & "' AND userEmpresa ='" & empresa & "'", myConn)
Y yo haría esto
Código ASP:
Ver originalDim consulta As New SqlCommand("IF((select count(*) from Usuarios WHERE userUsuario ='" & usuario & "' AND userContraseña ='" & contraseña & "' AND userEmpresa ='" & empresa & "'") >0) Select 'Correcto' Else Select 'Incorrecto', myConn)
(La select está sin probar)
Porque hago esto?
1.- No me traigo todos los datos (mejor para la bbdd):-p
2.- Si la consulta te arroja algún tipo de advertencia ó error, el objeto leerbd.Read (de esta realmente no estoy seguro, creeria que no.) por si las moscas.
3.- Y Valido a nivel de base de datos la condición.
Y cuando tu pones esto:
Código ASP:
Ver originalDim leerbd As SqlDataReader = consulta.ExecuteReader()
If leerbd.Read <> False Then
aceptado = True
Else
aceptado = False
End If
If aceptado = True Then
lblResult.Text = "Entra"
Else
lblResult.Text = "no entra"
End If
Recoges los datos así.
Código ASP:
Ver originalDim leerbd As SqlDataReader = consulta.ExecuteReader()
Dim validacion As String
while ( myReader.Read ( ) ) {
validacion = myReader.GetString(1)
}
myReader.Close ( );
myConn.Close ( );
If validacion == "Correcto" Then
lblResult.Text = "Entra"
//Response.Redirect("~/PaginaUsuario.aspx?User=Usuario")
Else
lblResult.Text = "no entra"
End If
Tu manera está bien, aunque era otra forma.