2008-12-08 242 views
1

我想寫一個文本框,將搜索5個數據庫列,並將返回給定搜索的每個結果,例如。 「紅色」會返回:紅色球,紅色威廉姆斯等。人們嘗試過的任何例子或類似的東西。我的搜索示例代碼。LINQ查詢返回多個結果

謝謝。

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(); 
+0

那到底是什麼問題?你的代碼有什麼問題?你實際上沒有說過你的問題是什麼。 ;) – jalf 2008-12-08 16:58:33

+0

第二個問題:你有什麼問題? – 2008-12-08 20:13:40

回答

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(); 
} 

,或者你可能想用這個Link或本Link從MSDN。

快樂編碼!

1

您示例中的「q」將是IQueryable<ITMST>。我不認爲WebControl的Datasource屬性知道該怎麼做。嘗試編寫路線爲:

lv.DataSource = q.ToList(); 
0

你有什麼一般是什麼人會做使用LINQ。如果你想變得更復雜並且使用數據庫通配符,那麼看看System.Data.Linq中的SqlMethods類。

@ James Curran 您可以分配DataSource屬性q,它將正常工作。唯一不同的是查詢執行的時間。