asp.net 为什么RowFilter在C#中不能正常工作

9o685dep  于 2022-11-19  发布在  .NET
关注(0)|答案(4)|浏览(195)

我正在使用下面的两种类型的代码来过滤数据表中的记录。但是只有一种是工作的,另一种是不工作的。

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数组。
我在两个方法中使用了相同的过滤器值,请帮助我解决这个问题。

isr3a4wc

isr3a4wc1#

试试这个

var filter = "[FLD_PARENT_ID] = " + Pack["FLD_ID"] + " AND [FLD_TYPE]=1";
2vuwiymt

2vuwiymt2#

请尝试以下代码。

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);
mwecs4sa

mwecs4sa3#

不是关于滤波器,而是Linq替代

var SRows = ds_pack.Tables[0].Select()
                 .Where(dr => dr["FLD_PARENT_ID"].ToString()== Pack["FLD_ID"] 
                              && dr["FLD_TYPE"].ToString()=="1")
olqngx59

olqngx594#

当您将筛选器应用于DataView的RowFilter属性时,您将获得筛选结果,并且它也将反映到原始数据表中。更多信息here
当您需要DataRow Array时,应该使用DataTable.Select方法

相关问题