如何使用 c# 中的 RowFilter 筛选对象中每个项目的数据表
本文关键字:项目 数据表 对象 何使用 中的 RowFilter 筛选 | 更新日期: 2024-10-25 05:43:22
我有一个数据表,我可以像这样过滤它。
DataView dv = new DataView(table);
dv.RowFilter = string.Format("[SAILING-DATE]='{0}'", "03/12/16");//step ONE
这将成功返回结果。
现在我有这样的对象
var myObject = returnPorts(one).Split('|');
此myObject
包括 5 个项目。 所以我想在DataTable
上面过滤myObject
中的所有项目.我不知道该怎么做。需要这样
dv.RowFilter = string.Format("[SAILING-PORT]='{0}'", "Should filter with all the items in the myObject at once");//step TWO
需要您的帮助。另一件事是我想同时执行第一步和第二步。也需要帮助
RowFilter 使用相当基本的语法,但允许您使用 IN
:
var parts = returnPorts(one).Split('|');
dv.RowFilter = string.Format("[SAILING-PORT] IN ('{0}')", String.Join("','", parts));
要将其与日期组合在一起,请将其添加到parts
或更简洁的格式:
var parts = returnPorts(one).Split('|');
dv.RowFilter = string.Format("[SAILING-PORT] IN ('{0}', '{1}')",
"03/12/16",
String.Join("','", parts));
dv.RowFilter = string.Format("[SAILING-PORT] in ('{0}')", string.Join(" ',' ", myObject ));
这会将数组中的所有值连接成单个字符串。这将允许您从数组中过滤所有值。
这是完整的答案。 @freedomn-m's
回答对我帮助很大,非常感谢。
对于第一部分(使用对象中的任意数量的项目进行过滤).thanx 到 @freedomn-m
var parts = returnPorts(one).Split('|');
dv.RowFilter = string.Format("[SAILING-PORT] IN ('{0}')", String.Join("','", parts));
对于第二部分 - 简明任意数量的条件
dv.RowFilter = string.Format("[SAILING-PORT] IN ('{0}') AND [CRUISE-ONLY]=('{1}') AND [SAILING-DATE]=('{2}')", String.Join("','", threee), "YES", "03/12/16");
谢谢大家,谁帮助了我。