0

所以这是我的问题:我有一个网站,我必须在上面搜索内容。这是我的sql语句:

public DataTable Search(string Keyword)
{
    return db.GetData("SELECT * FROM tblBehandlinger WHERE fldYdelse LIKE @1", 
                  "%" + Keyword + "%");
}

但正如您所见,它只会搜索表名“fldYdelse”。我工作得很好,但我的问题是它不会搜索两件事。这就是我想要的样子:

public DataTable Search(string Keyword)
{
    return db.GetData("SELECT * FROM tblBehandlinger WHERE fldYdelse LIKE 
                       @1 OR fldPris @2", "%" + Keyword + "%");
}

这是我的search.aspx网站后端:

string keyword = Request.QueryString["search"].ToString();

foreach (DataRow item in s.Search(keyword).Rows)
{
    //BLAH BLAH BLAH
}

但我不能一一列举。

4

3 回答 3

2

LIKE您还必须使用第二个参数编写谓词fldPris。您的 sql 语句应如下所示:

SELECT * 
FROM tblBehandlinger 
WHERE fldYdelse LIKE @1 
   OR fldPris   LIKE @2

代替:

SELECT * 
FROM tblBehandlinger 
WHERE fldYdelse LIKE @1 
   OR fldPris @2
于 2012-10-02T12:16:50.343 回答
0

在 C# 中重复一个参数(字符串)很便宜……你想使用一个参数两次吗?

return db.GetData("SELECT * FROM tblBehandlinger " +
                  "WHERE fldYdelse LIKE @1 OR fldPris LIKE @2",
                  "%" + Keyword + "%", "%" + Keyword + "%");

或者你真的错过了第二个LIKE?

于 2012-10-02T12:17:14.773 回答
0

我想你的意思是

return db.GetData("SELECT * FROM tblBehandlinger WHERE fldYdelse LIKE 
                   @1 OR fldPris LIKE @1", "%" + Keyword + "%");

是同一个关键词

于 2012-10-02T12:18:13.193 回答