2017-02-07 4 views
0

Ich versuche, den Benutzer ihre Kontoinformationen bearbeiten, wenn ein Problem mit dem Konto (z. B. vergessenes Passwort) ist. In einem vorherigen Formular gibt der Benutzer seine E-Mail-Adresse ein, die verifiziert ist, und eine Variable wird verwendet, um die Datensatznummer zu markieren, und wird verwendet, um den Datensatz in den Textfeldern anzuzeigen. Wenn der Benutzer die Daten bearbeitet und auf Speichern klickt, funktioniert alles. Ich kann mich jedoch nicht mit den neuen Anmeldeinformationen anmelden, wenn ich zum Anmeldeformular gehe.Zuvor gespeicherte Datensatz kann nicht geändert werden

Design

Private Sub ChangeUserDetails_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    'TODO: This line of code loads data into the 'DataSet1.Users' table. You can move, or remove it, as needed. 
    Me.UsersTableAdapter.Fill(Me.DataSet1.Users) 
    AlterUsernameTB.Text = UsersBindingSource(validatedRecord)("Username").ToString 
    AlterPasswordTB.Text = UsersBindingSource(validatedRecord)("Password").ToString 
    AlterEmailTB.Text = UsersBindingSource(validatedRecord)("Email").ToString 
End Sub 

Private Sub SaveBtn_Click(sender As Object, e As EventArgs) Handles SaveBtn.Click 
    'Exception class will detect errors if any. 
    Try 
     Select Case MsgBox("Are you sure you want to alter your account details?", MsgBoxStyle.YesNo, "Are You Sure") 
      Case MsgBoxResult.Yes 
       If AlterUsernameTB.Text <> Nothing Then 
        If AlterPasswordTB.Text <> Nothing Then 
         If AlterReTypePasswordTB.Text <> Nothing Then 
          If AlterEmailTB.Text <> Nothing Then 
           If AlterReTypePasswordTB.Text = AlterPasswordTB.Text Then 
            'Exception class will detect errors if any. 
            Me.Validate() 
            Me.UsersBindingSource.EndEdit() 
            Me.TableAdapterManager.UpdateAll(Me.DataSet1) 
            MessageBox.Show("Your account has been altered. Please click on Back to Login.") 
           Else 
            MessageBox.Show("Passwords do not match!") 
           End If 
          Else 
           MessageBox.Show("Email textbox is empty!") 
          End If 
         Else 
          MessageBox.Show("Re-type password textbox is empty!") 
         End If 
        Else 
         MessageBox.Show("Password textbox is empty!") 
        End If 
       Else 
        MessageBox.Show("Username textbox is empty!") 
       End If 
      Case MsgBoxResult.No 
       'If 'No' is clicked nothing will happen. 
     End Select 
    Catch ex As Exception 
     MessageBox.Show(ex.Message) 
    End Try 
End Sub 

Was mache ich falsch? Jede Hilfe würde sehr geschätzt werden.

Prost

Antwort

0

Statt die Textfelder auf den Tisch zu binden und zu versuchen, sie zu retten (was das völlig falsch, was zu tun war) anstelle ich den Code unten in die If-Anweisung zuletzt eingefügt gerade vor dem Speichern. Es klappt!

DataSet1.Users(validatedRecord).Username = AlterUsernameTB.Text 
DataSet1.Users(validatedRecord).Password = AlterPasswordTB.Text 
DataSet1.Users(validatedRecord).Email = AlterEmailTB.Text 
Verwandte Themen