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

use*_*914 3 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;
Run Code Online (Sandbox Code Playgroud)

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

但即使没有删除记录,deletedLOVcount 返回值 1。当没有 proci_ID>1 的记录时,与 addedLOVcount 相同,它也返回计数为 1

Tim*_*ter 6

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

您可以通过以下方式获得正确的计数DataView.Count

int deletedLOVcount = deletedLOV.Count;
Run Code Online (Sandbox Code Playgroud)

微软软件定义网络:

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