如果声明不起作用?

时间:2012-12-23 21:30:49

标签: asp.net vb.net

它始终与else一起使用,即使txtUserName.Text =“Adm_A” 那是为什么?

If txtUserName.Text Like "Adm_?" Then
            Response.Redirect("AdminLoggedIn.aspx")
        Else
            Response.Redirect("LoggedIn.aspx")
        End If

5 个答案:

答案 0 :(得分:1)

用于测试问题的简单控制台应用程序

Sub Main
    Dim test = "Adm_AA"
    CheckLike(test)
    test = "Adm_A"
    CheckLike(test)
    test = "Adm_A "   ' a space after the A'
    CheckLike(test)
End Sub

Sub CheckLike(ByVal toCheck as string)

    If toCheck Like "Adm_?" Then
        Console.WriteLine("Matched")
    Else
        Console.WriteLine("Not Matched")
    End If
End Sub

结果:

Not Matched
Matched
Not Matched

所以你的琴弦中有些东西不像你认为的那样。 使用调试器并验证if语句及其参数。 还要注意运行webapp的服务器的区域设置和使用的选项比较

答案 1 :(得分:0)

试试这个:

If txtUserName.Text.Trim() Like "Adm_?" Then

答案 2 :(得分:0)

我认为这是因为问号是模式运算符。请检查http://msdn.microsoft.com/en-us/library/swf8kaxw(v=vs.71).aspx

您是否尝试过使用包含而不是像?

答案 3 :(得分:0)

你可以试试吗

如果txtUserName.Text.Trim()喜欢“Adm?”然后

答案 4 :(得分:0)

如何检查它是否以“Adm_”字符串开头:

If txtUserName.Text.StartsWith("Adm_") Then
        Response.Redirect("AdminLoggedIn.aspx")
    Else
        Response.Redirect("LoggedIn.aspx")
    End If