ASP.NET 응용 프로그램에 2 개의 데이터 테이블이 있습니다. 내가 일치하는 항목을 찾을 경우 둘 다하지만 내가 루프와, 정말 같은 외부 데이터 테이블에서 특정 행을 삭제 :이 dtFixedActs는 1 행을 포함하는 경우를 제외하고, 잘 작동과 일치하는 것입니다datatable + AcceptChanges에서 행 제거
For i As Integer = 0 To dtFixedActs.Count - 1
For j As Integer = 0 To dtTotals.Count - 1
If dtFixedActs.Rows(i).Item("Activity") = dtTotals.Rows(j).Item("Activity") Then
dtFixedActs.Rows(i).Delete()
i += 1
j += 1
End If
Next
dtFixedActs.AcceptChanges()
Next
다른 데이터 테이블에 있습니다. "위치 1에 행이 없습니다."오류가 발생합니다. 이것은 i + 1에서 다음 행으로 이동하려고하기 때문에 의미가 있습니다.이 경우에는 불가능합니다.
나는 dtFixedActs.AcceptChanges 명령을 1 차 루프 안팎으로 옮겨 보려고했지만 아무 소용이 없었습니다. 또한 i + = 1 행을 주석 처리했지만 "삭제 된 행 정보는 행을 통해 액세스 할 수 없습니다."라는 메시지가 나타납니다. 오류.
이 문제를 해결하는 방법을 모르겠습니다. dtFixedActs에 둘 이상의 행이 들어 있으면 문제가 발생하지 않습니다.
제안 사항?
감사합니다. Henry, 이미 시도했지만 "삭제 된 행 정보는 행을 통해 액세스 할 수 없습니다."라는 메시지가 나타납니다. 오류. –
두 번째 다음에 다시 테스트해야합니다. 삭제 한 행 수를 추적하는 또 다른 변수 x 일 수 있습니다. 당신은 dtFixedActs.Count - 1 루프 수 없습니다 dtFixedActs.Count - 1 - x 루프 수 있습니다. –
catch가 작동하지만 예외를 처리해야합니다. 또 다른 요점은 명백한 예외에 대한 코드를 열어 두지 말아야한다는 것입니다. –