SQL搜索问题

时间:2012-10-02 12:13:43

标签: c# asp.net sql-server database

所以这是我的问题:我有一个网站,我必须搜索它上面的东西。 这是我的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
}

但我不能列出来。

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

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

或者你真的错过了第二次喜欢?

答案 2 :(得分:0)

我认为你的意思是

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

这是相同的关键字