0

こんにちは、私には解決できない非常に奇妙なバグです。フォームロードに while ループがあり、次のようになります。

While loginOK = False And pstop = False
        LoginForm1.ShowDialog()
        If NewReg = True Then
            While RegErfolgreich = False
                Registrierung.ShowDialog()

                Dim con As New SqlConnection(My.Settings.SLXADRIUMDEVConnectionString)
                con.Open()

                Dim cmd = New SqlCommand("Insert Into sysdba.PL_Userverwaltung        (Benutzername, Passwort, [E-Mail-Adresse], Profil_OK) Values('" & RegBenutzername & "', '" & RegPassword & "', '" & RegEMailAdresse & "', 'f')", con)

                If cmd.ExecuteNonQuery() = 1 Then
                    My.Settings.Benutzername = RegBenutzername
                    My.Settings.Passwort = RegPassword
                    My.Settings.Save()
                    Me.Close()
                    RegErfolgreich = True
                Else
                    MsgBox("Es ist ein Fehler aufgetreten.")
                End If

            End While
        Else
            NewReg = False
        End If

    End While

問題は、loginform1 を閉じた後、ループに戻り、再びループを開始すると、loginform1 を開いてすぐに閉じることです。while ループで再びループします。

つまり、loginform1 を表示し、1 ミリ秒後に閉じる無限ループがあります。言及すべきことの 1 つは、私の友人が私のプロジェクトを古い vs スタジオ バージョンで開いたのに、この謎のバグが発生しないということです??

応援よろしくお願いします

編集:

ここにloginform1コードがあります

Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click

    If UsernameTextBox.Text <> "" And PasswordTextBox.Text <> "" Then
        Startseite.LoginUsername = UsernameTextBox.Text
        Startseite.LoginPassword = PasswordTextBox.Text
        Startseite.loginOK = True
        Me.Close()
    Else
        MsgBox("Bitte Benutzername und Passwort eingeben!")
    End If

End Sub

Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel.Click
    Startseite.pstop = True
    Me.Close()
End Sub

Private Sub LoginForm1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    If My.Settings.Benutzername <> "" And My.Settings.Passwort <> "" Then
        'MsgBox(My.Settings.Benutzername & "  " & My.Settings.Passwort)
        UsernameTextBox.Text = My.Settings.Benutzername
        PasswordTextBox.Text = My.Settings.Passwort
    End If
End Sub

Private Sub lblNeuRegistrieren_Click(sender As Object, e As EventArgs) Handles lblNeuRegistrieren.Click
    Startseite.NewReg = True
    Me.Close()
End Sub
4

2 に答える 2

0

メッセージボックスでループを終了してみてください

If cmd.ExecuteNonQuery() = 1 Then
    My.Settings.Benutzername = RegBenutzername
    My.Settings.Passwort = RegPassword
    My.Settings.Save()
    Me.Close()
    RegErfolgreich = True
Else
    MsgBox("Es ist ein Fehler aufgetreten.")
    Exit While
End If
于 2014-04-10T07:59:39.680 に答える