0

だからここに私の問題があります: 私はそこにあるものを検索しなければならないサイトを持っています. これは私のSQL文です:

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

しかし、ご覧のとおり、テーブル名 "fldYdelse" のみを検索します。私は正常に動作しますが、私の問題は、2 つのことを検索できないことです。これは私がどのようになりたいかです:

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

LIKE2 番目のパラメーターを使用して述語を記述する必要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# でパラメーター (文字列) を繰り返すのは安上がりです...単一のパラメーターを 2 回使用したかったですか?

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

それとも本当に2回目の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 に答える