2

以下のコードを検討してください。

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 として 1 を返します。

4

1 に答える 1

4

プロパティを介して元のDataViewDataTable を参照しTableます。ただし、同じデータは共有されません。にはDataTableフィルタが適用されていない元のデータが含まれますが、 にはフィルタが適用されDataViewた後のレコードのみが含まれます。

次の方法で正しいカウントを取得できますDataView.Count

int deletedLOVcount = deletedLOV.Count;

MSDN:

RowFilter および RowStateFilter が適用された後の DataView 内のレコード数を取得します。

于 2012-12-04T08:10:29.963 に答える