0
我遇到了一個問題,即在循環中標記了幾行以刪除,但是當它到達循環中的某個點時,實際開始刪除行。DataTable.Delete()在接受更改之前刪除行
正如你可以看到我基本上做的是檢查行是否需要刪除,如果是的話,將它添加到新表中並刪除它。
問題是,這對於前60個ish行是有效的,然後所有的行突然間似乎實際上被刪除,並且它最終拋出一個包含該索引的行不存在的錯誤(在65)。
原始表格是具有70個記錄的名字,姓氏,電子郵件和公司的聯繫人列表。
我試圖削減了一半的名單,但隨後的問題開始在各地連續23
dtSelectCompany = dt_data.Clone
Dim s_company As String
Dim b_add As Boolean
Dim dtCompanies As Data.DataTable
For i = 0 To dt_data.Rows.Count - 1
b_add = False
s_company = dt_data.Rows(i).Item(columnsDictionary("company")).ToString
If s_company = "" Then : b_add = True
Else
dtCompanies = crm_functions.getCompaniesByName(s_company.Replace(" ", "%"))
If dtCompanies.Rows.Count > 1 Then : b_add = True
ElseIf dtCompanies.Rows.Count = 1 Then
dt_data.Rows(i).Item(columnsDictionary("company")) = dtCompanies.Rows(0).Item("id")
Else : b_add = True
End If
End If
If b_add Then
Dim temp_row As Data.DataRow = dtSelectCompany.NewRow
temp_row.ItemArray = dt_data.Rows(i).ItemArray.Clone()
temp_row.Item("fullName") = temp_row.Item(columnsDictionary("firstname")) & " " & temp_row.Item(columnsDictionary("lastname"))
dtSelectCompany.Rows.Add(temp_row)
dt_data.Rows(i).Delete()
End If
Next
嗨, 我試過這個,但仍然拋出錯誤。 –
我已經解決了在上面編輯數據表之前處理的問題,而不接受更改 - 我沒有意識到在添加行之後您需要接受更改。 –