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

Inicio de sesion en vb 2010 usando sql2008

Estas en el tema de Inicio de sesion en vb 2010 usando sql2008 en el foro de .NET en Foros del Web. Saludos bueno el problema que tengo es que estoy haciendo un sistema para entregar solo que con base de datos ya lo habia hecho pero ...
  #1 (permalink)  
Antiguo 02/08/2011, 11:00
Avatar de tinlui  
Fecha de Ingreso: junio-2011
Ubicación: Saltillo, Mexico, Mexico
Mensajes: 20
Antigüedad: 8 años, 8 meses
Puntos: 0
Pregunta Inicio de sesion en vb 2010 usando sql2008

Saludos bueno el problema que tengo es que estoy haciendo un sistema para entregar solo que con base de datos ya lo habia hecho pero de una forma sencilla,
ahora lo que quiero es que se conecte a la base de datos,
cuando lo lea primero verifique el usuario si el usuario existe se va a ir a otra condicion que es el del password y dentro del password llamo el otro formulario que es menu
dejo codigo para que me digan en que me equivoco
lo que pasa es que a la hora de que lea el password en la lectura me da el daot de la caja de texto y no de la base de datos, y con el and en el comando si no esta bien cualquiera de los dos pues no entra a la primera condicion
como le puedo hacer para solo conectarme con el nombre de usuario a la bd y que de ahi pueda leer los dos datos y pueda ingresar al menu




Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnIngresar.Click
Dim cnx As SqlConnection = New SqlConnection("Data Source=YOP\SQLEXPRESS;Initial Catalog=otra;Integrated Security=True")
Dim cmd As New SqlCommand("select * from Usuarios where @Usuario=usuario and @password=Password ", cnx)'con estos dos si no cumple uno no entro igual ya sabe pero para que lo identifique
cmd.CommandType = CommandType.Text
cmd.Parameters.Add(New SqlParameter("@usuario", TxtUsuario.Text))
cmd.Parameters.Add(New SqlParameter("@Password", TxtContraseña.Text))
cnx.Open()
Dim leer As SqlDataReader = cmd.ExecuteReader
If leer.Read() = True Then ' si una de las anteririores no se cumple no entra
If TxtUsuario.Text = leer(0).ToString Then 'este campo si lo lee bien


If TxtContraseña.Text = leer(1).ToString Then 'este es el que me causa problemas

FrMenu.Show()
Me.Hide()

Else
MsgBox("no puedes ingresar contraseña incorrecta")

TxtUsuario.Clear()
TxtContraseña.Clear()
TxtUsuario.Focus()
End If

Else
MsgBox("no puedes ingresar usuario incorrecto")

TxtUsuario.Clear()
TxtContraseña.Clear()
TxtUsuario.Focus()
End If
End If
End Sub
  #2 (permalink)  
Antiguo 02/08/2011, 11:53
Avatar de HaverRamirez  
Fecha de Ingreso: junio-2011
Ubicación: Guatemala
Mensajes: 273
Antigüedad: 8 años, 7 meses
Puntos: 33
Respuesta: Inicio de sesion en vb 2010 usando sql2008

Dim cmd As New SqlCommand("select * from Usuarios where [email protected] and Password = @password ", cnx)
  #3 (permalink)  
Antiguo 02/08/2011, 12:07
Avatar de tinlui  
Fecha de Ingreso: junio-2011
Ubicación: Saltillo, Mexico, Mexico
Mensajes: 20
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Inicio de sesion en vb 2010 usando sql2008

gracias pero no me explico porque en el if anidado se va al else y no entra en el if???
  #4 (permalink)  
Antiguo 02/08/2011, 12:12
Avatar de HaverRamirez  
Fecha de Ingreso: junio-2011
Ubicación: Guatemala
Mensajes: 273
Antigüedad: 8 años, 7 meses
Puntos: 33
Respuesta: Inicio de sesion en vb 2010 usando sql2008

Primero estas validando que existan un campo, bueno si el campo existe es porque el usuario existe en la base y no necesitas verificar mas, ya hiciste la consulta a sql y si no existe en sql no devuelve valor, asi que si valida uno, o si tiene un valor, es porque existe no entiendo porque tienes que validar otra ves contra los textbox
  #5 (permalink)  
Antiguo 02/08/2011, 12:16
Avatar de tinlui  
Fecha de Ingreso: junio-2011
Ubicación: Saltillo, Mexico, Mexico
Mensajes: 20
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Inicio de sesion en vb 2010 usando sql2008

a ok entonces tendria que hacerlo en eventos publicos por separado y luego llamarlos dentro del boton verdad??
  #6 (permalink)  
Antiguo 02/08/2011, 12:26
Avatar de HaverRamirez  
Fecha de Ingreso: junio-2011
Ubicación: Guatemala
Mensajes: 273
Antigüedad: 8 años, 7 meses
Puntos: 33
Respuesta: Inicio de sesion en vb 2010 usando sql2008

Mira

asi leer un dataread
While leer.Read()
MSGBOX(String.Format("{0}, {1}", _
leer(0), leer(1)))
End While

ahora para verificar si tiene un valor le das
if leer.hasRows = true then
"EL USUARIO EXISTE
else
"ERROR"
END IF

estas lineas estan de mas, porque como te digo, si existe en la base, devolvera una fila, porque son equivalentes los campos del textbox con las columnas de la tabla de sql
si regreso un valor es porque son IGUALES entonces ya no necesitas hacer esto...
If TxtUsuario.Text = leer(0).ToString Then 'este campo si lo lee bien
If TxtContraseña.Text = leer(1).ToString Then 'este es el que me causa problemas
  #7 (permalink)  
Antiguo 02/08/2011, 12:47
Avatar de tinlui  
Fecha de Ingreso: junio-2011
Ubicación: Saltillo, Mexico, Mexico
Mensajes: 20
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Inicio de sesion en vb 2010 usando sql2008

lo que yo buscaba hacer era que al momento de tomar los datos poder decirle al usuario que campo fue el que puso mal
  #8 (permalink)  
Antiguo 02/08/2011, 12:50
Avatar de HaverRamirez  
Fecha de Ingreso: junio-2011
Ubicación: Guatemala
Mensajes: 273
Antigüedad: 8 años, 7 meses
Puntos: 33
Respuesta: Inicio de sesion en vb 2010 usando sql2008

Pero, de ser asi tu query esta mal, porque estas haciendo que traiga los valores que SEAN IGUALES A USUARIO Y PASSWORD, no que traiga primero el usuario y despues el password, pero siempre es recomendable poner un mensaje de combinación usuario password incorrecta para evitar problemas...y vueltas de mas
  #9 (permalink)  
Antiguo 02/08/2011, 13:07
Avatar de tinlui  
Fecha de Ingreso: junio-2011
Ubicación: Saltillo, Mexico, Mexico
Mensajes: 20
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Inicio de sesion en vb 2010 usando sql2008

si tienes razon pero ya vez ideas locas que de repente se le ocurren a uno jeje me avente casi toda la noche con eso jejeje pero gracias

Etiquetas: coneccion, datosusuarios, iniciosesion, lectura, leerdatos, login, sql2008, usuariosvb, vb2010
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 11:16.