В Visual Basic оператор равенства строк не работает

If (UsersTableAdapter.FillByUsername(Me.DatabaseDataSet1.users, username) <> 0) Then

    type = DatabaseDataSet1.users.First.UserType

    MsgBox(type)

    If type = "Staff" Then
        MsgBox("You are staff")
    ElseIf type = "Student" Then
        MsgBox("You are student")
    Else
        MsgBox("Something else")
    End If

End If

Мой код сначала захватывает пользователя UserType из базы данных. Затем он сравнивает значения type с Staff а также Student, Я добавил окно сообщения для вывода type и подтвердил type правильно извлекается из базы данных.

Почему не if возврате true в сравнении?

Я также пытался использовать .equals() а также .toString() функции, но до сих пор не повезло.

1 ответ

Решение

Я с @Steve о том, что является наиболее вероятной проблемой. Вы можете попробовать использовать ToLower() а также Trim(),

Обратите внимание на два случая, упомянутые Стивом (регистр и скрытые пробелы) в следующем коде:

    Dim Type = "staff    "

    MsgBox(Type)

    If Type.ToLower().Trim() = "Staff".ToLower() Then
        MsgBox("You are staff")
    ElseIf Type = "Student" Then
        MsgBox("You are student")
    Else
        MsgBox("Something else")
    End If
Другие вопросы по тегам