Многократная проверка в текстовом поле vb.net - PullRequest
1 голос
/ 01 февраля 2012

Проблема, с которой я столкнулся, заключается в том, что после проверки, является ли поле пустым, я хочу, чтобы программа остановилась на этом, прямо сейчас он продолжает и проверяет пароль имени пользователя, даже если поле пустое и печатает неправильный пароль имени пользователя.Я действительно новичок в этом, поэтому, пожалуйста, извините за недостаток знаний

Private Sub ButtonOk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonOk.Click
    Try
        Dim con As New SqlConnection("Initial Catalog=stock;Data source=.;integrated security=true")
        Dim ds1 As New DataSet
        Dim da1 As New SqlDataAdapter("select * from login where Name='" & Trim(txtusername.Text) & "'and password='" & Trim(txtpassword.Text) & "'", con)


        If txtpassword.Text.Length = 0 Then
            MsgBox("Password or username feild left blank")



        End If


        If da1.Fill(ds1) Then
            adminmain.Show()
            Me.Close()
        Else

            MsgBox("Invalid Password or Username")

        End If

    Catch ex As Exception
        MsgBox(ex.Message)
    End Try

End Sub

Ответы [ 2 ]

0 голосов
/ 01 февраля 2012

Поместите свои проверки в верхнюю часть Sub и вызовите Exit Sub, как только будет обнаружена ошибка.

Private Sub ButtonOk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonOk.Click
    If txtpassword.Text.Length = 0 Then
        MsgBox("Password or username feild left blank")
        Exit Sub
    End If
    'Other validations here
    'Code to save changes here
End Sub

Кроме того, вы должны удалить это предложение Try..Catch.Если произошла непредвиденная ошибка, вы захотите узнать номер строки и трассировку стека ошибки.

0 голосов
/ 01 февраля 2012

Затем Возврат из функции.

If txtpassword.Text.Length = 0 Then
    MsgBox("Password or username feild left blank")
    Return
End If

Но за пределами Try/Catch, хотя это будет работать (finally-block будет выполнено перед оператором return). На самом деле проверка TextBox не обязательно должна быть внутри Try/Catch, так что imho сбивает с толку возвращение из Try / Catch.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...