多字搜索SQL数据库,返回gridview中的结果

时间:2013-06-10 03:01:28

标签: c# asp.net sql

嗨,我已经被困了一整夜,并且已经转向我最好的朋友堆栈溢出

我试图在一个页面上的文本框中输入多个单词,然后执行某种操作,允许程序将单词拆分为数组并在数据库表中搜索输入的所有单词,i知道我应该在某个地方实施一个OR声明,但它很难:任何帮助都会受到赞赏。这就是我到目前为止所拥有的

public string[] ResultsQuery;
public int i;
public string criteria;


protected void Page_Load(object sender, EventArgs e)
{

    ResultsQuery = Request.QueryString["search"].Split(' ');




    foreach (string sWord in ResultsQuery)
    {

        criteria += "ItemName LIKE '%" + ResultsQuery[i] + "%'";

        i++;


    }


    sqlResults.SelectCommand = "SELECT ItemName, Price, Description FROM ITEM WHERE " + criteria;

我认为我走在正确的轨道上,我只是一直在犯错误。谢谢!

1 个答案:

答案 0 :(得分:2)

尝试以下

foreach (string sWord in ResultsQuery))
{
    if(!string.IsNullOrEmpty(criteria)
         criteria +="  OR ";

    criteria += " ItemName LIKE '%" + sWord  + "%' ";

}
  • 如果您有多个项目,则需要在这些
  • 之间添加OR条件
  • 每个项目之前和之后都需要空格,否则当你花费最后的sql时会出错

编辑:刚刚清理了一下。