2
在我的程序中,我循環遍歷excel文件中的記錄來創建數據表。然後我需要做一些額外的數據維護,這是我在第一個循環中無法做到的。通過數據表循環時出錯
我想弄清楚最好的方式來循環通過現有的數據表刪除重複值的行同時保留其他人。
在我的示例表上,我有三列。對於每個公司代碼,我需要刪除重複的BillingItems並保留最高的FeeAmount。因此,對於CompanyCode 1234,我們需要刪除第一行和第二行,並保留第四行。
這些值並不總是按照相同的順序排列。
+-------------+-----------+-------------+
| CompanyCode | FeeAmount | BillingItem |
+-------------+-----------+-------------+
| 1234 | 10 | A |
| 1234 | 10 | A |
| 1234 | 15 | B |
| 1234 | 20 | A |
| 9876 | 10 | A |
| 9876 | 20 | B |
| 9876 | 30 | A |
| 9876 | 30 | A |
+-------------+-----------+-------------+
當我進入循環時,收到錯誤:「集合被修改;枚舉操作可能不會執行。」以下是我的循環代碼。
For Each loRow In dt.Rows
Dim liDupeCount As Integer = 0
liCompanyCode = loRow(0)
ldFeeAmount = loRow(1)
lsBillingItem = loRow(2)
Dim dupeFeeAmounts() As DataRow = dt.Select("CompanyCode = '" & liCompanyCode & "' and FeeAmount = '" & ldFeeAmount & "' and BillingItem = '" & lsBillingItem.Replace("'", "''") & "'")
For Each row As DataRow In dupeFeeAmounts
liDupeCount += 1
Next
If liDupeCount > 1 Then
dt.Rows(liRowCount).Delete()
End If
liRowCount += 1
Next
向後循環如果你修改你正在迭代的東西 – Plutonix 2014-10-28 20:20:38