title: Forgot Password Form Issues VB.net
body: <p>I am trying to create a forgot password screen for my application. I am using the tab control for the different pages. My current code is able to create a user but it is able to create duplicates (Which is an issue needed to be rectified) I then have an issue with the  forget password screen not working completely.</p>
  
  <p>My code is:</p>
  
  <pre><code>Imports System.Data.OleDb
  
  Public Class Form2
  Dim connection As New OleDb.OleDbConnection
  
  Dim dbProvider As String
  Dim dbSource As String
  Dim MyDocumentsFolder As String
  Dim TheDatabase As String
  Dim FullDatabasePath As String
  Dim ds As New DataSet
  Dim da As OleDb.OleDbDataAdapter
  Dim sql As String
  Dim DBTest1 As String
  Dim DBTestP1 As String
  Dim cmd As New OleDbCommand(sql, connection)
  Dim connStr As String
  Dim usernamevalid As Integer
  Dim passwordvalid As Integer
  
  Public Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click
      If User.Text.Length &lt; 4 Then
          usernamevalid = 0
      ElseIf User.Text.Length &gt; 4 Then
          usernamevalid = 1
      End If
      If Pass.Text.Length &lt; 5 Then
          passwordvalid = 0
      ElseIf Pass.Text.Length &gt; 5 Then
          passwordvalid = 1
      End If
      If usernamevalid = 0 Then
          MsgBox("Username Must Be At Least 5 Characters")
      End If
      If passwordvalid = 0 Then
          MsgBox("Password Must Be At Least 5 Characters")
      End If
      If passwordvalid And usernamevalid = 1 And Pass.Text = RePass.Text Then
          dbProvider = "Provider=Microsoft.ACE.OLEDB.12.0;"
          dbSource = "Data Source = C:\Users\Daniel\Documents\Robocopy.accdb"
          Dim connStr = dbProvider &amp; dbSource
  
          DBTest1 = User.Text
          DBTestP1 = Pass.Text
          sql = "INSERT INTO Robocopy(username,[password],sq,sqa) VALUES('" &amp; DBTest1 &amp; "','" &amp; DBTestP1 &amp; "','" &amp; SQREG.Text &amp; "', '" &amp; SQAREG.Text &amp; "')"
  
          Using connection = New OleDb.OleDbConnection(connStr)
              Using cmd = New OleDb.OleDbCommand(sql, connection)
                  connection.Open()
                  cmd.ExecuteNonQuery()
                  connection.Close()
                  MsgBox("User Created!")
                  'With cmd.Parameters
                  '.AddWithValue("usernamer", DBTest.Text)
                  '.AddWithValue("password", DBTestP.Text)
                  '.AddWithValue("email", txtsub.text)
                  '.AddWithValue("contactnum", txtau.text)
                  'End With
                  'cmd.ExecuteNonQuery()
              End Using
          End Using
      ElseIf Not Pass.Text = RePass.Text Then
          MsgBox("Passwords did not match")
      End If
  End Sub
  
  Private Sub Button2_Click_1(sender As Object, e As EventArgs) Handles Button2.Click
      Dim result = MessageBox.Show(" Are you sure you want to quit", "Are you sure?", MessageBoxButtons.YesNoCancel)
      Me.Close()
  End Sub
  
  Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
      If NewPass.Text = ReNewPass.Text Then
          Try
              connection.Open()
              cmd = New OleDbCommand("update robocopy set [password] = '" &amp; NewPass.Text &amp; "' where username = '" &amp; UserFGT.Text &amp; "'", connection)
              cmd.ExecuteNonQuery()
              MessageBox.Show("PASSWORD CHANGE SUCCESSFULLY")
              connection.Close()
          Catch ex As Exception
              MsgBox(ex.Message)
          End Try
      End If
  End Sub
  End Class
  </code></pre>
  
  <p>The exception it catches is The ConnectionString property has not been initialized</p>
  
  <p>Currently I changed my code to what I think you mean:</p>
  
  <p>Button4's code has been changed as such:</p>
  
  <pre><code>   Private Sub ResetPassword_Click(sender As Object, e As EventArgs) Handles ResetPassword.Click
      If NewPass.Text = ReNewPass.Text Then
          Using connection = New OleDb.OleDbConnection(connStr)
              Using cmd = New OleDb.OleDbCommand(sql, connection)
                  connection.Open()
                  cmd = New OleDbCommand("update robocopy set [password] = '" &amp; NewPass.Text &amp; "' where username = '" &amp; UserFGT.Text &amp; "'", connection)
                  cmd.ExecuteNonQuery()
                  MessageBox.Show("PASSWORD CHANGE SUCCESSFULLY")
                  connection.Close()
              End Using
          End Using
  
      End If
  End Sub
  </code></pre>
  
  <p>I now get the error for cmd = New OleDbCommand("update robocopy set [password] = '" &amp; NewPass.Text &amp; "' where username = '" &amp; UserFGT.Text &amp; "'", connection)
  I am getting the error for cmd where it says 'Read Only' Variable cannot be the target of assignment</p>