如何通过click事件中my label.text的值过滤我的datagridview?该值来自我的linq查询:
dataSet.Tables[0].AsEnumerable().Where(c => c.Field<int>("ageColumn") > 3 &&
c.Field<int>("ageColumn") < 5).Count();
我们只是说上面的查询给了我12(label.text = 12),现在当我点击“12”时,我希望我的datagridview只显示满足上述查询的那12行。
答案 0 :(得分:1)
你需要它是动态的吗?也许将查询本身存储为标签的Tag属性中的lambda:
Predicate<DataColumn> clause = c => c.Field<int>("ageColumn") > 3
&& c.Field<int>("ageColumn") < 5;
label1.Tag = clause;
...然后在点击标签时重新评估您的查询:
var clause = (sender as Label).Tag as Predicate<DataColumn>;
myDataSource = dataSet.Tables[0].AsEnumerable().Where(clause);
我不知道这是否有用,但至少它会让你“将”where子句“附加”给各种标签。
我还建议您查看Bindable LINQ,以便查询结果可以绑定。很酷的东西。
答案 1 :(得分:0)
现在我不使用LINQ,但逻辑会建议表达式
返回的内容dataSet.Tables[0].AsEnumerable().Where(c => c.Field<int>("ageColumn") > 3 &&
c.Field<int>("ageColumn") < 5)
包含您寻找的数据?那里没有可以枚举数据的属性吗?