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

Loggin

Estas en el tema de Loggin en el foro de .NET en Foros del Web. Hola! Estoy usando Vs2010 y tengo una ventana de loggin cargada en sub main. Tengo un problema y es que aunque esten todo correcto, los ...
  #1 (permalink)  
Antiguo 29/07/2011, 12:49
 
Fecha de Ingreso: marzo-2011
Mensajes: 21
Antigüedad: 13 años, 9 meses
Puntos: 1
Loggin

Hola! Estoy usando Vs2010 y tengo una ventana de loggin cargada en sub main. Tengo un problema y es que aunque esten todo correcto, los datos da error 5. La base de datos es access 2000.
Aqui dejo el modulo:

Module Module1
Public sAppPath As String = Application.StartupPath.ToString
Public sBaseDatos As String = sAppPath & "\datos.mdb"
Public sConexion As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & sBaseDatos

Sub Main()
Dim flogin As New LoginForm1
If flogin.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
flogin.Close()
Application.Run(New principal)
End If
End Sub

End Module


Y aqui el loggin form:

Imports System.Data
Imports System.Data.OleDb

Public Class LoginForm1
Private veces As Integer = 0
Private Const NumeroIntentos As Integer = 3
Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
If Me.PasswordTextBox.Text <> "" And Me.UsernameTextBox.Text <> "" Then
Dim cn As New OleDbConnection(sConexion)
Dim estatus As Integer
' Permitir varios intentos
veces = veces + 1
'Comenzamos una transacción
Try
cn.Open()
' evitamos la inyección de código reemplazando las comillas simples
' por otro carácter
Dim sql As String = "Select estatus From usuarios Where " & _
" password = '" & Trim(Replace(Me.PasswordTextBox.Text, "'", "k")) & _
"' And usuario = '" & Trim(Replace(Me.UsernameTextBox.Text, "'", "k")) & "'"

'creamos un comando
Dim cmd As New OleDbCommand(sql, cn)
'leemos el valor y lo convertimos a entero
estatus = CInt(cmd.ExecuteScalar().ToString)
Catch ex As Exception
'mostramos el error
If Err.Number = 91 Then
MessageBox.Show("No existe ningún usuario registrado en el sistema con esos datos.")
Else
MessageBox.Show("error " & Err.Number.ToString & vbCrLf & ex.Message)
End If
Finally
'cerramos la conexion solo si esta abierta
If (cn.State And ConnectionState.Open) <> 0 Then
cn.Close()
End If
End Try


If estatus = 1 Then
Me.DialogResult = Windows.Forms.DialogResult.OK
Else
If veces < NumeroIntentos Then
Label1.Text = "Quedan " & (NumeroIntentos - veces) & " intentos restantes."
If (cn.State And ConnectionState.Open) <> 0 Then
cn.Close()
End If
Exit Sub
End If
Me.DialogResult = Windows.Forms.DialogResult.No
End If
Hide()
Else
MessageBox.Show("Introduce tus datos para acceder al sistema.", "Faltan Datos", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
' todavía puedes hacerlo de esta forma
'MsgBox("Ingresa tus datos completos.", MsgBoxStyle.Exclamation, "Faltan datos")
End If
End Sub

Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel.Click
Me.DialogResult = Windows.Forms.DialogResult.Cancel
Hide()
End Sub
End Class

Muchas gracias.
Un Saludo.


PD: He seguido el error con F8 y salta aqui: Catch ex As Exception
  #2 (permalink)  
Antiguo 29/07/2011, 13:17
Avatar de galletica12  
Fecha de Ingreso: mayo-2011
Ubicación: Tekax, Yucatán
Mensajes: 213
Antigüedad: 13 años, 7 meses
Puntos: 8
Respuesta: Loggin

En que numero de linea da el error...
  #3 (permalink)  
Antiguo 30/07/2011, 00:58
 
Fecha de Ingreso: marzo-2011
Mensajes: 21
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Loggin

'creamos un comando
Dim cmd As New OleDbCommand(sql, cn)
'leemos el valor y lo convertimos a entero
estatus = CInt(cmd.ExecuteScalar().ToString)
Catch ex As Exception
'mostramos el error
If Err.Number = 91 Then
MessageBox.Show("No existe ningún usuario registrado en el sistema con esos datos.")
Else

Un Saludo.
  #4 (permalink)  
Antiguo 01/08/2011, 02:39
 
Fecha de Ingreso: marzo-2011
Mensajes: 21
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Loggin

¿Hay alguien que me pueda ayudar?

Etiquetas: loggin, sql, vb
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 05:43.