В 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