当没有这样的行时,Dataview Table.Rows.Count返回1

时间:2012-12-04 08:08:10

标签: c# asp.net

考虑以下代码:

DataView deletedLOV = new DataView(tbltmp, "prociLOV_Deleted=1", "prociLOV_ID",
                                   DataViewRowState.CurrentRows);
DataView addedLOV = new DataView(tbltmp, "prociLOV_Id>1", "prociLOV_ID",
                                 DataViewRowState.CurrentRows);
int deletedLOVcount=deletedLOV.Table.Rows.Count;
int addedLOVcount=addedLOV.Table.Rows.Count;

删除记录时,prociLOV_Deleted设置为1。

但即使没有记录被删除,deletedLOVcount也会返回值1.当没有proci_ID> 1的记录时,也与addedLOVcount相同,它也返回count as1

1 个答案:

答案 0 :(得分:4)

DataView通过Table属性引用它的原始DataTable。但它不共享相同的数据。 DataTable包含没有应用过滤器的原始数据,而DataView仅包含应用过滤器后的记录。

您可以通过DataView.Count获得正确的点数:

int deletedLOVcount = deletedLOV.Count;

MSDN:

  

获取RowFilter和之后的DataView中的记录数   已应用RowStateFilter。