我有RowDatabound事件,我想更改这样的列名:
Protected Sub gvKeyValueOfstringstring_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvKeyValueOfstringstring.RowDataBound
If e.Row.RowType = DataControlRowType.Header Then
gvKeyValueOfstringstring.Columns(0).HeaderText = "Match"
gvKeyValueOfstringstring.Columns(1).HeaderText = "Replace"
End If
End Sub
但我错了:
指数超出范围。必须是非负数且小于集合的大小。 参数名称:index
答案 0 :(得分:0)
可能gvKeyValueOfstringstring.Columns
的长度小于2,因此当您访问索引为0或1的列时,它会失败。
在执行该代码之前检查是否正在成功创建列。
另外,我认为你不需要在RowDataBound事件中执行它,它可能在Page_Load
中(因此如果它是标题,你不必检查每一行)。如果你想在那里做,也许你可以只改变那行的单元格的值:
e.Row.Cells(0).Text = "Match"
e.Row.Cells(1).Text = "Replace"
无论如何,如果没有正确创建列,我希望这段代码也会失败。
答案 1 :(得分:0)
Private Sub BttnCan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BttnCan.Click
Dim val1 As Integer
Try
con.Open()
For i As Integer = 0 To DataGridView1.Rows.Count
val1 = Me.DataGridView1.Rows(i).Cells(2).Value
com.CommandText = "INSERT INTO TblStock (Quant) VALUES (" & val1 & ")"
Next
con.Close()
Catch ex As Exception
MsgBox(Err.Description, MsgBoxStyle.Critical)
End Try
End Sub