Passwortabfrage

JodoK

Grünschnabel
Hallo,

ich hab mal wieder ein Problem. Ich habe eine Access Tabelle Benutzer erstellt und diese in meinem Form in VB eingebunden.
Jetzt soll bei Button click geprüft werden, ob das Passwort aus der Textbox.text mit dem Passwort in der Tabelle übereinstimmt. Wenn ja, soll sich Form 2 öffnen, wenn nein eine MsgBox erscheinen.
Hier der Code:

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If BenutzerBindingSource("Passwort") = Passwort.Text Then
Form2.Show()
Else
MsgBox("Nicht berechtigt")
End If
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.BenutzerTableAdapter.Fill(Me.BenutzerDataSet.Benutzer)
End Sub
End Class


Leider bekomme ich aber immer folgende Fehlermeldung beim ausführen des Programms:

Invalid Cast Exception
Ungültige Konvertierung von der Zeichenfolge Benutzer in Typ Integer.

Kann mir jemand helfen?:confused:
 
Ist zwar VB6 aber hoffe es hilft dir etwas.

Code:
Private Sub Command1_Click()
If txtPassword.Text = "xxx" Then
frmnext.Show
Unload Me
Else 
End If
End Sub
 
Hilft mir nicht wirklich, denn ich wollte es unbedingt über die Access Tabelle lösen und nicht das Passwort im Script hinterlegen.
Trotzdem Danke
 
Was ist BenutzerBindingSource("Passwort") ?
Prüfe aufjedenfall mal den Rückgabewert, ist der Rückgabetyp vom Typ String?

Laut Fehlermeldung versucht du einen String (Passwort.Text) mit sonst irgendwas (BenutzerBindingSource) zu vergleichen.
 
If Me.BenutzerBindingSource("Passwort") = Passwort.Text Then

Das ist die Access Tabelle, wo das Passwort hinterlegt ist. Diese soll mit der Passwort.text Eingabe verglichen werden.
Oder hab ich da ein Denkfehler?
 
An welcher Stelle in dem Codeausschnitt tritt der Fehler auf? Haste das mal gedebuggt?

Sind die Datentypen korrekt? Eigentlich kann es hier nur am BenutzerBindingSource("Passwort") liegen. Bist du sicher, dass du an dieser Stelle "Passwort" (das ist ein String) übergeben darfst, letztlich wird jedoch ein Integer-Wert erwartet?

Wenn der Fehler erst zur Laufzeit auftritt und nicht schon beim Erstellen erwartet die Methode BenutzerBindingSource() wahrscheinlich einen Wert vom Typ Object (Jeder Datentyp erbt ja zunächst immer von Object), weshalb der Compiler diesen Fehler nicht erkennt.

Prüf das mal und gib uns dann Rückmeldung!
 
Also die Tabelle bzw das Feld Passwort ist als DataType System.String deklariert.:confused: Der Fehler tritt während der Laufzeit auf.
 
Zurück