У меня есть для каждого цикла, написанного на Visual Basic, который пытается изменить таблицу, через которую выполняется итерация. Это вызывает изменение «» коллекции; операции перечисления не может выполнить»исключение.Как я могу переписать этот цикл Visual Basic.net, чтобы он работал?
Что frastrating о том, что я пытался сделать копии всех объектов, которые я использую и и удаляется только из копии, но исключение еще произошло.
Я знаю, что это связано с тем, что я использовал цикл For Each вместо цикла For или While, но я не мог переписать свой код и заставить его работать (я больше знаком с C#). Вот почему я решил попросить помощь здесь.
Это мой код. Как я могу переписать, чтобы иметь возможность удалить строку, что я хочу, чтобы удалить? Любая помощь и код будет очень признателен!
Dim drAcademicRecord, drSchool As DataRow
For Each drSchool In dsR.Tables("School").Rows
If drSchool("OrganizationName") = "NA" Then
For Each drAcademicRecord In dsR.Tables("AcademicRecord").Rows
If drAcademicRecord("AcademicRecord_Id") = drSchool("AcademicRecord_Id") Then
dsR.Tables("AcademicRecord").Rows.Remove(drAcademicRecord) '<-- This is the line causing my exception
End If
Next
End If
Next
vb.net заставляет меня съедать – JonH
Зачем вы перебираете несколько таблиц? Взгляните на DataRelations: http://msdn.microsoft.com/en-us/library/0k21zcyx%28v=vs.100%29.aspx –
Спасибо, я посмотрю на это. Я не писал оригинальный код, поэтому использовал то, что у меня было. – user1179071