自动完成使用sql"Like"查询,但返回每个结果

Sim*_*ely 0 c# sql sql-server json razor

我的代码:

var db = Database.Open("dbase");
var term = Request.Form["username"] + "%";
var sql = "SELECT * from Users where Username LIKE @0";
var result = db.Query(sql, term);
var data = result.Select(p => new{label = p.username});
Json.Write(data, Response.Output);
Run Code Online (Sandbox Code Playgroud)

形式:

<script type="text/javascript">
        $(function(){
            $('#username').autocomplete({source:'getProducts'});
        });
    </script>
    </head>
    <body>
        <form method="post">
            <label for="username">Enter Username: </label>
            <input type="text" name="username" id="username" />
        </form>
Run Code Online (Sandbox Code Playgroud)

问题:每次用户在文本框中键入字符时都会运行此过程.无论键入什么字符,都会返回数据库中的每个用户名.我假设问题出在我的SQL查询中?

谁能帮我这个 ?

mre*_*ros 6

您可能希望确保request.Form ["username"]不为空,并且您并不总是发送LIKE'%'

  • 这当然似乎是个问题.谢谢! (2认同)