Ich Versuche das ganze mit einer "Do Until"-Schleife zu lösen, aber wenn das Passwort falsch eingegeben wird hängt sich das Programm auf. Ich hab schon den Abschnitt im Galileo Openbook dazu gelesen, aber das hilft mir leider auch nicht.
Über das Copy und Paste erreiche ich, dass das Programm sich nicht beim ersten Buchstaben aufhängt. WENN man das richtige Passwort eingibt funktioniert es übrigends ^^
Anbei mein Code:
Public Class LoginForm1
'Dieses Form vergleicht die eingegebenen Userinformationen
'mit der Datenbank und überprüft, welche Rechte dem User
'zugewiesen werden
'Hier werden die globalen Variablen für die Connection angegeben
Private con As New OleDb.OleDbConnection
Private strCon As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data" & _
"Source=C:\Freibage\WatchGuard.mdb;" & "Jet OLEDB:database Password=xy;"
Private Sub OK_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles OK.Click
'Wird der Button "Okay" betätigt,
'wird die Routine LoginForm1 versteckt und
'daraufhin die Routine Form1 aufgerufen
PasswordTextBox.Copy()
TextBox1.Paste()
Me.Hide()
Form1.Show()
End Sub
Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Cancel.Click
'Wird der Button "Cancel" betätigt,
'wird das Programm beendet
Form1.Close()
ConForm.Close()
Me.Close()
End Sub
Private Sub LogoPictureBox_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles LogoPictureBox.Click
'Zeigt das Bild links neben dem Login an
End Sub
Private Sub LoginForm1_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load, OK.Enter
'Hier wird die Verbindung zur Datenbank hergestellt
Try
Dim DSLogin As New DataSet
con.ConnectionString = strCon
Dim oledbadapter As OleDb.OleDbDataAdapter
oledbadapter = New OleDb.OleDbDataAdapter("SELECT * FROM Benutzer", _
con)
con.Open()
oledbadapter.Fill(DSLogin, "Benutzer")
oledbadapter.FillSchema(DSLogin, SchemaType.Mapped)
Catch ex As Exception
MessageBox.Show(Me, "Fehler aufgetreten : " + ex.ToString)
Finally
If con IsNot Nothing Then
con.Close()
End If
End Try
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles TextBox1.TextChanged
Try
Dim DSPW As New DataSet
con.ConnectionString = strCon
Dim oledbadapter As OleDb.OleDbDataAdapter
oledbadapter = New OleDb.OleDbDataAdapter("SELECT Passwort FROM" & _
"Benutzer", con)
con.Open()
oledbadapter.Fill(DSPW, "PW")
oledbadapter.FillSchema(DSPW, SchemaType.Mapped)
Do Until PasswordTextBox.Text = DSPW.Tables("PW").Rows(0)( _
"Passwort").ToString()
Loop
Me.Hide()
Catch ex As Exception
MessageBox.Show(Me, "Fehler aufgetreten : " + ex.ToString)
Finally
If con IsNot Nothing Then
con.Close()
End If
End Try
End Sub
End Class |