System.IndexOutOfRangeException:位置5に行がありません。
アプリケーションに次のコードブロックがあります。これは、データベースから同じ行を完全に削除せずに、グリッドビューから行を削除できるようにするためです。
問題は、特定の順序または3つ以上を選択すると、値を削除できるが、すべての値を削除できないことです。
これは私が遭遇したエラーです!
System.IndexOutOfRangeException:位置5に行がありません。
コメント付きキャッチ例外は、問題をわずかに解決します。
Dim strQuery As String = "SELECT UserId, staffNo, forename, surname FROM userProfilesTbl WHERE st_id=@st_id AND wa_id=@wa_id ORDER BY surname ASC "
Dim cmd As New SqlCommand(strQuery)
cmd.Parameters.AddWithValue("@st_id", myLblSt.Value().ToString)
cmd.Parameters.AddWithValue("@wa_id", myLblWa.Value().ToString)
Dim dt As DataTable = GetDataConn(cmd)
'Try
For Each dr In GridView1.Rows
Dim chkBox As CheckBox = dr.FindControl("RowLevelCheckBox")
If chkBox.Checked = True Then
dt.Rows.RemoveAt(dr.RowIndex)
dt.AcceptChanges()
End If
Next
'Catch ex As Exception
'End Try
GridView1.DataSource = dt
GridView1.DataBind()