Visual Basicで記述されたFor Eachループが、反復処理中のテーブルを変更しようとしています。これによりコレクションが変更されました。列挙操作は「例外を実行しない場合があります。これについてfrastratingさこのVisual Basic.netループを再現して動作させるにはどうすればよいですか?
私は私が使用してのみコピーから削除されたすべてのオブジェクトのコピーを作成しようとしましたが、例外はまだ起こっていることである。
これはForループの代わりにFor Eachループを使用していることが原因であることがわかりましたが、私のコードを書き直して動作させることはできませんでした(私は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