2012-10-02 158 views
0

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

但我不能一一列举出来。

回答

2

您必须使用第二个参数fldPris来编写LIKE谓词。 SQL语句应该是这样的:

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

相反的:

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

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

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

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

+0

嗯..没有想到这一点。但非常感谢你!它的工作:) –

+0

感谢您的确认。我认为你需要等待15分钟才能接受答案。欢迎来到StackOverflow。 – RichardTheKiwi

0

我想你的意思

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

这是相同的关键字