为什么RowFilter不能在c#中正常工作?
本文关键字:工作 常工作 不能 RowFilter 为什么 | 更新日期: 2023-09-27 18:15:47
我使用下面两种类型的代码从数据表中过滤记录。但只有一个在工作,另一个没有。
var filter = "FLD_PARENT_ID = " + Pack["FLD_ID"] + " AND FLD_TYPE=1";
DataView dv = ds_pack.Tables[0].DefaultView;
dv.RowFilter = filter ; //This is filtering a row
DataRow[] SRows = ds_pack.Tables[0].Select(filter); //But this type not return a row
我只需要DataRow数组
为两个方法使用相同的筛选值。请帮我解决这个问题
try this
var filter = "[FLD_PARENT_ID] = " + Pack["FLD_ID"] + " AND [FLD_TYPE]=1";
试试这段代码。
DataRow[] drs = ds_pack.Tables[0].Select("FLD_PARENT_ID = " + Pack["FLD_ID"].ToString() + " AND FLD_TYPE=1");
或
DataTable dtpacks = ds_pack.Tables[0];
var filter = "FLD_PARENT_ID = " + Pack["FLD_ID"].ToString() + " AND FLD_TYPE=1";
DataRow[] drs = dtpacks.Select(filter);
不是关于过滤器,而是Linq替代
var SRows = ds_pack.Tables[0].Select()
.Where(dr => dr["FLD_PARENT_ID"].ToString()== Pack["FLD_ID"]
&& dr["FLD_TYPE"].ToString()=="1")
当您对DataView的RowFilter属性应用过滤器时,您将获得过滤的结果,并且它也将反映到原始数据表中。更多信息在这里
因为需要DataRow Array,所以应该使用DataTable。选择方法。