Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
过滤器绑定源如何连接到linq查询_Linq_Filter_Bindingsource - Fatal编程技术网

过滤器绑定源如何连接到linq查询

过滤器绑定源如何连接到linq查询,linq,filter,bindingsource,Linq,Filter,Bindingsource,我有一个sql表“Activity”,其中包括.ID、.Activ\u Code、.Name、.Start、.End 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 这将显示“活动”表中的所有字段。 我已将筛选器属性更改为“Activ_Code='

我有一个sql表“Activity”,其中包括.ID、.Activ\u Code、.Name、.Start、.End

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
这将显示“活动”表中的所有字段。 我已将筛选器属性更改为“Activ_Code='3'”和“Activ_Code LIKE 3”,但它们都不起作用。

来自:

只有实现IBindingListView接口的基础列表支持筛选

数据源只是一个
IEnumerable
。您必须在LINQ查询本身中进行筛选。例如:

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

把你的滤镜放在点上。每次将数据源设置为新的筛选列表时,列表中的对象都不会受到影响,因为它们不会从数据库中重新获取。

关于:BS.Datasource=(Dbase.Activity中的x,其中x.Activ_Code==3选择x)我不能这样做,因为每次更改查询时,都会放弃基础列表中的更改。最后我需要保存更改。然后将完整列表保留在内存中,并在视图中显示一个从内存列表中筛选出来的列表。谢谢,这真的很有帮助。但现在我有另一个问题。从BS中删除记录不会影响Mainlist。我的意思是先调用BS.Removecurrent()然后调用BS.EndEdit(),Mainlist与删除前保持不变。