雷神为什么叫海总:System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。参数名: index

来源:百度文库 编辑:高考问答 时间:2024/04/28 16:16:48
请教高手:Sub updatemaintantence(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
Dim sys_equname As TextBox
sys_equname = e.Item.Cells(3).Controls(0)
Dim upstr As String = "update sys_description set sys_equname=@sys_equname where sys_code=@sys_code"
Dim sqlcmd As New System.Data.SqlClient.SqlCommand(upstr, SqlConn)
sqlcmd.Parameters.Add(New System.Data.SqlClient.SqlParameter("@sys_equname", SqlDbType.VarChar, 50))
sqlcmd.Parameters.Add(New System.Data.SqlClient.SqlParameter("@sys_code", SqlDbType.Char, 12))
sqlcmd.Parameters("@sys_equname").Value = CType(sys_equname.Text, String)
sqlcmd.Parameters("@sys_code").Value = grid_equ.DataKeys.Item(e.Item.ItemIndex)
SqlConn.Open()
sqlcmd.ExecuteNonQuery()
SqlConn.Open()
SqlConn.Close()
grid_equ.EditItemIndex = -1
bindgrid()
End
Sub Sub bindgrid()
SqlConn.Open()
SqlDataAdapter1.Fill(DataSet11, "sys_description")
grid_equ.DataSource = DataSet11
grid_equ.DataBind()
SqlConn.Close()
End Sub
运行时总是出错,急急急出错信息如下:

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。参数名: index
源错误:
行 153: sqlcmd.Parameters.Add(New System.Data.SqlClient.SqlParameter("@sys_code", SqlDbType.Char, 12))
行 154: sqlcmd.Parameters("@sys_equname").Value = CType(sys_equname.Text, String)
行 155: sqlcmd.Parameters("@sys_code").Value = grid_equ.DataKeys.Item(e.Item.ItemIndex)
行 156: SqlConn.Open()
行 157: sqlcmd.ExecuteNonQuery()