Change password login form not working

I am trying to create a change password form for users to change their passwords.
However, the following error is raised:
Object reference not set to an instance of an object.

The follow is the code attached to the update button

Dim connect As String = "Provider=Microsoft.Jet.OleDb.4.0;" & _
 "Data Source=\\IT\otusers.mdb"

        con.Open()
        str = "select * from login "
        com = New SqlCommand(str, con)
        Dim reader As SqlDataReader = com.ExecuteReader()
        While reader.Read()
            If OldPassword.Text = reader("Password").ToString() Then
                up = 1
            End If
        End While
        reader.Close()
        con.Close()
        If up = 1 Then
            con.Open()
            str = "UPDATE tblUsers SET Userpassword = '" + NewPassword.Text + "' WHERE username ='" + UserName.Text + "' "
            com = New SqlCommand(str, con)
            com.Parameters.Add(New SqlParameter("@Password", SqlDbType.VarChar, 50))
            com.Parameters("@Password").Value = NewPassword.Text
            com.ExecuteNonQuery()
            con.Close()
            Literal1.Text = "Password changed Successfully"
            Response.Redirect("MainMenu.aspx")
        Else
            Literal1.Text = "Please enter correct Current password"
        End If
    End Sub

Please assist
ernie_shahAsked:
Who is Participating?
 
CodeCruiserConnect With a Mentor Commented:
I suspect that following line is throwing the error

 If OldPassword.Text = reader("Password").ToString() Then

I would change your code

        con.Open()
        str = "select * from login "
        com = New SqlCommand(str, con)
        Dim reader As SqlDataReader = com.ExecuteReader()
        While reader.Read()
            If OldPassword.Text = reader("Password").ToString() Then
                up = 1
            End If
        End While
        reader.Close()
        con.Close()

Open in new window


to following


        con.Open()
        str = "select IsNull(Count(*), 0) from login Where UserName=@Username AND Password=@Password"
        com = New SqlCommand(str, con)
        com.Parameters.AddWithValue("@Username", Username.Text)
        com.Parameters.AddWithValue("@Password", OldPassword.Text
        up = com.ExecuteScalar()
        con.Close()

Open in new window

0
 
Jitendra PatilSr.Software EngineerCommented:
in which line of code you are getting this error?

please be advised that you need to have proper declaration of your variables.

hope this helps.
0
 
ernie_shahAuthor Commented:
The error is generated at con.open ()
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.