1

嗨,我整晚都被困在这个问题上,并求助于我最好的朋友堆栈溢出

我试图在一页上的文本框中输入一个以上的单词,然后执行某种操作,允许程序将单词拆分为数组并在我的数据库表中搜索所有输入的单词,我知道我应该在某处实施 OR 语句,但它很难:s 任何帮助将不胜感激。这就是我到目前为止所拥有的

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;

我认为我在正确的轨道上,我只是不断出错。谢谢!

4

1 回答 1

2

试试下面

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

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

}
  • 如果您有多个项目,那么您需要OR在这些项目之间添加条件
  • 您需要在每个项目之前和之后有空格,否则当您使用最终 sql 时会出错

编辑:刚刚清理了一下。

于 2013-06-10T03:09:48.460 回答