2014-03-27 76 views
0

我有一個SQL表「活動」,其中包括.ID,.Activ_Code,.name和。開始,.END過濾器綁定源的連接方式LINQ查詢

Dim BS as BindingSource 
Dim DGView as Datagridview 


BS.Datasource=(From x in Dbase.Activity select x) 
BS.Filter="Activ_Code=3" 
DGView.datasource=BS 

這表明從「活動」的所有字段表。 我將Filter屬性更改爲「Activ_Code ='3'」和「Activ_Code LIKE 3」,但它們都不起作用。

+0

怎麼樣: BS.Datasource =(從Dbase.Activity其中x.Activ_Code == 3選擇X X) –

回答

0

MSDN

實現了IBindingListView接口支持過濾只有基礎列表。

數據源只是一個IEnumerable。你必須在LINQ查詢本身進行篩選。例如:

Dim mainList = (From x in Dbase.Activity select x).ToList 
BS.Datasource=(From x in mainList.Where(...) select x) 

並將您的過濾器放在點。每次將數據源設置爲新的過濾列表時,對象都不會受到影響,因爲它們不會從數據庫重新獲取。

+0

我不能做到這一點,因爲每一次改變的查詢,將放棄在底層列表的變化。我需要最後保存更改。 – Farhad

+0

然後將完整列表保存在內存中,並在視圖中顯示一個過濾列表,來自內存列表。 –

+0

究竟如何? – Farhad