DataReader错误

时间:2016-09-19 11:07:36

标签: sql sql-server sql-server-2008 visual-studio-2015

我的代码工作正常,直到我添加参数。从那以后我收到了这个错误:

  

未处理的类型' System.NullReferenceException'发生在NewMonitoringSystem.exe

     

附加信息:未将对象引用设置为对象的实例。

我需要有关如何修复此错误的帮助。 这是我的代码: 此代码的第10行出错

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

1 个答案:

答案 0 :(得分:0)

dr = cmd.ExecuteReader

找到解决方案。只需在参数后添加该行。