2

即使 txtUserName.Text = "Adm_A" 它总是与 else 一起使用,这是为什么呢?

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

5 回答 5

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 的服务器的语言环境和使用的选项比较

于 2012-12-23T23:15:36.747 回答
0

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

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

于 2012-12-23T21:38:07.947 回答
0

你能试试这个吗

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

于 2012-12-23T21:52:05.447 回答
0

尝试这个:

If txtUserName.Text.Trim() Like "Adm_?" Then
于 2012-12-23T21:35:22.017 回答
0

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

If txtUserName.Text.StartsWith("Adm_") Then
        Response.Redirect("AdminLoggedIn.aspx")
    Else
        Response.Redirect("LoggedIn.aspx")
    End If
于 2012-12-24T00:28:45.040 回答