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 を実行するサーバーのロケールと、使用する Option Compare にも注意してください。

于 2012-12-23T23:15:36.747 に答える
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 に答える
0

これは、疑問符がパターン演算子であるためだと思います。http://msdn.microsoft.com/en-us/library/swf8kaxw(v=vs.71).aspxを確認してください。

like の代わりに contains を使用してみましたか?

于 2012-12-23T21:38:07.947 に答える
0

これを試してもらえますか

If txtUserName.Text.Trim() のように「Adm?」それで

于 2012-12-23T21:52:05.447 に答える