2017-11-21 13 views
-1

Warnung BC42104: Die Variable 'pass' wird verwendet, bevor ihr ein Wert zugewiesen wurde. Eine NULL-Referenzausnahme könnte zur Laufzeit auftreten.BC42104 Fehlercode Wie kann ich diesen Fehler beheben?

Dies ist mein Code:

Private Sub btnLogin_Click(sender As Object, e As EventArgs) Handles btnLogin.Click 
    Dim uname As String = "" 
    Dim pword As String 
    Dim username As String = "" 
    Dim pass As String 
    If TextBox1.Text = "" Or TextBox2.Text = "" Then 
     MsgBox("Please fill the info") 
    Else 
     uname = TextBox1.Text 
     pword = TextBox2.Text 
     Dim query As String = "Select Password From Register where Username= '" & uname & "';" 
     Dim dbsource As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Gui\Documents\Database4.accdb" 
     Dim conn = New OleDbConnection(dbsource) 
     Dim cmd As New OleDbCommand(query, conn) 
     conn.Open() 
     Try 
      pass = cmd.ExecuteScalar().ToString 
     Catch ex As Exception 
      MsgBox("Username does not exit") 
     End Try 
     If (pword = pass) Then 
      MsgBox("Login success") 
      Reg.Show() 
      If Reg.Visible Then 
       Me.Hide() 
      End If 

     Else 
      MsgBox("login Failed") 
      TextBox1.Clear() 
      TextBox2.Clear() 
     End If 
    End If 
End Sub 
+0

Bitte verwenden Sie Ihre bevorzugte Suchmaschine und geben Sie die Fehlernummer ein. Sie werden tausende Links finden, die das Problem erklären. Viele von ihnen sind Fragen und Antworten auf derselben Website. – Steve

+0

habe ich schon, aber die meisten von ihnen sind zu kompliziert zu verstehen, ich bin neu mit der Programmierung und ich möchte mehr lernen. aber ich sehe diesen Fehler immer noch. –

+0

Lassen Sie uns versuchen, die Fehlermeldung erneut zu lesen: _Die Variable 'inst' wird verwendet, bevor ihr ein Wert zugewiesen wurde. Die Variable _inst_ ist nirgendwo in Ihrem Code oben. Die Fehlermeldung bezieht sich also nicht auf dieses Snippet. Suchen Sie besser nach Ihrem Code, wo Sie diese Variable namens _inst_ verwenden und diesen Code hier hinzufügen. – Steve

Antwort

-1

Da der Fehler sagen wird, Sie sind nicht die Variable Pass und unter einer Bedingung initialisiert wird, können Sie mit der Verwendung es am Ende.

Um genau zu sein, wenn die Steuer landet in dem ‚Fang‘ Block, die Variable ‚Pass‘ keine Werte haben, was bedeutet, dass es möglich ist, dass If (pword = pass) Anweisung ohne diese Variable alle Werte mit Erreichen .

Um den Fehler zu beheben, weisen Sie der Variablen zum Zeitpunkt der Initialisierung einfach einen Nullwert oder eine leere Zeichenfolge zu. Verwenden Sie zum Beispiel die folgende Anweisung:

Dim pass As String = ""; 
Verwandte Themen