Reputation: 8646
I am trying to delete values from grid in VB.NET with following code:
Protected Sub gv_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles gv.RowDeleting
Dim index As Integer = gv.EditIndex
Dim row As GridViewRow = DirectCast(gv.Rows(e.RowIndex), GridViewRow)
Dim id As Integer = Convert.ToInt32(gv.DataKeys(e.RowIndex).Value.ToString())
'Dim Id As Integer = Integer.Parse(DirectCast(gv.Rows(e.RowIndex).FindControl("txtId"), TextBox).Text)
gc.ExecuteCommand("delete from expence where id= '" & Id & "' ")
Response.Write("<script type='text/javascript' language='javascript'>alert('Data Updated')</script>")
gv.EditIndex = -1
bindGrid()
End Sub
It is giving me exception on line Dim id As Integer = Convert.ToInt32(gv.DataKeys(e.RowIndex).Value.ToString())
as follows:
Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index
I dont know why this exception is comming.
Please help me.
Upvotes: 0
Views: 187
Reputation: 592
I think you haven't defined DataKeys
property in gridview ,you should define DataKeys="id"
in your gridview..
Upvotes: 1