首页 > 解决方案 > 试图检查用户是否存在于我的数据库中

问题描述

我正在尝试检查用户是否存在于我的 SQL Server 数据库中,但如果用户存在或不存在,我总是得到相同的响应(重定向到~/korisnik/Korisnikkp。有人可以帮助我吗?问题是编译器没有使用这个 @ 获取用户名值0. 你知道怎么解决吗?如果我用examle'nicolas55'对用户进行硬编码,它就可以工作。 谢谢

    if (IsPost)
{
    var Username = "";
    var Password = "";
    Username = Request.Form["Username"];
    Password = Request.Form["Password"];
    if (Username != "" && Password != "")
    {
        var db = Database.Open("Useri");
        var command = @"SELECT username FROM Users WHERE username = @Username"; //when I put here 'nikola55' it works
        var result = db.QueryValue(command, Username);


        if (result != null)
        {
            Response.Redirect("~/korisnik/Korisnikkp");
        }
        else
        {
            <script type="text/javascript">
                alert("No user in database");
            </script>
        }

表格代码:

<form method="post">
                        <!-- to error: add class "has-danger" -->

                        <label for="exampleInputEmail1">username</label>
                        <input type="text" value="@Username">
                        <label for="exampleInputPassword1">Password</label>
                        <a href="#" style="float:right;font-size:12px;">Forgot password?</a>
                        <input type="password" value="@Password">

                        <button type="submit" class="btn btn-primary btn-block">Sign in</button>

                        <div class="sign-up">
                            Don't have an account? <a href="/korisnik">Create One</a>
                        </div>
                    </form>

标签: c#sql-serverasp.net-mvc

解决方案


如果您查看文档:https ://docs.microsoft.com/en-us/dotnet/api/webmatrix.data.database.queryvalue?view=aspnet-webpages-3.2您会看到 Database.QueryValueExecutes a SQL query that returns a single scalar value as the result.

所以它总是会返回一些对象。它不应该为空。所以你必须检查那个对象的值而不是 QueryValue 的返回值


推荐阅读