2016-09-19 3 views
-2

Mein Code funktionierte gut, bis ich Parameter hinzugefügt habe. Seitdem erhalte ich diesen Fehler:DataReader Fehler

An unhandled exception of type 'System.NullReferenceException' occurred in NewMonitoringSystem.exe

Additional information: Object reference not set to an instance of an object.

Ich brauche Hilfe, wie man diesen Fehler behebt. Hier ist mein Code: Fehler in Zeile 10 dieser Code

Private Sub btnLogin_Click(sender As Object, e As EventArgs) Handles btnLogin.Click 
    frmMainMenu.Height = 720 
    frmMainMenu.Width = 950 
    Dim numID As Integer = 2 
    cmd.Connection = cn 
    cn.Open() 
    cmd.CommandText = "SELECT ID, username, password FROM tblUsers WHERE username = @username and password = @password" 
    cmd.Parameters.Add(New SqlClient.SqlParameter("@username", SqlDbType.VarChar, 20)).Value = txtUsername.Text 
    cmd.Parameters.Add(New SqlClient.SqlParameter("@password", SqlDbType.VarChar, 20)).Value = txtPassword.Text 
    If dr.HasRows Then 
     dr.Read() 
     If dr("ID") = numID Then 
      Me.Hide() 
      frmMainMenu.lblAccessLevel.Text = "Admin" 
      frmMainMenu.Show() 
     Else 
      Me.Hide() 
      frmMainMenu.lblAccessLevel.Text = "User" 
      frmMainMenu.TSMOffertory.Enabled = False 
      frmMainMenu.TSMOffertory.Visible = False 
      frmMainMenu.Show() 
     End If 
    Else 
     MsgBox("Invalid Credentials", MsgBoxStyle.Exclamation, "Invalid LogIn") 
    End If 
    cn.Close() 
End Sub 
+0

auf welcher Zeile des Codes ist der Fehler in Ihrer Debugsitzung aufgetreten? – GuidoG

+1

Was ist dr und wo ist die Deklaration und Erstellung? – GuidoG

+0

@GuidoG dr wurde nach _Public Class MyForm_ deklariert ** Dim cmd als neuer SqlCommand ** ** Dim dr Als SqlDataReader ** –

Antwort

0
dr = cmd.ExecuteReader 

die Lösung gefunden. Ich habe diese Zeile nach den Parametern hinzugefügt.