1

5つのDB列を検索し、特定の検索のすべての結果を返すテキストボックスを作成しようとしています。「赤」は次のように返されます: 赤のボール、赤のウィリアムズなど。検索用の私のコード例。

ありがとう。

    ItemMasterDataContext db = new ItemMasterDataContext();

    string s = txtSearch.Text.Trim();
    var q = from p in db.ITMSTs
            where p.IMITD1.Contains(s) ||
             p.IMITD2.Contains(s) ||
             p.IMMFNO.Contains(s) ||
             p.IMITNO.Contains(s) ||
             p.IMVNNO.Contains(s)
            select p;

    lv.DataSource = q;
    lv.DataBind();
4

3 に答える 3

1

あなたの例の「q」はIQueryable<ITMST>. WebControl の Datasource プロパティがそれをどうするかを知っているとは思いません。その行を次のように書いてみてください:

 lv.DataSource = q.ToList();
于 2008-12-08T17:08:11.313 に答える
0

あなたはこのようなことをすることができます(構文はオフかもしれません)

using(var db = new ItemMasterDataContext())
{
    var s = txtSearch.Text.Trim();
    var result = from p in db.ITMSTs select p;

    if( result.Any(p=>p.IMITD1.Contains(s))
         lv.DataSource = result.Where(p=>p.IMITD1.Contains(s))
    else if ( result.Any(p=>p.IMITD2.Contains(s))
        lv.DataSource = result.Where(p=>p.IMITD1.Contains(s))

    lv.DataBind();
}

または、MSDNのこのリンクまたはこのリンクを使用することもできます。

ハッピーコーディング!!

于 2008-12-10T19:44:33.743 に答える
0

あなたが持っているのは、一般的に人々がlinqを使って行うことです。より複雑にしてデータベース ワイルド カードを使用したい場合は、System.Data.Linq の SqlMethods クラスを見てください。

@ James Curran DataSource プロパティ q を割り当てることができ、正常に動作します。唯一の違いは、クエリが実行されるときです。

于 2008-12-10T19:05:23.213 に答える